digitalteknik, fortsättningskurs 2012 föreläsning 16 inför tentan sista föreläsningen
DESCRIPTION
Digitalteknik, fortsättningskurs 2012 Föreläsning 16 Inför tentan Sista föreläsningen Övriga föreläsningstider denna vecka Används till hjälp/stöd. Lärandemål Efter fullgjord kurs ska studenten kunna Principer för en strukturerad och hierarkisk beskrivning av mindre digitala system. - PowerPoint PPT PresentationTRANSCRIPT
1
1
Digitalteknik syntes Arne Linde 2012
Digitalteknik, fortsättningskurs 2012
Föreläsning 16Inför tentan
Sista föreläsningenÖvriga föreläsningstider denna vecka
Används till hjälp/stöd
2
2
Digitalteknik syntes Arne Linde 2012
Lärandemål Efter fullgjord kurs ska studenten kunna
• Principer för en strukturerad och hierarkisk beskrivning av mindre digitala system.
• Beskriva en mindre digital konstruktion i VHDL, utföra simulering och syntes med moderna verktyg samt utföra enklare tester mot målteknologin.
• Funktion, användning och begränsningar hos programmerbar logik.
• Känna till grunderna för konstruktion för testning, och principerna bakom testning.
• Förstå kopplingen VHDL syntes maskinvara.
3
3
Digitalteknik syntes Arne Linde 2012
Färdighet och förmåga•Förenkla en funktion av upp till 5 variabler med Karnaughdiagram.•Förenkla en funktion av upp till 5 variabler med Quine-McCluskey.•Realisering av kombinatoriska nät med grindar och med hjälp av VHDL.•Kunna identifiera statiska och dynamiska hasarder samt eliminera dessa.•Kunna använda målteknologierna FPGA och CPLD på ett effektivt sätt.•Behärska binär aritmetik såsom ”Carry look ahead”, multiplikation och BCD.•Förstå och kunna använda sekvensnät av Mealy,
Moore och synkron Mealy typ.•Koda ett sekvensnät med en för målteknologin optimal kodning samt minimera antalet tillstånd.•Kunna koda sekvensnät av Mealy, Moore och synkron Mealy typ i
VHDL och förstå dess tidsegenskaper.•Kunna skapa enklare testbänkar för sina VHDL konstruktioner.•Känna till och kunna implementera enklare asynkrona sekvensnät.•Kunna identifiera cykler och kapplöpningar i asynkrona sekvensnät och kunna eliminera dessa.•Minimera ett asynkront sekvensnätet, ge det en kapplöpningsfri kodning.
4
4
Digitalteknik syntes Arne Linde 2012
Bred kurs - föreläsningar
1. Introduktion
2. VHDL
3. Kombinatorik
4. Teknologier
5. VHDL (Labb 2)
6. Minneselement
7. Räknare & aretmetik
8. Sekvensnät
9. VHDL – 2 process metoden
10. Tillståndsminimering11. Asynkrona sekvensnät 1
12. Asynkrona sekvensnät 2
13. Synkronisering - Testning
14. Design för test & Simulering
15. Konstruktion av ASIC
16. Sammanfattning
5
5
Digitalteknik syntes Arne Linde 2012
Laborationer
1. VHDL , intro + kombinatoriska nät.
2. VHDL, konstruktion och syntes.
3. Synkrona sekvensnät (VHDL + test bänkar)
4. Hasarder och asynkrona sekvensnät.(I VHDL)
Kursen – omfångsrik!Huvuddelarna! (ca 30/50p)• VHDL• Synkrona sekvensnät• Asynkrona sekvensnät
6
6
Digitalteknik syntes Arne Linde 2012
Måste behärska
För överbetyg
Viktigt:Förstå skillnaden mellan synkrona och asynkrona sekvensnät!
7
7
Digitalteknik syntes Arne Linde 2012
Tentamina: struktur 1. Småfrågor ca 6-12p
Teknologi val Synkroniseringsfel Små VHDL uppgifter ASIC, FPGA, CPLD
2. Minimering mm, ca 6-10p Primimplekanter, Quine-McCluskey/Karnaughdiagram Testvektorer Mux:ar Hasader
3. VHDL ca 8-12p Läsa, förstå, ändra. ( OBS räcker inte med allmän förståelse för
programmering)
QK
8
8
Digitalteknik syntes Arne Linde 2012
Tentamina: struktur 4. Synkrona sekvensnät (konstruktion, kodning) 6-10p
Tillståndskodning, minimering, syntes ‘One-hot’ tillstånds tilldelning
Mealy, Moore och Synkron Mealy Implementera grindar/VHDL
5. Minimering sekvensnät mm (4-8p) asynkront sekvensnät analys av Hassarder Simulering ASIC – transistorer mm
6. Konstruktion av asynkront sekvensnät, 6-12p timing
Poäng på tenta 50p godkänt 20p, 4:a 30p och 5:a 40p
9
9
Digitalteknik syntes Arne Linde 2012
Viktiga metoder ett kunna
Karnaughdiagram 3-5 variabler.
Karnaughdiagram primimplikatorer
Quine-McCluskey
Tillståndskodning Heuristiska metoder ’One-hot’
Minimering Successiv partitionering Implekatortabell Relationsgraf
Asynkrona nät Primitiv flödestabell Hasarder Kapplöpningsfri kod Dont-care i tillståndsgraf Asynkront realiserbart
Testvektorer Okänt tillstånd X
10
10
Digitalteknik syntes Arne Linde 2012
Synkrona – Asynkrona sekvensnät
Rita tillståndsgraf
Tillstånds tabell
Minimera – Implikator tabellRelationsgraf, eller stegvisa partitioneringar
Koda – gärna ”onehot”
Ta fram ekvationerna
Rita tillståndsgraf(kvarhållande tillstånd)
Flödes tabell Primitiv flödestabell!
MinimeraImplikator tabellRelationsgraf,Krav!, komplex relationsgraf!
Koda binärt (ej ”onehot”)lägg ut i boolesk hyperkub
Ta fram ekvationerna + konsensustermer
11
11
Digitalteknik syntes Arne Linde 2012
Att göra Lös uppgifter!!!!
(Övning, lab, tentor) När ni inte kan använd
presentation/bok Går fortfarande inte
facit! Stäm av att ni behärskar alla
metoderna
Viktigaste att ha med sig från kursen: VHDL Synkronisering Timing
Tentan testar färdigheter, det räcker inte att kunna måste även ha visst tempo! Så öva!
12
12
Digitalteknik syntes Arne Linde 2012
Datum Tisdag 6/3 fm M 4 timmar 29/8 – em M 1x/1 - 2013
Granskning 17/4 (E4128, 11.45-12.30) Granskning 19/4 (E4128, 11.45-12.00)
Laborationerna och övningsuppgifterna kommer att vara en viktig inspirationskälla för tentan
13
13
Digitalteknik syntes Arne Linde 2012
Tack för mig! Onsdag 13.15 – 14 Frågestund HC4 Fredag 13.15-15 Frågestund HA4
Inlämning 3 senast torsdag.(Inlämning Godkänd).
Inlämning 4 helt struken.
Hoppas att jag får återse er!Digital konstruktion EDA234 LP IIKandidatarbete LP III – IV (ansvarig)Examensarbeten.
14
14
Digitalteknik syntes Arne Linde 2012
Sammanfattning
0
10
20
30
40
50
60
70
80
90
100
Prestanda
Rekonfigurerbarhet
Testbarhet
Plats
Effekt
St-kostnad
Utv-kostnad
Risk
Dator
Mickocontroller
0
10
20
30
40
50
60
70
80
Prestanda
Rekonfigurerbarhet
Testbarhet
Plats
Effekt
St-kostnad
Utv-kostnad
Risk
DSP
FPGA
0
10
20
30
40
50
60
70
80
90
100
Prestanda
Rekonfigurerbarhet
Testbarhet
Plats
Effekt
St-kostnad
Utv-kostnad
Risk
ASIC
StdKretsar
15
15
Digitalteknik syntes Arne Linde 2012
EX 2007-01-13 Upg 3entity Upg3 is port ( Clk,X,Reset : in std_logic; U : out std_logic);end Upg3;
architecture BEHAVIORAL of Upg3 istype state_type is (S0,S1,S2);signal state, next_state : state_type;beginp1:process(Clk, Reset) begin if Reset='1‘ then state <= S0; elsif Clk'event and Clk='1' then state <= next_state; end if;end process p1;end case;
p2:process(X, state)beginU<='0'; next_state <= S0;case state iswhen S0 => if X='1' then next_state <= S1; end if;when S1 => next_state <= S2; U<='1';when S2 => if X='1' then next_state <= S2; end if;end process p2;end BEHAVIORAL;
16
16
Digitalteknik syntes Arne Linde 2012
Att behärska på VHDL
Processer (Komb – minne) Kombinatoriska Vippor
if Reset='1'then state <= S0; elsif Clk'event and Clk='1' then
Tillståndsmaskiner case state is when S0 => Next_y <= S9
Register Shift register Räknare
if LA='1' then -- Shift next_A<=Data; -- 8 - bitar elsif SRA='1' then -- Shift höger
next_A<= '0' & A(7 downto 1) ; elsif SLA='1' then -- Shift vänster
next_A<= A(6 downto 0) & '0' ; end if; -- Shift
use IEEE.std_logic_unsigned.all; -- Viktig…if LB='1' then -- Counter next_B<=(OTHERS =>'0'); elsif EB='1' then next_B<=B+1;end if; -- Counter
17
17
Digitalteknik syntes Arne Linde 2012
Konstruktion av digitala system Beskriv algoritmisk vad du ska göra Dela upp i dataväg och styrenhet Implementera i VHDL
Varför? För att få bra struktur. För att få en effektiv implementering
Skilj på kod för syntes till maskinvara och programkod! Försök att samla aritmetiken och undvik jämförelser (dyrt).
0 1 3 24 5 7 6
12 13 15 148 9 11 10
16 17 19 1820 21 23 22
28 29 31 3024 25 27 26
48 49 51 5052 53 55 54
60 61 63 6256 57 59 58
32 33 35 3436 37 39 38
44 45 47 4640 41 43 42
x5x4
00
01
11
10
0 1 3 12
4 15 17 6
12 13 15 14
18 9 11 110
16 17 19 118
20 21 23 22
28 29 31 30
124 25 27 126
48 49 51 50
52 53 55 54
60 61 63 62
156 57 59 158
32 33 35 34
36 137 139 38
44 45 47 46
140 41 43 142
x5x4
00
01
11
10
1
1
1
1
1
1
1
1
1 1
1 1
X3X’2X’0
1
X’4X’3X2X0
1
1
1
X’5X’2X1X’0
19
19
Digitalteknik syntes Arne Linde 2012
Quine-McCluskeyExempel:
f (x3,x2,x1,x0) = m(4,5,6,8,9,10,13)+d(0,7,15)
-
1 1 - 1
1 -
1 1 1X3
x3 x2
00
01
11
10
00 01 11 10
X2
X1
X0
x1 x0
20
20
Digitalteknik syntes Arne Linde 2012
Gruppera termerna efter antal ettor
0 0000 4 0100 8 1000 5 0101 6 0110 9 100110 1010 7 011113 110115 1111
(0,4) 0-00vv (0,8) -000v (4,5) 010-v
v
v
(4,6) 01-0(8,9) 100-(8,10) 10-0(5,7) 01-1(5,13) -101(6,7) 011-(9,13) 1-01(7,15) -111(13,15) 11-1
vv
vv
vv
(4,5,6,7) 01--
v
v
v
v
(5,7,13,15) -1-1
v
v
v
21
21
Digitalteknik syntes Arne Linde 2012
-
1 1 - 1
1 -
1 1 1X3
x3 x2
00
01
11
10
00 01 11 10
X2
X1
X0
x1 x0
(5,7,13,15) -1-1
(4,5,6,7) 01--
(9,13) 1-01 (8,19) 10-0
(8,9) 100-
(0,8) -000
(0,4) 0-00
22
22
Digitalteknik syntes Arne Linde 2012
Hitta en minimal täckand funktion
4 5 6 8 9 10 13
0,4 (0-00) X
0,8 (-000) X
8,9 (100-) X X
8,10 (10-0) X X
9,13 (1-01) X X
4,5,6,7 (01--) X X X
5,7,13,15 (-1-1) X X
EJ0,7och15
23
23
Digitalteknik syntes Arne Linde 2012
Essentiella primimplikanter
4 5 6 8 9 10 13
0,4 (0-00) X
0,8 (-000) X
8,9 (100-) X X
8,10 (10-0) X X
9,13 (1-01) X X
4,5,6,7 (01--) X X X
5,7,13,15 (-1-1) X X
24
24
Digitalteknik syntes Arne Linde 2012
Sammanfattning Quine-McCluskey
1. Ordna samtliga mintermer och ”don’t care” i en tabell efter antalet ”ettor”.
2. Jämför varje minterm med de mintermer som har en ”etta” mer.3. De som stämmer (skiljer sig i endast en position) bockas av och
den förenklade termen skrivs upp.4. Upprepa 2 & 3 för de nya kolumner som bildas tills det inte går
mer.5. De termer som nu inte är markerade är funktionens
primimplekanter.
25
25
Digitalteknik syntes Arne Linde 2012
I allmänhet
Exempel: G(A,B,C,D)kan implementerasmed en 8:1 MUX
n-1 mux styr variabler
en mux data variabler
Fyra möjliga konfigurationer av SanningstabellenKan uttryckas som en funktion av In
I0 I1 . . . In-1 In F
. . . . 0 0 0 1 1
. . . . 1 0 1 0 1
0 In In' 1
Multiplexrar som generell logik (forts.)
välj A,B,C som styr variabler
CA B
01234567
1D01D’DD’D’
S2
8:1 MUX
S1 S0
A B C D G0 0 0 0 10 0 0 1 10 0 1 0 00 0 1 1 10 1 0 0 00 1 0 1 00 1 1 0 10 1 1 1 11 0 0 0 11 0 0 1 01 0 1 0 01 0 1 1 11 1 0 0 11 1 0 1 01 1 1 0 11 1 1 1 0
1
D
0
1
D'
D
D’
D’
26
26
Digitalteknik syntes Arne Linde 2012
Aktivitet Realisera F = B’CD’ + ABC’ med en 4:1 multiplexer och så få
grindar som möjligt:
A B C D Z0 0 0 0 00 0 0 1 00 0 1 0 10 0 1 1 00 1 0 0 00 1 0 1 00 1 1 0 00 1 1 1 01 0 0 0 01 0 0 1 01 0 1 0 11 0 1 1 01 1 0 0 11 1 0 1 11 1 1 0 01 1 1 1 0
CD’
0
CD’
C’
En grind behövs!
27
27
Digitalteknik syntes Arne Linde 2012
Aktivitet (forts.) Realisera F = B’CD’ + ABC’ med en 4:1 multiplexer och så få
grindar som möjligt:
A B C D Z0 0 0 0 00 0 0 1 00 0 1 0 10 0 1 1 00 1 0 0 00 1 0 1 00 1 1 0 00 1 1 1 01 0 0 0 01 0 0 1 01 0 1 0 11 0 1 1 01 1 0 0 11 1 0 1 11 1 1 0 01 1 1 1 0
0 när B’C’
D’ när B’C
A när BC’
0 när BC
Z = B’C’(0) + B’C(D’) + BC’(A) + BC(0)
B C
S1 S0
F0123
4:1 MUX
0D’A0
28
28
Digitalteknik syntes Arne Linde 2012
demultiplexer genererar alla mintermerna
Demultiplexers som generell logik
En n:2n avkodare kan implementera en godtycklig funktion av n variabler med variablerna som styrsignaler “enable” ansluten till 1 och rätt mintermer summerade för att skapa funktionen
A'B'C'A'B'CA'BC'A'BCAB'C'AB'CABC'ABC
CA B
01234567
S2
3:8 DEC
S1 S0
“1”
29
29
Digitalteknik syntes Arne Linde 2012
Ingen bra kandidat för PLAImplementering eftersom inga
termer är delade mellan utgångarna
Men mycket mer kompakt implementering jämfört med
lösa AND och OR gates
A B C DMinimerade funktioner:W = A + BD + BCX = B C'Y = B + CZ = A'B'C'D + BCD + AD' + B'CD'
PALs och PLAs: design exempel (forts.)
Kode konverterare: programmerbar PLA
A
BD
BC
BC'
B
C
A'B'C'D
BCD
AD'
BCD'
W X Y Z
30
30
Digitalteknik syntes Arne Linde 2012
PALs och PLAs: design exempel (forts.)
Kode konverterare: programmerbar PAL
4 produkttermer per OR grind
W X Y Z
A B C D
ABDBC0BC'
000B
C00A'B'C'DBCDAD'B'CD'
31
31
Digitalteknik syntes Arne Linde 2012
Sammanfattning teknologier Random logic
Enstaka grindar eller nät Konvertering till NAND-NAND och NOR-NOR nät Bygger komplexa block av grinar Reducera grindantalet, fan-ins, potentiellt snabbt Fler nivåer svårare att konstruera
Regular logic multiplexers/decoders ROMs PLAs/PALs FPGA fördela/nackdelar för varje
32
32
Digitalteknik syntes Arne Linde 2012
Jämförelse mellan Mealy och Moore tillståndsmaskiner Mealy maskiner får oftast färre tillstånd
olika utsignaler på transaktionerna (n2) i stället för tillstånden (n) Reagerar under samma klockcykel förändringar i insignalerna påverkar direkt utgångarna (efter
grindfördröjningen) - ett stort problem om två maskiner är sammankopplade, då kan asynkron återkoppling uppstå
Moore maskiner är säkrare att använda Utsignalerna ändras vid klockflanken (alltid en cykel senare) mer logik kan behövas för att avkoda ett tillstånd till utsignaler – mer
grindfördröjning efter klockflanken. (Mealy maskiner reagerar snabbare på insignalerna)
33
33
Digitalteknik syntes Arne Linde 2012
Jämförelse mellan Mealy och Moore tillståndsmaskiner (forts.)
Moore
Mealy
Synkron Mealy
state feedback
inputs
outputsreg
combinational logic for
next state logic foroutputs
inputs outputs
state feedback
regcombinational
logic fornext state
logic foroutputs
inputs outputs
state feedback
regcombinational
logic fornext state
logic foroutputs
34
34
Digitalteknik syntes Arne Linde 2012
Exempel: reducera-1-sträng-med-1 Ta bort en etta från varje sträng av 1:or på ingången.
1
0
0
0
11
zero[0]
one1[0]
two1s[1]
1/00/0
0/0
1/1
zero
one1
Moore Mealy
CP
In
Moore
Mealy
35
35
Digitalteknik syntes Arne Linde 2012
Exempel: reducera-1-sträng-med-1 Ta bort en etta från varje sträng av 1:or på ingången.
1
0
0
0
11
zero[0]
one1[0]
two1s[1]
1/00/0
0/0
1/1
zero
one1
Moore Mealy
CP
In
Moore
Mealy
36
36
Digitalteknik syntes Arne Linde 2012
Exempel: reducera-1-sträng-med-1 Ta bort en etta från varje sträng av 1:or på ingången.
1
0
0
0
11
zero[0]
one1[0]
two1s[1]
1/00/0
0/0
1/1
zero
one1
Moore Mealy
CP
In
Moore
Mealy
37
37
Digitalteknik syntes Arne Linde 2012
entity Reduce1Moor isport ( Clk : in std_logic; I : in std_logic;
Reset : in std_logic; O : out std_logic);end Reduce1Moor;
architecture BEHAVIORAL of Reduce1Moor is type state_type is (zero,one1,two1s); --Tillståndsdeklaration signal state:state_type;
begin ---- ----end BEHAVIORAL;
VHDL FSM - Reduce 1s example Moore machine
1
0
0
0
11
zero[0]
one1[0]
two1s[1]
38
38
Digitalteknik syntes Arne Linde 2012
ASM_P: process(Clk,Reset) -- Synkron processbegin if Reset = '1' then -- Asynkron reset state<=zero; -- Reset tillstånd elsif Clk'event and Clk='1' then
state<=next_state end if; end process ASM_P;
Moore VHDL FSM bättre 2-process lösning (forts)
1
0
0
0
1
1
zero[0]
one1[0]
two1s[1]
-- Kombinatorisk processnext_s:process(state,I) begin next_state <=zero case state is
when zero=> O<='0'; if I='1' then next_state <=one1; end if;when one1=> O<='0'; if I='1' then next_state <=two1s; end if;when two1s=> O<='1';
if I=‘1' then next_state <=two1s; end if;
end case;end process next_s;
state feedback
inputs
outputsreg
combinational logic for next state logic for
outputs
39
39
Digitalteknik syntes Arne Linde 2012
Mealy VHDL FSMarchitecture BEHAVIORAL of Reduce1Mealy istype state_type is (zero,one1); --Tillståndsdeklarationsignal state:state_type;signal next_state:state_type;
begin p1:process(Clk, Reset, next_state) begin
if Clk'event and Clk='1' then if Reset = '1' then state<=zero;
else state<=next_state;end if; end if;
end process p1;
p2:process(state,I) begin
case state is when zero=>
if I='1' then next_state<=one1; O<='0'; else next_state<=zero; O<='0';
end if;when one1=> if I='1' then next_state<=one1; O<='1';
else next_state<=zero; O<='0'; end if;when others=> next_state<=zero;
end case; end process p2;end BEHAVIORAL;
inputs outputs
state feedback
regcombinational logic fornext state
logic foroutputs
1/00/0
0/0
1/1
zero
one1
40
40
Digitalteknik syntes Arne Linde 2012
architecture BEHAVIORAL of Reduce1SynkMealy istype state_type is (zero,one1); --Tillståndsdeklarationsignal state:state_type;beginp1:process(Clk,Reset)begin if Clk'event and Clk='1' then -- Synkron Reset if Reset = '1' then state<=zero; -- Reset tillstånd else case state is when zero=>
if I='1' then state<=one1; O<='0';else state<=zero; O<='0'; end if;
when one1=> if I='1' then state<=one1; O<='1';else state<=zero; O<='0'; end if;
when others=> state<=zero; -- Saknar betydelseend case; end if; end if;end process;end BEHAVIORAL;
Synkron Mealy maskin
1/00/0
0/0
1/1
zero
one1
architecture BEHAVIORAL of Reduce1SynkMealy istype state_type is (zero,one1); --Tillståndsdeklarationsignal state:state_type;beginp1:process(Clk,Reset)begin if Clk'event and Clk='1' then -- Synkron Reset if Reset = '1' then state<=zero; -- Reset tillstånd else case state is when zero=>
if I='1' then state<=one1; O<='0';else state<=zero; O<='0'; end if;
when one1=> if I='1' then state<=one1; O<='1';else state<=zero; O<='0'; end if;
when others=> state<=zero; -- Saknar betydelseend case; end if; end if;end process;end BEHAVIORAL;
41
41
Digitalteknik syntes Arne Linde 2012
( S0 S1 S2 S3 S4 S5 S6 )
( S0 S1 S2 S3 S5 ) ( S4 S6 )
( S0 S3 S5 ) ( S1 S2 ) ( S4 S6 )
( S0 ) ( S3 S5 ) ( S1 S2 ) ( S4 S6 )
S1 är ekvivalent med S2
S3 är ekvivalent med S5
S4 är ekvivalent med S6
Metod för successiv partitionering
In Nuvarande Nästa tillstånd OutputSekvens tillstånd X=0 X=1 X=0 X=1
Reset S0 S1 S2 0 00 S1 S3 S4 0 01 S2 S5 S6 0 000 S3 S0 S0 0 001 S4 S0 S0 1 010 S5 S0 S0 0 011 S6 S0 S0 1 0
Till- Tillstånd part.
S0 S1 S2 S3 S4 S5 S6
Till- Tillstånd part.
S0 S1 S2 S3 S4 S5 S6
Till- Tillstånd part.
S0 S1 S2 S3 S4 S5 S6
42
42
Digitalteknik syntes Arne Linde 2012
Exempel för att belysa realtionsgraf
S5
S6
S7
S8
S9
S1 S2 S3 S4 S5
S4
S3
S2
S6 S7 S8
4,6;2,4(7,8)
43
43
Digitalteknik syntes Arne Linde 2012
Exempel för att belysa realtionsgraf
S5
S6
S7
S8
S9
S1 S2 S3 S4 S5
S4
S3
S2
S6 S7 S8
4,6;2,47,9
7,86,7
4,63,7
2,43,8
3,7;2,92,7
3,8;2,92,6
2,45,7
2,65,8
2,62,4
1,7;4,94,7
1,8;4,94,6
1,3
2,45,7
2,65,8
2,6;2,43,5
JA! S1
S3
S5
S8
S9
S7
S6S4
S2
45
45
Digitalteknik syntes Arne Linde 2012
‘One-hot’ tillstånds tilldelning Enkelt
enkelt att koda Enkelt att fel söka
Små logiska funktioner varje tillståndsfunktion behöver bara en tillstånds bit från förgående
tillstånd Bra för programmerbarlogik (FPGA)
många vippor finns tillgängliga få variabler i ekvationerna
Opraktiskt för stora tillståndsmaskiner för många tillstånds vippor Delar man ner en stor tillståndsmaskin i flera små kan del maskinerna
vara ’one-hot’ kodade Det finns många variationer på ’one-hot’ temat
’one-hot’ + alla-0
46
46
Digitalteknik syntes Arne Linde 2012
Tillgängliga metoder för tillståndstilldelning För snål kodning (nära minimalt antal tillståndsbitar)
bäst av 10 slumpmesiga tyck vara tillräckligt bra (i medeltal lika bra som heuristiska metoder)
Heuristiska metoder är långt ifrån optimala används i specialdesignade ASIC (eller om man måste knö i en
FPGA/CPLD) ’One-hot’ kodning
enkelt för små tillståndsmaskiner Genererar enkla ekvationer och det är lätt att uppskatta komplexiteten Vanligt i FPGAer
Utsignal baserad kodning ’ad hoc’ – inga verktyg vanligaste angreppssättet för konstruktörer (när dom kodar utan datorstöd) ger oftast kompakta lösningar för de flesta tillståndsmaskinerna
49
49
Digitalteknik syntes Arne Linde 2012
Dynamisk hasard
Förutsättning minst tre grindnivåer Kan uppstå i nät som efter insättning av värden på övriga
variablerkan reduceras till: xi + xi’ xi, xi’+ xi’xi, xi(xi’+ xi) eller xi’(xi’+ xi)
LUT
LUT
LUT
LUT
LUTf(a,b,c,d,e,f,g,h,i,j)
abc
de
f
ghIj
f
50
50
Digitalteknik syntes Arne Linde 2012
Sammanfattning hasarder Undersök om det finns någon tilldelning av alla utom en
insignal xi sådan att uttrycket blir: (efter insättning med värden på övriga variabler)
Om xi + xi’ statisk 1-hasard
xi xi’ statisk 0-hasard
Obs strukturen på nätet måsta vara en 1-1 avbildning av det ursprungliga. Vilket innebär att; inga algebraiska transformeringar som innebär
att någon variabel eller uttryck försvinner får användas.(de Morgan går dock bra)
51
51
Digitalteknik syntes Arne Linde 2012
Metodik för timing Regler gör anslutning av komponenter till klocksignaler
garanterar att systemet fungerar om man följer dom strikt Olika angreppssätt beroende på vilka byggblock som används
som minne Fokuserar på system med flanktriggade vippor
finns i programmerbara logiska kretsar många ASIC- implementeringar fokuserar på nivåkänsliga vippor
Basregler för korrekt timing: (1) korrekta insignaler, med avseende på tid, finns tillgängliga för
vipporna (2) inga vippor byter tillstånd mer än en gång per
klockningshändelse
52
52
Digitalteknik syntes Arne Linde 2012
Det finns ett ’tidsfönster’ omkring klockhändelsen närinsignalerna måste vara stabilaför att minneselementenska få rätt värde
clock
dataförändringstabila
input
clock
Tsu Th
clock
dataD Q D Q
Metodik för timing (forts.) Definition av termer
Klocka: periodisk händelse, åstadkommer förändring av minnes-
elementens tillståndkan vara stigande eller fallande flank eller hög/låg
nivå setup time: minimal tid före klockhändelsen som insignalerna
måste vara stabila (Tsu) hold time: minimal tid efter klockhändelsen som insignalerna
måste vara stabila (Th)
53
53
Digitalteknik syntes Arne Linde 2012
Alla mätningar görs från klockhändelsen (stigande flank på klockan)
Typiska timing specifikationer Positivt flanktriggad D vippa
setup och hold tider minimum klock vidd propagations fördröjningen (låg till hög, hög till låg, max och typ)
D
Clk
Q
T su
1.8ns
T h
0.5ns
T w
3.3 ns
T pd
3.6 ns 1.1 ns
T su
1.8ns
T h
0.5 ns
T pd
3.6 ns 1.1 ns
T w
3.3 ns
54
54
Digitalteknik syntes Arne Linde 2012
liten, men inte noll sonorlikhet att vippan fastnar
mellan sina tillstånd
Hur det kan se ut på ett oscilloskop när synkroniseringsfel uppträder
logisk 0 logisk 1llogisk 0
logisk 1
Synkroniseringsfel Uppstår när vippans ingång ändras nära klockans flank
vippan hamnar i ett metastabilt tillstånd – varken logisk 0 eller 1 – den kan stanna i detta tillstånd obegränsat länge detta är inte troligt i praktiken med det finns en liten sonorlikhet för det
55
55
Digitalteknik syntes Arne Linde 2012
D DQ Qasynkroninsignal
synkroninsignal
Synkroniseringssystem
Clk
Att hantera synkroniseringsfel Sandorlikheten för fel funktion kan aldrig reduceras till 0, men den
kan minskas radikalt (1) använd långsammare system klocka
detta ger minneselementet mer tid för att nå ett stabilt tillstånd; synkroniseringsproblem är ett stort problem för snabba system
(2) använd snabbast möjliga logikteknologi för synkroniseringen (3) kaskadkoppla två sykroniseringselement
synkroniserar två gånger (båda måste falera)
56
56
Digitalteknik syntes Arne Linde 2012
D Q
D Q
Q0
Clock
Clock
Q1
Asynkron Insignal
Klockat Synkront
System
Hantera asynkrona insignaler
Aldrig aldrig aldrig tillåt asynkrona insignaler att vara
kopplade till mer än en vippa synkronisera så snart som möjligt och behandla därefter signalen som
synkron
D Q
D Q
Q0
Clock
Clock
Q1
AsynktonInsignal D Q
Synkroniserare
57
57
Digitalteknik syntes Arne Linde 2012
In är asynkron och kopplad till D0 och D1
en vippa fångar signalen, en gör det inte
kan hamna i ett inkonsistent tillstånd!
In
Q0
Q1
CLK
Hantera asynkrona insignaler (forts.)
Vad kan bli fel? insignalen ändras för nära klockflanken
(villkoret för setup tid ej uppfyllt)
58
58
Digitalteknik syntes Arne Linde 2012
Ett tillstånd är stabilt omf (Xi,Qj)=Qj
För att ett nät ska vara asynkront realiserbart krävs att för varje icke stabilt tillstånd ska det finnas en sekvens av tillstånd som avslutas med ett stabilt tillstånd.
Tillståndstabell / flödesgraf
Q1Q2
Q3Q4
x1+x4 x1+x2
x3+x4
x1+x4
x2x3
x1
x3
x2
x4
x2+x3
Q1
Q2
Q3
Q4
Q1
Q2
Q4
Q4
X1
Q2
Q2
Q2
Q1
X2
Q2
Q3
Q3
Q3
X3
Q1
Q1
Q3
Q4
X4
Nuvarandetillstånd
Insignal/nästa tillstånd
Q1Q1Q2Q2
Q3Q3Q4
59
59
Digitalteknik syntes Arne Linde 2012
Tillståndsgraf:
9.17 Släpp igenom CP när W hög:
c
w
z
ACW(Z) - 0 (0)
01(0) B
01(0)
11(-)
00(0)
CW(Z) 1- (1)C
0-(-)
D11(0)
11(0)
01(0)
10(0)
60
60
Digitalteknik syntes Arne Linde 2012
Kapplöpningsfri tillståndskodning
Exempel modulo-4 räknare en insignal x och räknaren räknar varje omslag hos x
u1u2 = 00,01 10,11, 00
x0 1
Q1 Q1(00) Q2(0-)Q2 Q3(-) Q2(01)Q3 Q3(10) Q4(1-)Q4 Q1(-) Q4(11)
()
Ex på tillståndskodning:Q1=00, Q2=01, Q3=10, Q4=11
x0 1
00 00(00) 01(0-)01 10(-) 01(01)10 10(10) 11(1-)11 00(-) 11(11)
()
61
61
Digitalteknik syntes Arne Linde 2012
Ger följande tillståndsgraf Vi placerar in tillståndsgrafen i en Boolesk hyperkub för att
finna eventuella kapplöpningar.
00
11
0(-)
0(-)
01
10
q1
q2
00
11
0(-)
0(-)
01
10
q1
q2
1(1-)
1(0-)1(01)
1(11) 0(10)
0(00)
Ny kodning :Q1=00, Q2=01, Q3=11, Q4=10
62
62
Digitalteknik syntes Arne Linde 2012
I det allmänna fallet när man minimerar en ofullständigt specificerad tillståndsgraf.• Samma procedur som innan.• Välj en täckande partitionering.• Se till att den är sluten!
Steget med slutenhet har vi ej gått igenom.Men om man arbetar med en primitiv flödestabell så behöver man inte bevisa slutenhet.
Primitiv flödestabell:Endast ett stabilt tillstånd per rad:Insignal restrektionen ger ’don't cares’.
63
63
Digitalteknik syntes Arne Linde 2012
Exempel 9.7 Present Next state Output
state
w 2 w 1
00 01 z
A A H 0
B F 0
C H 1
D A D 1
E D 1
F F D 0
G F 0
H H 0
–
–
–
–
–
11
C
C
E
E
E
–
–
–
10
B
B
G
G
–
–
–
–
B
C
D
E
F
G
H
A B C D E F G
Utsignalerna:A,B,F,G,H (0) och C,D,E(1)
A-F
D-H
A-FB-G
D-HC-E
D-HC-E
D-HC-E
64
64
Digitalteknik syntes Arne Linde 2012
Exempel 9.7
B
C
D
E
F
G
H
A B C D E F G
Utsignalerna:A,B,F,G,H (0) och C,D,E(1)
A-F
D-H
A-FB-G
D-HC-E
D-HC-E
D-HC-E
A
B
C
D
E
F
H
G
{B,F,G}{A,H}{D,E}{C}
66
66
Digitalteknik syntes Arne Linde 2012
Okänt logiskt tillstånd X
De logiska tillstånd som en nod kan anta är {0,1,X}(även Z och U/D kan förekomma) VHDL (U,X,0,1,Z,W,L,H,-)
67
67
Digitalteknik syntes Arne Linde 2012
Trevärdig logik (simulering) Är ingen Boolesk algebra, ex X⋅X = X ≠ 0 och X+X = X ≠ 1
AND0 0 00 1 01 1 10 X 01 X X
OR0 0 00 1 11 1 10 X X1 X 1
NOT0 11 0X X
68
68
Digitalteknik syntes Arne Linde 2012
Nivå simulering (Levelized simulation)
Kapa alla återkopplingar Ge varje grind en topologisk nivå Primära ingångar nivå 0
Nivå (y) =
0 om primär insignal
max {Nivå(yFI)} + 1 annars
69
69
Digitalteknik syntes Arne Linde 2012
Händelsestyrd simulering (Event-driven simulation)
Används vid VHDL simulering grindnivå simulering funktionell simulering
När insignalerna till en nod ändras evalveras den noden normalt berörs 10-15% av konstruktionen
En händelse inträffar vi den given tidpunkt (simulerad) hanteras via en händelselista när en händelse evalveras skapas nya händelser listan
70
70
Digitalteknik syntes Arne Linde 2012
Enhetsfördröjnings modellen Händelselistan delas i två tidsluckor
Lucka A – händelser som har genererats tidigare Lucka B – här stoppas nygenererad händelser in
Algoritm: evalvera händelserna i lucka A
uppdatera lucka B när inga fler händelser finns i lucka A
byt plats på lucka A och B, börja sedan om Det spelar ingen roll i vilken ordning som händelserna
evalveras Dock måste man sätta en begränsning på hur många varv hjulet
får snurra. (utifall nät som EJ är asynkront realiserbara) .
A
B
71
71
Digitalteknik syntes Arne Linde 2012
Simulering i VHDL Händelsestyrd simulering
både enhetsfördröjning och grind fördröjnings modellen
Kompilering och sammansättning (elaboration)
72
72
Digitalteknik syntes Arne Linde 2012
Icke syntetiserbar VHDL Eftersom VHDL ursprungligen inte var avsedd för syntes så
finns det många icke syntetiserbara konstruktioner som: after wait for File generiska parametrar Flyttal fungerar men är ett mycket dåligt val … Initieringsvärden på variabler och signaler
73
73
Digitalteknik syntes Arne Linde 2012
Vippor, latchar eller bara logik? Förutsätt att syntesverktygen är korkade! Finns inget reserverat ord som tallar om huruvida en
konstruktion är asynkron eller inte Ett vanligt fel är skapandet av extra (onödiga) latchar och
vippor I processer behåller en signal ett värde till dess att den tilldelas
ett nytt. Så: Om en if eller case sats inte täcker alla utfall med tilldelningar så
skapas extra latchar och vippor
Finns wait med eller if, case med namn’event så skapas vippor
74
74
Digitalteknik syntes Arne Linde 2012
Sammanfattning av regler för RTL syntes
Tilldela aldrig en variabel eller signal i mer än en process
’sensitivity’ listan FörgreningarKombinatorisk alla insignaler (signaler i högerledet täck allalogik vid tilldelningar och de som används i (eller default) IF och CASE satser
latchar alla insignaler okomplett
vippor Klockan och asynkron set/reset okomplett (if Clk'event and Clk='1' then)
75
75
Digitalteknik syntes Arne Linde 2012
Bättre metoder I verkligheten använder man en delmängd av alla möjliga
invektorer. Denna delmängd kan bestämmas på några olika sätt. Slumpmässigt valda testvektorer Baserat på logisk funktion Baserat på nätets struktur Minnestestning Baserat på felmodeller
76
76
Digitalteknik syntes Arne Linde 2012
Single Stuck-at Faults (SSF) Detta är den vanligaste felmodellen, och är närmast
industristandard. Ett fel representeras av att den felaktiga noden låses till värdet
0 eller 1, oberoende av övriga signaler i nätet. Kortsiutning till jord eller matningsspänning. Vissa typer av avbrott Vissa typer av kortsiutningsfel
Enbart ett fel antas uppträda åt gången!
77
77
Digitalteknik syntes Arne Linde 2012
Nätorienterad testgenerering Utnyttjar “path sensitization” En ny boolesk algebra krävs:
Låt D samt D’ representera felvärden orsakade av SA-fel. Då utgör <O,1,D,D’, ‘,+,‘> en korrekt boolesk algebra, där t ex
D•D’ =0, D+D’=1, D’·1 = D
1
1
&
&y
z
x
w
K SA 0
k
G1
G2
G3
G4
t
b
f
78
78
Digitalteknik syntes Arne Linde 2012
Varför får man inte 100% coverage? Algoritmen i ATPG kan vara dålig. Redundans i en krets ger otestbara SA-fel.
Oavsiktlig redundans kan fås genom otillräcklig minimering av funktioner
Avsiktlig redundans fås genom hasardeliminering eller i feltoleranta kretsar
Vi definierar ett nät som redundant om det innehåller otestbara SA-fel.
79
79
Digitalteknik syntes Arne Linde 2012
Generering av test för sekvensnät Vanligas: översätt sekvensnätet till ett iterativt kombinatorisk nät. Sedan: Initiera till ett känt tillstånd Q(0)
Använd metoderna för kombinatoriska nät för att generera vektorer för cell 0
Invektorn från testgenereringen får användas under r klockcykler.
Om felet inte upptäcks efter r cykler, öka r med 1
80
80
Digitalteknik syntes Arne Linde 2012
Ad hoc metoder för ökad testbarhet Välkända tekniker baserat på erfarenhet för att
öka styrbarhet och observerbarhet Lägg till testpunkter.
Genom att lägga till extra ledare tilll/från kretsens utsida kan man öka dess observerbarhet och kontrollerbarhet
Initiering – reset Få kretsen till ett välkänt tillstånd
Oscillatorer och klockor Koppla bort den ordinarie under test
Partitionera stora kretsar/system Det är mycket lättare att generera test, samt testa små kretsar än att
testa stora. Genom att partitionera rätt kan man dessutom i vissa fall testa delar av kretsen parallellt, vilket ökar hastigheten.
81
81
Digitalteknik syntes Arne Linde 2012
“ad hoc’ ‘-metoder (forts) Redundant logik
UNDVIK! Inga TMR
Globala återkopplingar Bryt återkopplingen med logik
Asynkrona sekvensnät UNDVIK
82
82
Digitalteknik syntes Arne Linde 2012
Skannings kedjor Scan-kedjor är den vanligaste
DFT-metoden. Samtliga minneselement i kretsen kedjas ihop till ett shiftregister så att man lätt kan klocka in/ut data i kretsen.
Kostar ca 30% jämfört med vanliga vippor
Skiljer mellan full och partiell skanningstekniker
83
83
Digitalteknik syntes Arne Linde 2012
Boundary-Scan (IEEE 1149.1)
Den vanligaste metoden för skannings kedjor
Ger möjlighet till testning Av alla kretsar (fullständig) Av kretskortet (PCB) Produktions test (enkel/billig
utrustning) Fälttest (hos kund)
84
84
Digitalteknik syntes Arne Linde 2012
Inbyggd självtest Är en teknik för att låta kretsen testa sig själv
I produktion – ingen testutrustning behövs I fält – lätt att testa funktionen
Testningen sker när systemet inte är i drift Kan ej utföras under normal drift
Fördelar Enklare eller
inget testsystem Enklare testplanering Test vid normal frekvens Kretsbibliotek finns Många testvektorer ,enkelt
Nackdelar Stöd saknas i CAD/EDA- verktyg Prestanda i konstruktionen Extra komponenter behövs
Mer kisel yta Fler ställen där det kan bli fel
85
85
Digitalteknik syntes Arne Linde 2012
BILBO (Built-in logik block observer)
Den inbyggda självtestaren kostrar mycket logik och framför allt vippor.
En bättre metod är att utnyttja befintliga vippor som i skannings kedjorna.
86
86
Digitalteknik syntes Arne Linde 2012
3. Effekt• Nu: max ~100 – 150 W per chip• Teknologigenombrott krävs för ändring• Begränsningar:• Spänningsmatning (1 V betyder 100 A)• Kylning (25 W / cm2)• Reglering av spänning och frekvens
Framtiden• Gräns för transistorstorlek• ~10 nm?• Konstruktion med större block• Grindar, RTL-block, kärnor, …• “Dark silicon”• Vi kan bygga mer än vi kan använda
1. Fler transistorer• Nu: miljarder transistorer på ett chip• Fler och fler får plats (x2 perprocessgeneration)• Replikerade block (minnen, kärnor)• Återanvänt konstruktionsarbete• Nätverk på chip (NoC) för kommunikation• Redundans
2. Klockfrekvens• Nu: enstaka GHz• Inga större ändringar förväntas• Snabbare transistorer, lika slöa ledningar• Synkronisering svårare• Globally Asynchronous, LocallySynchronous
87
87
Digitalteknik syntes Arne Linde 2012
Flera utgångar Ex 4.3
x 1 x 2 x 3 x 4 00 01 11 10
1
1 1
1
00
01
11
10
(a) Optimal realization of (b) Optimal realization of
1
f 3 f 4
1
1
x 1 x 2 x 3 x 4 00 01 11 10
1 1
1
1
00
01
11
10
1
1 1
x 1 x 2 x 3 x 4 00 01 11 10
1
1 1
1
00
01
11
10
1 1
1
x 1 x 2 x 3 x 4 00 01 11 10
1 1
1
1
00
01
11
10
1
1 1
(c) Optimal realization off 3 and togetherf 4
88
88
Digitalteknik syntes Arne Linde 2012
x 1 x 2 x 3 x 4 00 01 11 10
1
1 1
1
00
01
11
10
1 1
1
x 1 x 2 x 3 x 4 00 01 11 10
1 1
1
1
00
01
11
10
1
1 1
f 3
f 4
x 1
x 4
x 3
x 4
x 1
x 1
x 2
x 2
x 4
x 4
(d) Combined circuit forf 3 f 4 and
x 2
89
89
Digitalteknik syntes Arne Linde 2012
Flernivårealisering av kombinatoriska nät Steg 1: Teknologioberoende, Sök gemensamma delfunktioner.
(algebraisk process) Steg 2: Teknologi anpassning.
Exempel 4.6f = x1x2x3 + x1x2x3 + x1x2x4 + x1x2x4
f = (x1x2 + x1x2)x3 + (x1x2 + x1x2)x4
x1x2 + x1x2 = x1x2 + x1x2
g = x1x2 + x1x2
f = gx3 + gx41
x 2
x 3
x 4
f
g
h
x
90
90
Digitalteknik syntes Arne Linde 2012
CPLD
Fördelar Konstant fördröjning Snabba Kan programmeras på plats Enkla billiga utvecklings-verktyg Billiga
Nackdelar ”Små” Få register
Fördelar Stora - i samma storleksordning
som ASIC Kan programmeras på plats Kort utvecklingstid
Nackdelar Varierande fördröjning Pinnplacering och konstruktion
har stor betydelse för prestanda.
Flyktigt konfigurationsminne (Xilinx)
FPGA
91
91
Digitalteknik syntes Arne Linde 2012
Transistorer - CMOS
V f
V DD
V x
T 1
T 2
onoff
off on
1 0
0 1
f x T 1 T 2
NOT gate.(a) Circuit
V f
V DD
(b) Truth table and transistor states
on
on
on
off
0
1 0
0
1
1
0
1
off
off
on
off
off
on
f
off
on
1
1
1
0
off
off on
on
V x 1
V x 2
T 1 T 2
T 3
T 4
x 1 x 2 T 1 T 2 T 3 T 4
(a) Circuit
V f
V DD
(b) Truth table and transistor states
on
on
on
off
0
1 0
0
1
1
0
1
off
off
on
off
off
on
f
off
on
1
1
1
0
off
off on
on
V x 1
V x 2
T 1 T 2
T 3
T 4
x 1 x 2 T 1 T 2 T 3 T 4
NAND gate.
92
92
Digitalteknik syntes Arne Linde 2012
NOR gate
(a) Circuit
V f
V DD
(b) Truth table and transistor states
on
on
on
off
0
1
0
0
1
1
0
1
off
off
on
off
off
on
f
off
on
1
0
0
0
off
off on
on
V x 1
V x 2
T 1
T 2
T 3 T 4
x 1 x 2 T 1 T 2 T 3 T 4
93
93
Digitalteknik syntes Arne Linde 2012
Ex på uppgift Vilken funktion realiseras?
V f
V DD
V x 1
V x 2
V x 3
F= x1’ + x2’x3’F’= x1(x2+x3)
94
94
Digitalteknik syntes Arne Linde 2012
94
X 1
0 1
0 1
1 1D
A
0 X
0 1
X 0
0 1
B
C
3 primes around AB'C'D'
Algorithm for two-level simplification (example)
X 1
0 1
0 1
1 1D
A
0 X
0 1
X 0
0 1
B
C
2 primes around A'BC'D'
X 1
0 1
0 1
1 1D
A
0 X
0 1
X 0
0 1
B
C
2 primes around ABC'D
X 1
0 1
0 1
1 1D
A
0 X
0 1
X 0
0 1
B
C
minimum cover (3 primes)
X 1
0 1
0 1
1 1D
A
0 X
0 1
X 0
0 1
B
C
X 1
0 1
0 1
1 1D
A
0 X
0 1
X 0
0 1
B
C
2 essential primes
X 1
0 1
0 1
1 1D
A
0 X
0 1
X 0
0 1
B
C
94
95
95
Digitalteknik syntes Arne Linde 2012
95
-
1 1 - 1
1 -
1 1 1
X3
x3 x2
00
01
11
10
00 01 11 10
X2
X1
X0
x1 x0
(5,7,13,15) -1-1
(4,5,6,7) 01--
(9,13) 1-01 (8,10) 10-0
(8,9) 100-
(0,8) -000
(0,4) 0-00
f (x3,x2,x1,x0) = m(41,52,62,81,92,102,133)+d(00,73,154)
95
96
96
Digitalteknik syntes Arne Linde 2012
Algoritm för tillståndsminimering Mål – identifiera och kombinera tillstånd som har samma
beteende Ekvivalenta tillstånd:
samma utsignaler för alla kombinationer av insignaler och tillståndsövergångar hamnar vi i
samma eller ekvivalenta tillstånd Algoritm
1. placera alla tillstånd i en partitionering (P0) 2. skapa P1 baserat på tillståndens utsignalbetende 3. dela upp Pn-1 i fler partitioneringar beroende på nästa
tillståndstransaktionen 4. upprepa (3) till dess inga fler partitioneringar uppträder
tillstånd i samma ekvivalensklass (partitionering) är ekvivalenta Algoritmen lämpar sig väl för datorimplementering
97
97
Digitalteknik syntes Arne Linde 2012
Tillståndstabell – Minimering med direkt inspektion
Nästa tillstånd (N5cD10c =) Utsignal
State 00 01 10 11 Z
S1 S1 S3 S2 - 0
S2 S2 S4 S5 - 0
S3 S3 S6 S7 - 0
S4 S1 - - - 1
S5 S3 - - - 1
S6 S6 S8 S9 - 0
S7 S1 - - - 1
S8 S1 - - - 1
S9 S3 - - - 1
P0= ( S1,S2,S3,S4,S5,S6,S7,S8,S9)
Nästa tillstånd (N5cD10c =) Utsignal
State 00 01 10 11 Z
S1 S1 S3 S2 - 0
S2 S2 S4 S5 - 0
S3 S3 S6 S7 - 0
S4 S1 - - - 1
S5 S3 - - - 1
S6 S6 S8 S9 - 0
S7 S1 - - - 1
S8 S1 - - - 1
S9 S3 - - - 1
P1= ( S1,S2,S3,S6)(S4,S5,S7,S8,S9)
98
98
Digitalteknik syntes Arne Linde 2012
Tillståndstabell – Minimering med direkt inspektion (forts)
Nästa tillstånd
State 00 01 10 11
S1 S1 S3 S2 -
S2 S2 S4 S5 -
S3 S3 S6 S7 -
S6 S6 S8 S9 -
S4 S1 - - -
S5 S3 - - -
S7 S1 - - -
S8 S1 - - -
S9 S3 - - -
P0= ( S1,S2,S3,S4,S5,S6,S7,S8,S9)P1= ( S1,S2,S3,S6)(S4,S5,S7,S8,S9)
P2= ( S1)(S2,S3,S6)(S4,S5,S7,S8,S9)
P3= ( S1)(S2,S6)(S3)(S4,S5,S7,S8,S9)
P4= ( S1)(S2,S6)(S3)(S4,S7,S8)(S5,S9)
Nästa tillstånd
State 00 01 10 11
S1 S1 S3 S2 -
S2 S2 S4 S5 -
S6 S6 S8 S9 -
S3 S3 S6 S7 -
S4 S1 - - -
S7 S1 - - -
S8 S1 - - -
S5 S3 - - -
S9 S3 - - -
S2’
S4’
S5’
99
99
Digitalteknik syntes Arne Linde 2012
Syntes Rita tillståndsgraf Ta fram flödestabell
och minimera Ta fram primitiv flödestabell Implikator tabell Relationsgraf Minimal flödestabell –
Asynkront realiserbar ?
Genomför tillståndstilldelning Boolesk kub Stuva om, ändra vägar, lägg till
tillstånd (ta bort kapplöpning)
Sammanfattning: metod asynkrona sekvensnät
A 0
B 0 C 1
D 0
E 1 F 1
0 0
0
0 0
0
D
N
N
N
N
D
D
0
D
(a)Initial statediagram
Present Next state Output
State DN = 00 01 z
A A B 0
B D B 0
C A 1
D D E 0
E A E 1
F A 1
(b) Initial flow table
–
11
–
–
–
–
–
––
10
C
C
F
F
–
–
Primitiv flödestabell
.
B-EC-F
.
B-E
B
C
D
E
F
A-DA
B
CD
E
F
0 1
2 3
4 5
6 7
100
100
Digitalteknik syntes Arne Linde 2012
Syntes
Sammanfattning: metod asynkrona sekvensnät
Ta fram exciteringstabell(undersök tabellen för essentiella hasarder) Asynkront realiserbar ?
Ta fram uttrycken för nästa tillstånd Karnaughdiagram Konsensustermer
(ta bort all kapplöpning) Konstruera kretsen
(inför fördröjningar för att bli av med essentiella hasarder)
Present Nextstate
state
DN
00 01 10 11 Output
y 3 y 2 y 1 Y 3 Y 2 Y 1 z
A 000
0
B 010 0
C 111 0
D 011 0
F 001 1
G 101 0
100 0
110 0
100
1
11
001
0
01
001
110
111
––
–
–
–
–
–
–
–
0 00 010
011 0
10
101 1
11
0
11 111
000 0
01
1
01 001
–
–
–
–
00 01 11 10
d
1 1
00
01
11
10
1 1
d 1
d
d
y 1 y 2 DN
d
d
d
d
1
1
y 3 1 =
00 01 11 10
d
1
00
01
11
10
1 1
d 1
1
y 1 y 2 DN
d
d
1
d
y 3 0 =
(a) Map for Y 1
101
101
Digitalteknik syntes Arne Linde 2012
Syntes Rita tillståndsgraf Ta fram flödestabell och minimera
Ta fram primitiv flödestabell Implikator tabell Relationsgraf Minimal flödestabell –
Asynkront realiserbar ?
Genomför tillståndstilldelning Boolesk kub Stuva om, ändra vägar, lägg till
tillstånd (ta bort kapplöpning)
Sammanfattning: metod asynkrona sekvensnät
Ta fram exciteringstabell(undersök tabellen för essentiella hasarder) Asynkront realiserbar ?
Ta fram uttrycken för nästa tillstånd Karnaughdiagram Konsensustermer
(ta bort all kapplöpning) Konstruera kretsen
(inför fördröjningar för att bli av med essentiella hasarder)