Transcript 1 - PingPong
Slide 1
1
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
1
Digitalteknik syntes
Arne Linde 2012
Slide 2
2
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.
Digitalteknik syntes
2
Arne Linde 2012
Slide 3
3
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.
Digitalteknik syntes
Arne Linde 2012
3
Slide 4
4
Bred kurs - föreläsningar
1.
2.
3.
4.
5.
6.
7.
8.
9.
Introduktion
VHDL
Kombinatorik
Teknologier
VHDL (Labb 2)
Minneselement
Räknare & aretmetik
Sekvensnät
VHDL – 2 process metoden
10.
Tillståndsminimering
11.
Asynkrona sekvensnät 1
Asynkrona sekvensnät 2
Synkronisering - Testning
Design för test & Simulering
Konstruktion av ASIC
Sammanfattning
12.
13.
14.
15.
16.
4
Digitalteknik syntes
Arne Linde 2012
Slide 5
5
Laborationer
1.
2.
3.
4.
VHDL , intro + kombinatoriska nät.
VHDL, konstruktion och syntes.
Synkrona sekvensnät (VHDL + test bänkar)
Hasarder och asynkrona sekvensnät.
(I VHDL)
Kursen – omfångsrik!
Huvuddelarna! (ca 30/50p)
• VHDL
• Synkrona sekvensnät
• Asynkrona sekvensnät
5
Digitalteknik syntes
Arne Linde 2012
Slide 6
6
Måste behärska
Synkrona sekvensnät
• Koda snålt, one hot
• Kunna rita upp en tillståndsgraf • Kunna ta fram tidsdiagram och
• Känna till Mealy, Moore och
från tidsdiagram tillståndsgraf
synkron Mealy
• VHDL kopplingen.
• Kunna minimera
För överbetyg
Asynkrona sekvensnät
• Implementera hasard fritt
• Kunna rita upp en tillståndsgraf •Kunna ta fram tidsdiagram och
• Känna till Mealy och Moore
från tidsdiagram tillståndsgraf
• Kunna minimera
• Koda hasard fritt
Viktigt:
Förstå skillnaden mellan synkrona och asynkrona sekvensnät!6
Digitalteknik syntes
Arne Linde 2012
Slide 7
7
Tentamina: struktur
1. Småfrågor ca 6-12p
2. Minimering mm, ca 6-10p
Teknologi val
Synkroniseringsfel
Små VHDL uppgifter
ASIC, FPGA, CPLD
Primimplekanter, Quine-McCluskey/Karnaughdiagram
K
Testvektorer
Mux:ar
Hasader
Q
3. VHDL ca 8-12p
Läsa, förstå, ändra. (
programmering)
OBS räcker inte med allmän förståelse för
7
Digitalteknik syntes
Arne Linde 2012
Slide 8
8
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
asynkront sekvensnät
analys av Hassarder
Simulering
ASIC – transistorer mm
6. Konstruktion av asynkront sekvensnät, 6-12p
(4-8p)
timing
Poäng på tenta 50p godkänt 20p, 4:a 30p och 5:a 40p
Digitalteknik syntes
8
Arne Linde 2012
Slide 9
9
Viktiga metoder ett kunna
Karnaughdiagram 3-5
variabler.
Karnaughdiagram
primimplikatorer
Quine-McCluskey
Tillståndskodning
Heuristiska metoder
’One-hot’
Asynkrona nät
Primitiv flödestabell
Hasarder
Kapplöpningsfri kod
Dont-care i tillståndsgraf
Asynkront realiserbart
Testvektorer
Okänt tillstånd X
Minimering
Successiv partitionering
Implekatortabell
Relationsgraf
Digitalteknik syntes
9
Arne Linde 2012
Slide 10
10
Synkrona – Asynkrona sekvensnät
Rita tillståndsgraf
Tillstånds tabell
Minimera –
Implikator tabell
Relationsgraf,
eller stegvisa partitioneringar
Rita tillståndsgraf
(kvarhållande tillstånd)
Flödes tabell
Primitiv flödestabell!
Minimera
Implikator tabell
Relationsgraf,
Krav!, komplex relationsgraf!
Koda – gärna ”onehot”
Ta fram ekvationerna
Koda binärt (ej ”onehot”)
lägg ut i boolesk hyperkub
Ta fram ekvationerna +
konsensustermer
10
Digitalteknik syntes
Arne Linde 2012
Slide 11
11
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!
11
Digitalteknik syntes
Arne Linde 2012
Slide 12
12
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
12
Digitalteknik syntes
Arne Linde 2012
Slide 13
13
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 II
Kandidatarbete LP III – IV (ansvarig)
Examensarbeten.
13
Digitalteknik syntes
Arne Linde 2012
Slide 14
14
Prestanda
100
90
Prestanda
Sammanfattning
80
70
80
Risk
Rekonfigurerbarhet
70
60
Risk
60
50
50
40
Rekonfigurerbarhet
40
20
10
Utv-kostnad
30
DSP
FPGA
30
20
10
Testbarhet
0
Utv-kostnad
Testbarhet
0
Dator
Mickocontroller
St-kostnad
Plats
St-kostnad
Plats
Prestanda
Effekt
100
Effekt
90
80
Risk
70
Rekonfigurerbarhet
60
50
40
30
20
10
Utv-kostnad
Testbarhet
0
ASIC
StdKretsar
St-kostnad
Digitalteknik syntes
Plats
14
Arne Linde 2012
Slide 15
15
EX 2007-01-13 Upg 3
entity Upg3 is
port ( Clk,X,Reset : in std_logic; U : out std_logic);
end Upg3;
architecture BEHAVIORAL of Upg3 is
type state_type is (S0,S1,S2);
signal state, next_state : state_type;
begin
p1: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)
begin
U<='0'; next_state <= S0;
case state is
when 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;
15
Digitalteknik syntes
Arne Linde 2012
Slide 16
16
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
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
case state is when S0 => Next_y <= S9
Register
Shift register
Räknare
Digitalteknik syntes
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
16
Arne Linde 2012
Slide 17
17
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).
17
Digitalteknik syntes
Arne Linde 2012
Slide 18
x5x4
00
01
11
10
0 1 3 2
4 5 7 6
12 13 15 14
8 9 11 10
16 17 19 18
20 21 23 22
28 29 31 30
24 25 27 26
48 49 51 50
52 53 55 54
60 61 63 62
56 57 59 58
32 33 35 34
36 37 39 38
44 45 47 46
40 41 43 42
x5x4
00
0
1
115 117
4
12
13
118
20
28
1124
17
60
1156
49
1140
55
63
59
33
45
41
54
62
1158
35
47
43
X’5X’2X1X’0
50
34
1137 1139
36
44
30
51
53
57
22
1126
27
32
10
31
61
X3X’2X’0
1118
23
29
52
14
19
21
25
6
1110
11
48
11
15
9
16
01
12
3
38
46
1142
X’4X’3X2X0
Slide 19
19
Quine-McCluskey
Exempel:
f (x3,x2,x1,x0) = m(4,5,6,8,9,10,13)+d(0,7,15)
x1 x0
X1
00 01 11 10
00 x3 x2
X3
01
11
1 1 -
10
1 1
1 X0
Digitalteknik syntes
1
X2
1
19
Arne Linde 2012
Slide 20
20
Gruppera termerna efter antal ettor
0 0000v
4 0100v
8 1000v
5 0101 v
6 0110 v
9 1001 v
10 1010 v
7 0111 v
13 1101 v
15 1111 v
0-00
(0,8) -000
(4,5) 010- v
(4,6) 01-0 v
(8,9) 100(8,10) 10-0
(5,7) 01-1v
(5,13) -101 v
(6,7) 011- v
(9,13) 1-01
(7,15) -111 v
(13,15) 11-1 v
(0,4)
(4,5,6,7)
01--
(5,7,13,15)
-1-1
v20
Digitalteknik syntes
Arne Linde 2012
Slide 21
21
x1 x0
(0,4) 0-00
x3 x2
(0,8) -000 X
3
(8,9) 100-
X1
00 01 11 10
00 01
11
1 1 -
10
1 1
1
1 -
(9,13) 1-01
1
(4,5,6,7) 01-X2
(5,7,13,15) -1-1
X0
(8,19) 10-0
21
Digitalteknik syntes
Arne Linde 2012
Slide 22
22
Hitta en minimal täckand funktion
4
0,4 (0-00)
5
6
8
X
8,9 (100-)
X
8,10 (10-0)
X
9,13 (1-01)
5,7,13,15 (-1-1)
10
13
X
0,8 (-000)
4,5,6,7 (01--)
9
X
X
X
X
X
X
EJ
0,7
och
15
X
X
X
22
Digitalteknik syntes
Arne Linde 2012
Slide 23
23
Essentiella primimplikanter
4
0,4 (0-00)
5
6
8
X
8,9 (100-)
X
8,10 (10-0)
X
9,13 (1-01)
5,7,13,15 (-1-1)
10
13
X
0,8 (-000)
4,5,6,7 (01--)
9
X
X
X
X
X
X
X
X
X
23
Digitalteknik syntes
Arne Linde 2012
Slide 24
24
Sammanfattning Quine-McCluskey
1.
2.
3.
4.
5.
Ordna samtliga mintermer och ”don’t care” i en tabell efter antalet
”ettor”.
Jämför varje minterm med de mintermer som har en ”etta” mer.
De som stämmer (skiljer sig i endast en position) bockas av och
den förenklade termen skrivs upp.
Upprepa 2 & 3 för de nya kolumner som bildas tills det inte går
mer.
De termer som nu inte är markerade är funktionens
primimplekanter.
24
Digitalteknik syntes
Arne Linde 2012
Slide 25
25
Multiplexrar som generell logik (forts.)
I allmänhet
n-1 mux styr
variabler
I0
I1
. . . In-1 In
.
.
.
.
0
0
0
1
.
.
.
.
1
0
1
0
0
In
In'
en mux data
variabler
Exempel:
G(A,B,C,D)
kan implementeras
med en 8:1 MUX
välj A,B,C som
styr variabler
Digitalteknik syntes
A
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
B
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
C
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
D
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
G
1
1
0
1
0
0
1
1
1
0
0
1
1
0
1
0
F
1 Fyra möjliga
konfigurationer av
1 Sanningstabellen
Kan uttryckas som
en funktion av In
1
1
D
0
1
D'
D
1
D
0
1
D’
D
D’
D’
0
1
2
3
4 8:1 MUX
5
6
7
S2 S1 S0
D’
D’
A
B
C
25
Arne Linde 2012
Slide 26
26
Aktivitet
Realisera F = B’CD’ + ABC’ med en 4:1 multiplexer och så få
grindar som möjligt:
A
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
B
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
C
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
D
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
Z
0
0
1
0
0
0
0
0
0
0
1
0
1
1
0
0
Digitalteknik syntes
CD’
En grind behövs!
0
CD’
C’
26
Arne Linde 2012
Slide 27
27
Aktivitet (forts.)
Realisera F = B’CD’ + ABC’ med en 4:1 multiplexer och så få
grindar som möjligt:
A
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
B
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
C
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
D
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
Z
0
0
1
0
0
0
0
0
0
0
1
0
1
1
0
0
Digitalteknik syntes
0 när B’C’
D’ när B’C
A när BC’
0 när BC
0
D’
A
0
0
1 4:1 MUX
2
3
S1 S0
B
F
C
Z = B’C’(0) + B’C(D’) + BC’(A) + BC(0)
27
Arne Linde 2012
Slide 28
28
Demultiplexers som generell logik
En n:2n avkodare kan implementera en godtycklig funktion av
n variabler
“1”
med variablerna som styrsignaler
“enable” ansluten till 1 och
rätt mintermer summerade för att skapa funktionen
0
1
2
3
3:8 DEC 4
5
6
7
S2 S1 S0
A
B
C
Digitalteknik syntes
A'B'C'
A'B'C
A'BC'
A'BC
AB'C'
AB'C
ABC'
ABC
demultiplexer genererar alla mintermerna
28
Arne Linde 2012
Slide 29
29
PALs och PLAs: design exempel (forts.)
Kode konverterare: programmerbar PLA
A B
C D
A
BD
BC
BC'
B
C
A'B'C'D
BCD
AD'
Minimerade funktioner:
W = A + BD + BC
X = B C'
Y=B+C
Z = A'B'C'D + BCD + AD' + B'CD'
Ingen bra kandidat för PLA
Implementering eftersom inga
termer är delade mellan utgångarna
Men mycket mer kompakt
implementering jämfört med
lösa AND och OR gates
BCD'
W
Digitalteknik syntes
X
Y
Z
29
Arne Linde 2012
Slide 30
30
PALs och PLAs:
design exempel (forts.)
A B C D
A
BD
BC
0
BC'
Kode konverterare:
programmerbar PAL
0
0
0
B
4 produkttermer
per OR grind
C
0
0
A'B'C'D
BCD
AD'
B'CD'
W X Y Z
Digitalteknik syntes
30
Arne Linde 2012
Slide 31
31
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
31
Digitalteknik syntes
Arne Linde 2012
Slide 32
32
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)
32
Digitalteknik syntes
Arne Linde 2012
Slide 33
33
Jämförelse mellan Mealy och Moore
tillståndsmaskiner (forts.)
Moore
inputs
combinational
logic for
next state
logic for
outputs
outputs
state feedback
Mealy
inputs
logic for
outputs
combinational
logic for
next state
reg
outputs
reg
Synkron Mealy
state feedback
inputs
logic for
outputs
combinational
logic for
next state
state feedback
Digitalteknik syntes
outputs
reg
33
Arne Linde 2012
Slide 34
Exempel: reducera-1-strängTa bort en etta från varje sträng av 1:or på ingången.
med-1
Moore
Mealy
zero
[0]
1
0
0
one1
[0]
1
zero
0
1
two1s
[1]
0/0
34
0/0
1/0
one1
1/1
CP
In
Moore
Mealy
Digitalteknik syntes
34
Arne Linde 2012
Slide 35
Exempel: reducera-1-strängTa bort en etta från varje sträng av 1:or på ingången.
med-1
Moore
Mealy
zero
[0]
1
0
0
one1
[0]
1
zero
0
1
two1s
[1]
0/0
35
0/0
1/0
one1
1/1
CP
In
Moore
Mealy
Digitalteknik syntes
35
Arne Linde 2012
Slide 36
Exempel: reducera-1-strängTa bort en etta från varje sträng av 1:or på ingången.
med-1
Moore
Mealy
zero
[0]
1
0
0
one1
[0]
1
zero
0
1
two1s
[1]
0/0
36
0/0
1/0
one1
1/1
CP
In
Moore
Mealy
Digitalteknik syntes
36
Arne Linde 2012
Slide 37
37
VHDL FSM - Reduce 1s example
zero
[0]
Moore machine
entity Reduce1Moor is
port ( Clk : in std_logic;
I : in std_logic;
Reset : in std_logic;
O : out std_logic);
end Reduce1Moor;
0
1
0
0
one1
[0]
1
1
two1s
[1]
architecture BEHAVIORAL of Reduce1Moor is
type state_type is (zero,one1,two1s); --Tillståndsdeklaration
signal state:state_type;
begin
------end BEHAVIORAL;
37
Digitalteknik syntes
Arne Linde 2012
Slide 38
Moore VHDL FSM bättre 2-process lösning 38
(forts)
-- Kombinatorisk process
ASM_P: process(Clk,Reset) -- Synkron process
begin
if Reset = '1' then -- Asynkron reset
state<=zero; -- Reset tillstånd
elsif Clk'event and Clk='1' then
state<=next_state
zero
end if;
[0] 0
end process ASM_P;
1
0
0
one1
[0]
1
two1s1
[1]
inputs
combinational
logic for
next state
reg
state feedback
Digitalteknik syntes
logic for
outputs
next_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;
outputs
38
Arne Linde 2012
Slide 39
39
Mealy VHDL FSM
architecture BEHAVIORAL of Reduce1Mealy is
type state_type is (zero,one1); --Tillståndsdeklaration
signal state:state_type;
signal next_state:state_type;
0/0
zero
0/0
1/0
p2:process(state,I)
one1
begin
1/1
logic for
inputs
outputs case state is
outputs
when zero=>
combinational
reg
logic for
if I='1' then next_state<=one1; O<='0';
next state
else next_state<=zero; O<='0';
end if;
begin
state feedback
when one1=>
p1:process(Clk, Reset, next_state)
if I='1' then next_state<=one1; O<='1';
begin
else next_state<=zero; O<='0';
if Clk'event and Clk='1' then
end if;
if Reset = '1' then state<=zero;
when others=> next_state<=zero;
else state<=next_state;
end case;
end if; end if;
end process p2;
end process p1;
end BEHAVIORAL;
39
Digitalteknik syntes
Arne Linde 2012
Slide 40
40
Synkron Mealy maskin
architecture BEHAVIORAL of Reduce1SynkMealy is
type state_type is (zero,one1); --Tillståndsdeklaration
signal state:state_type;
begin
p1: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;
0/0
zero
0/0
1/0
one1
1/1
when others=> state<=zero; -- Saknar betydelse
end case; end if; end if;
end process;
end BEHAVIORAL;
Digitalteknik syntes
40
Arne Linde 2012
Slide 41
41
Metod för successiv partitionering
In
Sekvens
Reset
0
1
00
01
10
11
Nuvarande
tillstånd
S0
S1
S2
S3
S4
S5
S6
Nästa tillstånd
X=0
X=1
Output
X=0
X=1
S1
S3
S5
S0
S0
S0
S0
0
0
0
0
1
0
1
S2
S4
S6
S0
S0
S0
S0
( S0 S1 S2 S3 S4 S5 S6 )
0
0
0
0
0
0
0
Till
stånd part.
Till-
S0
S1
S2
S3
S4
S5
S6
aa
bb
gg
ab
ag
bd
ab
ag
bd
aa
aa
aa
aa
S1 är ekvivalent med S2
b
a
( S0 S1 S2 S3 S5 ) ( S4 S6 )
S3 är ekvivalent med S5
g
b
a
S4 är ekvivalent med S6
( S0 S3 S5 ) ( S1 S2 ) ( S4 S6 )
g
b
a
d
( S0 ) ( S3 S5 ) ( S1 S2 ) ( S4 S6 )
41
Digitalteknik syntes
Arne Linde 2012
Slide 42
42
Exempel för att
belysa realtionsgraf
S2
S3
S4
S5
S6
S7
4,6;2,4
(7,8)
S8
S9
S1
S2
S3
Digitalteknik syntes
S4
S5
S6
S7
S8
42
Arne Linde 2012
Slide 43
43
Exempel för att
belysa realtionsgraf
S2
S3
1,3
S4
S5
JA!
2,6;2,4
3,5
2,6
2,4
S3
S7
3,8;2,9
2,6
S4
S6
S7
2,6
5,8
2,6
5,8
2,4
3,8
S8
2,4
5,7
2,4
5,7
4,6
3,7
1,7;4,9
4,7
S9
S1
S2
S8
1,8;4,9
4,6
S6
S2
S1
S9
3,7;2,9
2,7
S3
Digitalteknik syntes
S4
S5
4,6;2,4
7,9
7,8
6,7
S5
S6
S7
S8
43
Arne Linde 2012
Slide 44
44
Resultat
44
Digitalteknik syntes
Arne Linde 2012
Slide 45
45
‘One-hot’ tillstånds tilldelning
Enkelt
Små logiska funktioner
många vippor finns tillgängliga
få variabler i ekvationerna
Opraktiskt för stora tillståndsmaskiner
varje tillståndsfunktion behöver bara en tillstånds bit från förgående
tillstånd
Bra för programmerbarlogik (FPGA)
enkelt att koda
Enkelt att fel söka
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
45
Digitalteknik syntes
Arne Linde 2012
Slide 46
46
Tillgängliga metoder för tillståndstilldelning
För snål kodning (nära minimalt antal tillståndsbitar)
’One-hot’ kodning
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)
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
46
Digitalteknik syntes
Arne Linde 2012
Slide 47
47
Statisk 1-hasard i S-O-P nät
f (1,x2,1) = x2 + x2’
47
Digitalteknik syntes
Arne Linde 2012
Slide 48
48
Statisk 0-hasard
f(0,x2,0) = x2’x2
Uppträder i
P-O-S nät
48
Digitalteknik syntes
Arne Linde 2012
Slide 49
49
Dynamisk hasard
Förutsättning minst tre grindnivåer
Kan uppstå i nät som efter insättning av värden på övriga variabler
kan reduceras till: xi + xi’ xi, xi’+ xi’xi, xi(xi’+ xi) eller xi’(xi’+ xi)
a
b
c
LUT
LUT
d
e
f
LUT
f(a,b,c,d,e,f,g,h,i,j)
f
LUT
g
h
I
j
Digitalteknik syntes
LUT
49
Arne Linde 2012
Slide 50
50
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)
50
Digitalteknik syntes
Arne Linde 2012
Slide 51
51
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
51
Digitalteknik syntes
Arne Linde 2012
Slide 52
52
Metodik för timing (forts.)
Definition av termer
Klocka:
periodisk händelse, åstadkommer förändring av minneselementens tillstånd
kan 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)
Tsu Th
data
D Q
D Q
input
clock
Det finns ett ’tidsfönster’
omkring klockhändelsen när
insignalerna måste vara stabila
för att minneselementen
ska få rätt värde
Digitalteknik syntes
clock
stabila förändring
data
clock
52
Arne Linde 2012
Slide 53
53
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
Tsu
Th
1.8
ns
0.5
ns
Clk
Q
Tw
3.3
ns
Tpd
3.6 ns
1.1 ns
Tsu
Th
1.8
ns
0.5
ns
Tw
3.3
ns
Tpd
3.6 ns
1.1 ns
Alla mätningar görs från klockhändelsen (stigande flank på klockan)
53
Digitalteknik syntes
Arne Linde 2012
Slide 54
54
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
logisk 1
logisk 0
logisk 1
liten, men inte noll sonorlikhet
att vippan fastnar
mellan sina tillstånd
Digitalteknik syntes
llogisk 0
Hur det kan se ut på ett oscilloskop
när synkroniseringsfel uppträder
54
Arne Linde 2012
Slide 55
55
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)
asynkron
insignal
D
Q
D
synkron
insignal
Q
Clk
Synkroniseringssystem
Digitalteknik syntes
55
Arne Linde 2012
Slide 56
56
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
Klockat
Synkront
System
Asynkron
Insignal
D Q
Synkroniserare
Q0
Asynkton
Insignal D Q
D Q
Clock
Clock
D Q
Q1
Clock
Q0
D Q
Q1
Clock
56
Digitalteknik syntes
Arne Linde 2012
Slide 57
57
Hantera asynkrona insignaler (forts.)
Vad kan bli fel?
insignalen ändras för nära klockflanken
(villkoret för setup tid ej uppfyllt)
In
Q0
Q1
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!
CLK
57
Digitalteknik syntes
Arne Linde 2012
Slide 58
58
Tillståndstabell / flödesgraf
Nuvarande
tillstånd
Insignal/
nästa tillstånd
X1 X2 X3 X4
x1+x4
Q1
Q1 Q1 Q2 Q2 Q1
Q2 Q2 Q2 Q3 Q1
Q4
Q4 Q4 Q1 Q3 Q4
Ett tillstånd är stabilt om
f (Xi,Qj)=Qj
x4
x1+x4
Q2
x2
x2
Q 3 Q4 Q2 Q3 Q3
x1+x2
x2+x3
x3
x3
x1
Q3
x3+x4
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.
Digitalteknik syntes
58
Arne Linde 2012
Slide 59
59
Tillståndsgraf:
c
9.17 Släpp
igenom CP
när W hög:
w
z
01(0)
CW(Z)
- 0 (0)
A
01(0)
00(0)
11(0)
B
11(-)
01(0)
C
CW(Z)
1- (1)
0-(-)
D
10(0)
11(0)
59
Digitalteknik syntes
Arne Linde 2012
Slide 60
60
Kapplöpningsfri tillståndskodning
Exempel modulo-4 räknare
d(l)
Q1
Q2
Q3
Q4
en insignal x och räknaren räknar varje omslag hos x
u1u2 = 00,01 10,11, 00
x
0
Q1(00)
Q3(-)
Q3(10)
Q1(-)
1
Q2(0-)
Q2(01)
Q4(1-)
Q4(11)
d(l)
00
01
10
11
x
0
00(00)
10(-)
10(10)
00(-)
Ex på tillståndskodning:
Q1=00, Q2=01, Q3=10, Q4=11
Digitalteknik syntes
1
01(0-)
01(01)
11(1-)
11(11)
60
Arne Linde 2012
Slide 61
61
Ger följande tillståndsgraf
Vi placerar in tillståndsgrafen i en Boolesk hyperkub för att
finna eventuella kapplöpningar.
01
00
0(-)
0(-)
10
q2
Ny kodning :
Q1=00, Q2=01, Q3=11, Q4=10
1(01)
0(00)
00
1(0-)
11
q2
01
0(-)
0(-)
q1
10
1(11)
11
0(10)
q1
Digitalteknik syntes
1(1-)
61
Arne Linde 2012
Slide 62
62
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’.
62
Digitalteknik syntes
Arne Linde 2012
Slide 63
63
Exempel 9.7
Present Next state w2 w1
state
00 01 11 10
A
A H –
B
Utsignalerna:
A,B,F,G,H (0) och C,D,E(1)
B
A-F
–
C
C
F
–
H
D
A
E
B
C
D-H
C-E
D
D-H
C-E
E
F
D-H
G
A-F
B-G
B
0
C
1
D
E
–
1
–
D
E
G
1
F
F
D
–
–
0
G
F
–
–
–
0
H
E
G
–
0
D-H
C-E
A
0
B
–
H
H
Output
z
C
Digitalteknik syntes
D
E
F
G
63
Arne Linde 2012
Slide 64
64
Exempel 9.7
A
Utsignalerna:
A,B,F,G,H (0) och C,D,E(1)
B
H
B
A-F
G
C
D
D-H
C-E
E
D-H
C-E
F
D-H
G
A-F
B-G
H
F
D
E
{B,F,G}
{A,H}
{D,E}
{C}
D-H
C-E
A
C
B
C
Digitalteknik syntes
D
E
F
G
64
Arne Linde 2012
Slide 65
65
2a
2b
3a
3b
4a
4b
1
2a 2b 3a 3b 4a
65
Digitalteknik syntes
Arne Linde 2012
Slide 66
66
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,-)
66
Digitalteknik syntes
Arne Linde 2012
Slide 67
67
Trevärdig logik (simulering)
Är ingen Boolesk algebra, ex X⋅X = X ≠ 0 och X+X = X ≠ 1
AND
0 0
0 1
1 1
0 X
1 X
0
0
1
0
X
OR
0 0
0 1
1 1
0 X
1 X
Digitalteknik syntes
0
1
1
X
1
NOT
0
1
1
0
X
X
67
Arne Linde 2012
Slide 68
68
Nivå simulering (Levelized simulation)
Kapa alla återkopplingar
Ge varje grind en topologisk nivå
Primära ingångar nivå 0
0
om primär insignal
Nivå (y) =
max {Nivå(yFI)} + 1 annars
68
Digitalteknik syntes
Arne Linde 2012
Slide 69
69
Händelsestyrd simulering (Event-driven simulation)
Används vid VHDL simulering
När insignalerna till en nod ändras
grindnivå simulering
funktionell simulering
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
69
Digitalteknik syntes
Arne Linde 2012
Slide 70
70
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
evalvera händelserna i lucka A
B
byt plats på lucka A och B, börja sedan om
Det spelar ingen roll i vilken ordning som händelserna
evalveras
uppdatera lucka B
när inga fler händelser finns i lucka A
A
Algoritm:
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)
.
70
Digitalteknik syntes
Arne Linde 2012
Slide 71
71
Simulering i VHDL
Händelsestyrd simulering
både enhetsfördröjning
och grind fördröjnings modellen
Kompilering och sammansättning (elaboration)
71
Digitalteknik syntes
Arne Linde 2012
Slide 72
72
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
72
Digitalteknik syntes
Arne Linde 2012
Slide 73
73
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
73
Digitalteknik syntes
Arne Linde 2012
Slide 74
74
Sammanfattning av regler för RTL syntes
’sensitivity’ listan
Förgreningar
Kombinatorisk alla insignaler (signaler i högerledet
logik
vid tilldelningar och de som används i
IF och CASE satser
täck alla
(eller default)
latchar
alla insignaler
okomplett
vippor
Klockan och asynkron set/reset
(if Clk'event and Clk='1' then)
okomplett
Tilldela aldrig en variabel eller signal i mer än en process
74
Digitalteknik syntes
Arne Linde 2012
Slide 75
75
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
75
Digitalteknik syntes
Arne Linde 2012
Slide 76
76
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!
76
Digitalteknik syntes
Arne Linde 2012
Slide 77
77
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 en korrekt boolesk algebra, där t ex
D•D’ =0, D+D’=1, D’·1 = D
K SA 0
y
z
x
1
1
k
G1
w
t
G2
&
&
b
G4
f
G3
77
Digitalteknik syntes
Arne Linde 2012
Slide 78
78
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.
78
Digitalteknik syntes
Arne Linde 2012
Slide 79
79
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
79
Digitalteknik syntes
Arne Linde 2012
Slide 80
80
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.
Initiering – reset
Få kretsen till ett välkänt tillstånd
Oscillatorer och klockor
Genom att lägga till extra ledare tilll/från kretsens utsida kan man öka
dess observerbarhet och kontrollerbarhet
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.
80
Digitalteknik syntes
Arne Linde 2012
Slide 81
81
“ad hoc’ ‘-metoder (forts)
Redundant logik
UNDVIK!
Globala återkopplingar
Inga TMR
Bryt återkopplingen med logik
Asynkrona sekvensnät
UNDVIK
81
Digitalteknik syntes
Arne Linde 2012
Slide 82
82
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
82
Digitalteknik syntes
Arne Linde 2012
Slide 83
83
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)
83
Digitalteknik syntes
Arne Linde 2012
Slide 84
84
Inbyggd självtest
Är en teknik för att låta kretsen testa sig själv
Testningen sker när systemet inte är i drift
I produktion – ingen testutrustning behövs
I fält – lätt att testa funktionen
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
84
Digitalteknik syntes
Arne Linde 2012
Slide 85
85
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.
85
Digitalteknik syntes
Arne Linde 2012
Slide 86
86
3. Effekt
1. Fler transistorer
• Nu: max ~100 – 150 W per chip
• Nu: miljarder transistorer på ett chip
• Fler och fler får plats (x2 per
• Teknologigenombrott krävs för ändring
processgeneration)
• Begränsningar:
• Replikerade block (minnen, kärnor)
• Spänningsmatning (1 V betyder 100 A)
• Återanvänt konstruktionsarbete
• Kylning (25 W / cm2)
• Nätverk på chip (NoC) för kommunikation
• Reglering av spänning och frekvens
• Redundans
2. Klockfrekvens
• Nu: enstaka GHz
• Inga större ändringar förväntas
• Snabbare transistorer, lika slöa ledningar
• Synkronisering svårare
• Globally Asynchronous, Locally
Synchronous
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
86
Digitalteknik syntes
Arne Linde 2012
Slide 87
87
Flera utgångar Ex 4.3
x3 x4
x1 x2
00
01
11
00
10
x3 x4
x1 x2
00
01
11
10
00
01
1
1
1
01
1
1
1
11
1
1
1
11
1
1
1
10
1
10
1
(c) Optimal realization off 3 and f 4 together
x3 x4
x1x2
00
01
11
10
00
x3 x4
x1 x2
00
01
11
10
00
01
1
1
1
01
1
1
1
11
1
1
1
11
1
1
1
10
1
(a) Optimal realization off 3
Digitalteknik syntes
10
1
(b) Optimal realization off 4
87
Arne Linde 2012
Slide 88
88
x3 x4
x1 x2
00
01
11
10
00
x1
01
1
1
1
11
1
1
1
10
x4
x1
1
f3
x2
x4
x1
x3 x4
x1 x2
00
01
11
10
x2
x3
00
01
1
1
1
x4
11
1
1
1
x2
10
1
f4
x4
f 3 and f 4
(d) Combined circuit for
88
Digitalteknik syntes
Arne Linde 2012
Slide 89
89
Flernivårealisering av kombinatoriska nät
Steg 1: Teknologioberoende, Sök gemensamma delfunktioner.
(algebraisk process)
Steg 2: Teknologi anpassning.
x1x2 + x1x2 = x1x2 + x1x2
Exempel 4.6
f = x1x2x3 + x1x2x3 + x1x2x4 + x1x2x4
g = x1x2 + x1x2
f = (x1x2 + x1x2)x3 + (x1x2 + x1x2)x4
f = gx3 + gx4
x1
x2
g
x3
x4
h
f
89
Digitalteknik syntes
Arne Linde 2012
Slide 90
90
CPLD
FPGA
Fördelar
Fördelar
Stora - i samma storleksordning
Konstant fördröjning
som ASIC
Snabba
Kan programmeras på plats
Kan programmeras på plats
Enkla billiga utvecklings-verktyg Kort utvecklingstid
Nackdelar
Billiga
Varierande fördröjning
Nackdelar
Pinnplacering och konstruktion
”Små”
har
Få register
stor betydelse för prestanda.
Flyktigt konfigurationsminne
(Xilinx)
90
Digitalteknik syntes
Arne Linde 2012
Slide 91
91
V DD
Transistorer - CMOS
NAND gate.
VDD
T
T1
Vx
Vf
1
Vf
T
T1 T2
Vx
0
1
Vx
f
T
1
on off
off on
3
1
0
2
NOT gate.
Digitalteknik syntes
T
Vx
1
T
3
Vx
2
T
4
2
Vf
x
2
V DD
T2
T
T
1
4
x1
x2
T
0
0
on
on
0
1
on
off
1
0
off
on (a)onCircuit
off
1
1
1
off
off
on
0
1
T
2
T
T
4
f
off
off
1
off
on
1
3
on
91
Arne Linde 2012
Slide 92
92
NOR gate
V DD
Vx
1
T1
Vx
2
T2
Vf
T
3
(a) Circuit
Digitalteknik syntes
T4
x1
x2
T
0
0
on
on
off
off
1
0
1
on
off
off
on
0
1
0
off
on
on
off
0
1
1
off
off
on
on
0
1
T
2
T
3
(b) Truth table and transistor states
T
4
f
92
Arne Linde 2012
Slide 93
93
V DD
Ex på uppgift
Vilken funktion realiseras?
F= x1’ + x2’x3’
F’= x1(x2+x3)
Vf
Vx
1
Vx
2
Vx
3
93
Digitalteknik syntes
Arne Linde 2012
Slide 94
94
94
94
Algorithm for two-level simplification (example)
A
A
C
X
1
0
1
X
1
0
1
X
1
0
1
0
1
1
1
0
1
1
1
0
1
1
1
0
X
X
0
0
X
X
0
0
X
X
0
0
1
0
1
0
1
0
1
0
1
0
1
D
C
B
D
C
B
2 primes around A'BC'D'
2 primes around ABC'D
A
X
1
0
1
0
1
1
1
0
X
X
0
0
1
0
1
D
C
D
B
A
C
A
A
X
1
0
1
0
1
1
1
0
X
X
0
0
1
0
1
D
C
X
1
0
1
0
1
1
1
0
X
X
0
0
1
0
1
D
B
B
B
3 primes around AB'C'D'
2 essential primes
minimum cover (3 primes)
Digitalteknik syntes
94
Arne Linde 2012
Slide 95
95
95
95
f (x3,x2,x1,x0) = m(41,52,62,81,92,102,133)+d(00,73,154)
x1 x0
X1
00 01 11 10
(0,4) 0-00
00
01
x3 x2
(0,8) -000
X3
1
11
10
(8,9)
1
-
1
1
100-
1
X2
-
1
(4,5,6,7) 01--
(5,7,13,15) -1-1
1
X0
(9,13) 1-01
(8,10) 10-0
95
Digitalteknik syntes
Arne Linde 2012
Slide 96
96
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
96
Digitalteknik syntes
Arne Linde 2012
Slide 97
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)
P1= ( S1,S2,S3,S6)(S4,S5,S7,S8,S9)
Digitalteknik syntes
97
97
Arne Linde 2012
Slide 98
Tillståndstabell – Minimering med direkt inspektion (forts)
Nästa tillstånd
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)
State 00
01
10
11
S1
S1
S3
S2
-
P3= ( S1)(S2,S6)(S3)(S4,S5,S7,S8,S9)
S2
S2
S4
S5
-
P4= ( S1)(S2,S6)(S3)(S4,S7,S8)(S5,S9)
S3
S3
S6
S7
-
S6
S6
S8
S9
-
Nästa tillstånd
S2’
State
00
01
10
11
S1
S1
S3
S2
-
S2
S2
S4
S5
-
S6
S6
S8
S9
-
S4
S1
-
-
-
S5
S3
-
-
-
S3
S3
S6
S7
-
S7
S1
-
-
-
S4
S1
-
-
-
S7
S1
-
-
-
S8
S1
-
-
-
S5
S3
-
-
-
S9
S3
-
-
-
S8
S1
-
-
-
S9
S3
-
-
-
S4’
S5’
Digitalteknik syntes
98
98
Arne Linde 2012
Slide 99
Sammanfattning: metod asynkrona 99
Syntes sekvensnät
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)
Primitiv flödestabell 0
A0
0
Next state
Present
B A-D
State
CA
B
DC
D
EE
.
N
DN
= 00
A
Output
z
D
6
.
F
N
B0A
01
11
10
B
–
CC1
0D
D
B
–
–
0
–
C
1
E
–
F
0
A
E
–
–
1
A
D–
–
5
0
C
F
1
2 B-E 0
B-E
A
C-F
E
0
D0D
4
N
F
F
0
N
E1
0
–
D
7
3
B
1
F1
(b) Initial flow table
D
0
(a)Initial
statediagram
99
Digitalteknik syntes
Arne Linde 2012
Slide 100
Sammanfattning: metod asynkrona100
DN
Syntes sekvensnät
y1y2
00 01 11 10
DN d
Nextstate
Present
00
state 00 0101 10
11d
1
y3 y2 y1
Y3 Y211
Y1 1
1
Output
1
d
z
000
000
10
010
– 1100d
1 0
B
010
011
010
– y3–= 0
0
C
111
101 y11y211
D
011
011
– 1
11 11 100
00
01
11100 –d
01 d
–
F
001
000
001
G
101
101
–
001
10 1
11 1
100
–
–
–
110
–
–
–
d d
001
d
001
1
0
d
1
d
1
1
001
1 d
10
y3 = 1
110
0
(a) 111
Map for
Y1 0
Ta fram exciteringstabell
(undersök tabellen för essentiella
hasarder)
Asynkront realiserbar ?
d
A
DN
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)
100
Digitalteknik syntes
Arne Linde 2012
Slide 101
Sammanfattning: metod asynkrona101
Syntes sekvensnät
Rita tillståndsgraf
Ta fram flödestabell och minimera
Ta fram primitiv flödestabell
Implikator tabell
Relationsgraf
Minimal flödestabell –
(undersök tabellen för
essentiella hasarder)
Asynkront realiserbar ?
Asynkront realiserbar ?
Genomför tillståndstilldelning
Boolesk kub
Stuva om, ändra vägar, lägg till
tillstånd (ta bort kapplöpning)
Ta fram exciteringstabell
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)
101
Digitalteknik syntes
Arne Linde 2012
Slide 102
102
6
2
7
3
4
0
5
1
102
Digitalteknik syntes
Arne Linde 2012
1
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
1
Digitalteknik syntes
Arne Linde 2012
Slide 2
2
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.
Digitalteknik syntes
2
Arne Linde 2012
Slide 3
3
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.
Digitalteknik syntes
Arne Linde 2012
3
Slide 4
4
Bred kurs - föreläsningar
1.
2.
3.
4.
5.
6.
7.
8.
9.
Introduktion
VHDL
Kombinatorik
Teknologier
VHDL (Labb 2)
Minneselement
Räknare & aretmetik
Sekvensnät
VHDL – 2 process metoden
10.
Tillståndsminimering
11.
Asynkrona sekvensnät 1
Asynkrona sekvensnät 2
Synkronisering - Testning
Design för test & Simulering
Konstruktion av ASIC
Sammanfattning
12.
13.
14.
15.
16.
4
Digitalteknik syntes
Arne Linde 2012
Slide 5
5
Laborationer
1.
2.
3.
4.
VHDL , intro + kombinatoriska nät.
VHDL, konstruktion och syntes.
Synkrona sekvensnät (VHDL + test bänkar)
Hasarder och asynkrona sekvensnät.
(I VHDL)
Kursen – omfångsrik!
Huvuddelarna! (ca 30/50p)
• VHDL
• Synkrona sekvensnät
• Asynkrona sekvensnät
5
Digitalteknik syntes
Arne Linde 2012
Slide 6
6
Måste behärska
Synkrona sekvensnät
• Koda snålt, one hot
• Kunna rita upp en tillståndsgraf • Kunna ta fram tidsdiagram och
• Känna till Mealy, Moore och
från tidsdiagram tillståndsgraf
synkron Mealy
• VHDL kopplingen.
• Kunna minimera
För överbetyg
Asynkrona sekvensnät
• Implementera hasard fritt
• Kunna rita upp en tillståndsgraf •Kunna ta fram tidsdiagram och
• Känna till Mealy och Moore
från tidsdiagram tillståndsgraf
• Kunna minimera
• Koda hasard fritt
Viktigt:
Förstå skillnaden mellan synkrona och asynkrona sekvensnät!6
Digitalteknik syntes
Arne Linde 2012
Slide 7
7
Tentamina: struktur
1. Småfrågor ca 6-12p
2. Minimering mm, ca 6-10p
Teknologi val
Synkroniseringsfel
Små VHDL uppgifter
ASIC, FPGA, CPLD
Primimplekanter, Quine-McCluskey/Karnaughdiagram
K
Testvektorer
Mux:ar
Hasader
Q
3. VHDL ca 8-12p
Läsa, förstå, ändra. (
programmering)
OBS räcker inte med allmän förståelse för
7
Digitalteknik syntes
Arne Linde 2012
Slide 8
8
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
asynkront sekvensnät
analys av Hassarder
Simulering
ASIC – transistorer mm
6. Konstruktion av asynkront sekvensnät, 6-12p
(4-8p)
timing
Poäng på tenta 50p godkänt 20p, 4:a 30p och 5:a 40p
Digitalteknik syntes
8
Arne Linde 2012
Slide 9
9
Viktiga metoder ett kunna
Karnaughdiagram 3-5
variabler.
Karnaughdiagram
primimplikatorer
Quine-McCluskey
Tillståndskodning
Heuristiska metoder
’One-hot’
Asynkrona nät
Primitiv flödestabell
Hasarder
Kapplöpningsfri kod
Dont-care i tillståndsgraf
Asynkront realiserbart
Testvektorer
Okänt tillstånd X
Minimering
Successiv partitionering
Implekatortabell
Relationsgraf
Digitalteknik syntes
9
Arne Linde 2012
Slide 10
10
Synkrona – Asynkrona sekvensnät
Rita tillståndsgraf
Tillstånds tabell
Minimera –
Implikator tabell
Relationsgraf,
eller stegvisa partitioneringar
Rita tillståndsgraf
(kvarhållande tillstånd)
Flödes tabell
Primitiv flödestabell!
Minimera
Implikator tabell
Relationsgraf,
Krav!, komplex relationsgraf!
Koda – gärna ”onehot”
Ta fram ekvationerna
Koda binärt (ej ”onehot”)
lägg ut i boolesk hyperkub
Ta fram ekvationerna +
konsensustermer
10
Digitalteknik syntes
Arne Linde 2012
Slide 11
11
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!
11
Digitalteknik syntes
Arne Linde 2012
Slide 12
12
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
12
Digitalteknik syntes
Arne Linde 2012
Slide 13
13
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 II
Kandidatarbete LP III – IV (ansvarig)
Examensarbeten.
13
Digitalteknik syntes
Arne Linde 2012
Slide 14
14
Prestanda
100
90
Prestanda
Sammanfattning
80
70
80
Risk
Rekonfigurerbarhet
70
60
Risk
60
50
50
40
Rekonfigurerbarhet
40
20
10
Utv-kostnad
30
DSP
FPGA
30
20
10
Testbarhet
0
Utv-kostnad
Testbarhet
0
Dator
Mickocontroller
St-kostnad
Plats
St-kostnad
Plats
Prestanda
Effekt
100
Effekt
90
80
Risk
70
Rekonfigurerbarhet
60
50
40
30
20
10
Utv-kostnad
Testbarhet
0
ASIC
StdKretsar
St-kostnad
Digitalteknik syntes
Plats
14
Arne Linde 2012
Slide 15
15
EX 2007-01-13 Upg 3
entity Upg3 is
port ( Clk,X,Reset : in std_logic; U : out std_logic);
end Upg3;
architecture BEHAVIORAL of Upg3 is
type state_type is (S0,S1,S2);
signal state, next_state : state_type;
begin
p1: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)
begin
U<='0'; next_state <= S0;
case state is
when 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;
15
Digitalteknik syntes
Arne Linde 2012
Slide 16
16
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
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
case state is when S0 => Next_y <= S9
Register
Shift register
Räknare
Digitalteknik syntes
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
16
Arne Linde 2012
Slide 17
17
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).
17
Digitalteknik syntes
Arne Linde 2012
Slide 18
x5x4
00
01
11
10
0 1 3 2
4 5 7 6
12 13 15 14
8 9 11 10
16 17 19 18
20 21 23 22
28 29 31 30
24 25 27 26
48 49 51 50
52 53 55 54
60 61 63 62
56 57 59 58
32 33 35 34
36 37 39 38
44 45 47 46
40 41 43 42
x5x4
00
0
1
115 117
4
12
13
118
20
28
1124
17
60
1156
49
1140
55
63
59
33
45
41
54
62
1158
35
47
43
X’5X’2X1X’0
50
34
1137 1139
36
44
30
51
53
57
22
1126
27
32
10
31
61
X3X’2X’0
1118
23
29
52
14
19
21
25
6
1110
11
48
11
15
9
16
01
12
3
38
46
1142
X’4X’3X2X0
Slide 19
19
Quine-McCluskey
Exempel:
f (x3,x2,x1,x0) = m(4,5,6,8,9,10,13)+d(0,7,15)
x1 x0
X1
00 01 11 10
00 x3 x2
X3
01
11
1 1 -
10
1 1
1 X0
Digitalteknik syntes
1
X2
1
19
Arne Linde 2012
Slide 20
20
Gruppera termerna efter antal ettor
0 0000v
4 0100v
8 1000v
5 0101 v
6 0110 v
9 1001 v
10 1010 v
7 0111 v
13 1101 v
15 1111 v
0-00
(0,8) -000
(4,5) 010- v
(4,6) 01-0 v
(8,9) 100(8,10) 10-0
(5,7) 01-1v
(5,13) -101 v
(6,7) 011- v
(9,13) 1-01
(7,15) -111 v
(13,15) 11-1 v
(0,4)
(4,5,6,7)
01--
(5,7,13,15)
-1-1
v20
Digitalteknik syntes
Arne Linde 2012
Slide 21
21
x1 x0
(0,4) 0-00
x3 x2
(0,8) -000 X
3
(8,9) 100-
X1
00 01 11 10
00 01
11
1 1 -
10
1 1
1
1 -
(9,13) 1-01
1
(4,5,6,7) 01-X2
(5,7,13,15) -1-1
X0
(8,19) 10-0
21
Digitalteknik syntes
Arne Linde 2012
Slide 22
22
Hitta en minimal täckand funktion
4
0,4 (0-00)
5
6
8
X
8,9 (100-)
X
8,10 (10-0)
X
9,13 (1-01)
5,7,13,15 (-1-1)
10
13
X
0,8 (-000)
4,5,6,7 (01--)
9
X
X
X
X
X
X
EJ
0,7
och
15
X
X
X
22
Digitalteknik syntes
Arne Linde 2012
Slide 23
23
Essentiella primimplikanter
4
0,4 (0-00)
5
6
8
X
8,9 (100-)
X
8,10 (10-0)
X
9,13 (1-01)
5,7,13,15 (-1-1)
10
13
X
0,8 (-000)
4,5,6,7 (01--)
9
X
X
X
X
X
X
X
X
X
23
Digitalteknik syntes
Arne Linde 2012
Slide 24
24
Sammanfattning Quine-McCluskey
1.
2.
3.
4.
5.
Ordna samtliga mintermer och ”don’t care” i en tabell efter antalet
”ettor”.
Jämför varje minterm med de mintermer som har en ”etta” mer.
De som stämmer (skiljer sig i endast en position) bockas av och
den förenklade termen skrivs upp.
Upprepa 2 & 3 för de nya kolumner som bildas tills det inte går
mer.
De termer som nu inte är markerade är funktionens
primimplekanter.
24
Digitalteknik syntes
Arne Linde 2012
Slide 25
25
Multiplexrar som generell logik (forts.)
I allmänhet
n-1 mux styr
variabler
I0
I1
. . . In-1 In
.
.
.
.
0
0
0
1
.
.
.
.
1
0
1
0
0
In
In'
en mux data
variabler
Exempel:
G(A,B,C,D)
kan implementeras
med en 8:1 MUX
välj A,B,C som
styr variabler
Digitalteknik syntes
A
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
B
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
C
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
D
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
G
1
1
0
1
0
0
1
1
1
0
0
1
1
0
1
0
F
1 Fyra möjliga
konfigurationer av
1 Sanningstabellen
Kan uttryckas som
en funktion av In
1
1
D
0
1
D'
D
1
D
0
1
D’
D
D’
D’
0
1
2
3
4 8:1 MUX
5
6
7
S2 S1 S0
D’
D’
A
B
C
25
Arne Linde 2012
Slide 26
26
Aktivitet
Realisera F = B’CD’ + ABC’ med en 4:1 multiplexer och så få
grindar som möjligt:
A
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
B
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
C
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
D
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
Z
0
0
1
0
0
0
0
0
0
0
1
0
1
1
0
0
Digitalteknik syntes
CD’
En grind behövs!
0
CD’
C’
26
Arne Linde 2012
Slide 27
27
Aktivitet (forts.)
Realisera F = B’CD’ + ABC’ med en 4:1 multiplexer och så få
grindar som möjligt:
A
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
B
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
C
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
D
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
Z
0
0
1
0
0
0
0
0
0
0
1
0
1
1
0
0
Digitalteknik syntes
0 när B’C’
D’ när B’C
A när BC’
0 när BC
0
D’
A
0
0
1 4:1 MUX
2
3
S1 S0
B
F
C
Z = B’C’(0) + B’C(D’) + BC’(A) + BC(0)
27
Arne Linde 2012
Slide 28
28
Demultiplexers som generell logik
En n:2n avkodare kan implementera en godtycklig funktion av
n variabler
“1”
med variablerna som styrsignaler
“enable” ansluten till 1 och
rätt mintermer summerade för att skapa funktionen
0
1
2
3
3:8 DEC 4
5
6
7
S2 S1 S0
A
B
C
Digitalteknik syntes
A'B'C'
A'B'C
A'BC'
A'BC
AB'C'
AB'C
ABC'
ABC
demultiplexer genererar alla mintermerna
28
Arne Linde 2012
Slide 29
29
PALs och PLAs: design exempel (forts.)
Kode konverterare: programmerbar PLA
A B
C D
A
BD
BC
BC'
B
C
A'B'C'D
BCD
AD'
Minimerade funktioner:
W = A + BD + BC
X = B C'
Y=B+C
Z = A'B'C'D + BCD + AD' + B'CD'
Ingen bra kandidat för PLA
Implementering eftersom inga
termer är delade mellan utgångarna
Men mycket mer kompakt
implementering jämfört med
lösa AND och OR gates
BCD'
W
Digitalteknik syntes
X
Y
Z
29
Arne Linde 2012
Slide 30
30
PALs och PLAs:
design exempel (forts.)
A B C D
A
BD
BC
0
BC'
Kode konverterare:
programmerbar PAL
0
0
0
B
4 produkttermer
per OR grind
C
0
0
A'B'C'D
BCD
AD'
B'CD'
W X Y Z
Digitalteknik syntes
30
Arne Linde 2012
Slide 31
31
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
31
Digitalteknik syntes
Arne Linde 2012
Slide 32
32
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)
32
Digitalteknik syntes
Arne Linde 2012
Slide 33
33
Jämförelse mellan Mealy och Moore
tillståndsmaskiner (forts.)
Moore
inputs
combinational
logic for
next state
logic for
outputs
outputs
state feedback
Mealy
inputs
logic for
outputs
combinational
logic for
next state
reg
outputs
reg
Synkron Mealy
state feedback
inputs
logic for
outputs
combinational
logic for
next state
state feedback
Digitalteknik syntes
outputs
reg
33
Arne Linde 2012
Slide 34
Exempel: reducera-1-strängTa bort en etta från varje sträng av 1:or på ingången.
med-1
Moore
Mealy
zero
[0]
1
0
0
one1
[0]
1
zero
0
1
two1s
[1]
0/0
34
0/0
1/0
one1
1/1
CP
In
Moore
Mealy
Digitalteknik syntes
34
Arne Linde 2012
Slide 35
Exempel: reducera-1-strängTa bort en etta från varje sträng av 1:or på ingången.
med-1
Moore
Mealy
zero
[0]
1
0
0
one1
[0]
1
zero
0
1
two1s
[1]
0/0
35
0/0
1/0
one1
1/1
CP
In
Moore
Mealy
Digitalteknik syntes
35
Arne Linde 2012
Slide 36
Exempel: reducera-1-strängTa bort en etta från varje sträng av 1:or på ingången.
med-1
Moore
Mealy
zero
[0]
1
0
0
one1
[0]
1
zero
0
1
two1s
[1]
0/0
36
0/0
1/0
one1
1/1
CP
In
Moore
Mealy
Digitalteknik syntes
36
Arne Linde 2012
Slide 37
37
VHDL FSM - Reduce 1s example
zero
[0]
Moore machine
entity Reduce1Moor is
port ( Clk : in std_logic;
I : in std_logic;
Reset : in std_logic;
O : out std_logic);
end Reduce1Moor;
0
1
0
0
one1
[0]
1
1
two1s
[1]
architecture BEHAVIORAL of Reduce1Moor is
type state_type is (zero,one1,two1s); --Tillståndsdeklaration
signal state:state_type;
begin
------end BEHAVIORAL;
37
Digitalteknik syntes
Arne Linde 2012
Slide 38
Moore VHDL FSM bättre 2-process lösning 38
(forts)
-- Kombinatorisk process
ASM_P: process(Clk,Reset) -- Synkron process
begin
if Reset = '1' then -- Asynkron reset
state<=zero; -- Reset tillstånd
elsif Clk'event and Clk='1' then
state<=next_state
zero
end if;
[0] 0
end process ASM_P;
1
0
0
one1
[0]
1
two1s1
[1]
inputs
combinational
logic for
next state
reg
state feedback
Digitalteknik syntes
logic for
outputs
next_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;
outputs
38
Arne Linde 2012
Slide 39
39
Mealy VHDL FSM
architecture BEHAVIORAL of Reduce1Mealy is
type state_type is (zero,one1); --Tillståndsdeklaration
signal state:state_type;
signal next_state:state_type;
0/0
zero
0/0
1/0
p2:process(state,I)
one1
begin
1/1
logic for
inputs
outputs case state is
outputs
when zero=>
combinational
reg
logic for
if I='1' then next_state<=one1; O<='0';
next state
else next_state<=zero; O<='0';
end if;
begin
state feedback
when one1=>
p1:process(Clk, Reset, next_state)
if I='1' then next_state<=one1; O<='1';
begin
else next_state<=zero; O<='0';
if Clk'event and Clk='1' then
end if;
if Reset = '1' then state<=zero;
when others=> next_state<=zero;
else state<=next_state;
end case;
end if; end if;
end process p2;
end process p1;
end BEHAVIORAL;
39
Digitalteknik syntes
Arne Linde 2012
Slide 40
40
Synkron Mealy maskin
architecture BEHAVIORAL of Reduce1SynkMealy is
type state_type is (zero,one1); --Tillståndsdeklaration
signal state:state_type;
begin
p1: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;
0/0
zero
0/0
1/0
one1
1/1
when others=> state<=zero; -- Saknar betydelse
end case; end if; end if;
end process;
end BEHAVIORAL;
Digitalteknik syntes
40
Arne Linde 2012
Slide 41
41
Metod för successiv partitionering
In
Sekvens
Reset
0
1
00
01
10
11
Nuvarande
tillstånd
S0
S1
S2
S3
S4
S5
S6
Nästa tillstånd
X=0
X=1
Output
X=0
X=1
S1
S3
S5
S0
S0
S0
S0
0
0
0
0
1
0
1
S2
S4
S6
S0
S0
S0
S0
( S0 S1 S2 S3 S4 S5 S6 )
0
0
0
0
0
0
0
Till
stånd part.
Till-
S0
S1
S2
S3
S4
S5
S6
aa
bb
gg
ab
ag
bd
ab
ag
bd
aa
aa
aa
aa
S1 är ekvivalent med S2
b
a
( S0 S1 S2 S3 S5 ) ( S4 S6 )
S3 är ekvivalent med S5
g
b
a
S4 är ekvivalent med S6
( S0 S3 S5 ) ( S1 S2 ) ( S4 S6 )
g
b
a
d
( S0 ) ( S3 S5 ) ( S1 S2 ) ( S4 S6 )
41
Digitalteknik syntes
Arne Linde 2012
Slide 42
42
Exempel för att
belysa realtionsgraf
S2
S3
S4
S5
S6
S7
4,6;2,4
(7,8)
S8
S9
S1
S2
S3
Digitalteknik syntes
S4
S5
S6
S7
S8
42
Arne Linde 2012
Slide 43
43
Exempel för att
belysa realtionsgraf
S2
S3
1,3
S4
S5
JA!
2,6;2,4
3,5
2,6
2,4
S3
S7
3,8;2,9
2,6
S4
S6
S7
2,6
5,8
2,6
5,8
2,4
3,8
S8
2,4
5,7
2,4
5,7
4,6
3,7
1,7;4,9
4,7
S9
S1
S2
S8
1,8;4,9
4,6
S6
S2
S1
S9
3,7;2,9
2,7
S3
Digitalteknik syntes
S4
S5
4,6;2,4
7,9
7,8
6,7
S5
S6
S7
S8
43
Arne Linde 2012
Slide 44
44
Resultat
44
Digitalteknik syntes
Arne Linde 2012
Slide 45
45
‘One-hot’ tillstånds tilldelning
Enkelt
Små logiska funktioner
många vippor finns tillgängliga
få variabler i ekvationerna
Opraktiskt för stora tillståndsmaskiner
varje tillståndsfunktion behöver bara en tillstånds bit från förgående
tillstånd
Bra för programmerbarlogik (FPGA)
enkelt att koda
Enkelt att fel söka
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
45
Digitalteknik syntes
Arne Linde 2012
Slide 46
46
Tillgängliga metoder för tillståndstilldelning
För snål kodning (nära minimalt antal tillståndsbitar)
’One-hot’ kodning
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)
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
46
Digitalteknik syntes
Arne Linde 2012
Slide 47
47
Statisk 1-hasard i S-O-P nät
f (1,x2,1) = x2 + x2’
47
Digitalteknik syntes
Arne Linde 2012
Slide 48
48
Statisk 0-hasard
f(0,x2,0) = x2’x2
Uppträder i
P-O-S nät
48
Digitalteknik syntes
Arne Linde 2012
Slide 49
49
Dynamisk hasard
Förutsättning minst tre grindnivåer
Kan uppstå i nät som efter insättning av värden på övriga variabler
kan reduceras till: xi + xi’ xi, xi’+ xi’xi, xi(xi’+ xi) eller xi’(xi’+ xi)
a
b
c
LUT
LUT
d
e
f
LUT
f(a,b,c,d,e,f,g,h,i,j)
f
LUT
g
h
I
j
Digitalteknik syntes
LUT
49
Arne Linde 2012
Slide 50
50
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)
50
Digitalteknik syntes
Arne Linde 2012
Slide 51
51
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
51
Digitalteknik syntes
Arne Linde 2012
Slide 52
52
Metodik för timing (forts.)
Definition av termer
Klocka:
periodisk händelse, åstadkommer förändring av minneselementens tillstånd
kan 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)
Tsu Th
data
D Q
D Q
input
clock
Det finns ett ’tidsfönster’
omkring klockhändelsen när
insignalerna måste vara stabila
för att minneselementen
ska få rätt värde
Digitalteknik syntes
clock
stabila förändring
data
clock
52
Arne Linde 2012
Slide 53
53
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
Tsu
Th
1.8
ns
0.5
ns
Clk
Q
Tw
3.3
ns
Tpd
3.6 ns
1.1 ns
Tsu
Th
1.8
ns
0.5
ns
Tw
3.3
ns
Tpd
3.6 ns
1.1 ns
Alla mätningar görs från klockhändelsen (stigande flank på klockan)
53
Digitalteknik syntes
Arne Linde 2012
Slide 54
54
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
logisk 1
logisk 0
logisk 1
liten, men inte noll sonorlikhet
att vippan fastnar
mellan sina tillstånd
Digitalteknik syntes
llogisk 0
Hur det kan se ut på ett oscilloskop
när synkroniseringsfel uppträder
54
Arne Linde 2012
Slide 55
55
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)
asynkron
insignal
D
Q
D
synkron
insignal
Q
Clk
Synkroniseringssystem
Digitalteknik syntes
55
Arne Linde 2012
Slide 56
56
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
Klockat
Synkront
System
Asynkron
Insignal
D Q
Synkroniserare
Q0
Asynkton
Insignal D Q
D Q
Clock
Clock
D Q
Q1
Clock
Q0
D Q
Q1
Clock
56
Digitalteknik syntes
Arne Linde 2012
Slide 57
57
Hantera asynkrona insignaler (forts.)
Vad kan bli fel?
insignalen ändras för nära klockflanken
(villkoret för setup tid ej uppfyllt)
In
Q0
Q1
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!
CLK
57
Digitalteknik syntes
Arne Linde 2012
Slide 58
58
Tillståndstabell / flödesgraf
Nuvarande
tillstånd
Insignal/
nästa tillstånd
X1 X2 X3 X4
x1+x4
Q1
Q1 Q1 Q2 Q2 Q1
Q2 Q2 Q2 Q3 Q1
Q4
Q4 Q4 Q1 Q3 Q4
Ett tillstånd är stabilt om
f (Xi,Qj)=Qj
x4
x1+x4
Q2
x2
x2
Q 3 Q4 Q2 Q3 Q3
x1+x2
x2+x3
x3
x3
x1
Q3
x3+x4
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.
Digitalteknik syntes
58
Arne Linde 2012
Slide 59
59
Tillståndsgraf:
c
9.17 Släpp
igenom CP
när W hög:
w
z
01(0)
CW(Z)
- 0 (0)
A
01(0)
00(0)
11(0)
B
11(-)
01(0)
C
CW(Z)
1- (1)
0-(-)
D
10(0)
11(0)
59
Digitalteknik syntes
Arne Linde 2012
Slide 60
60
Kapplöpningsfri tillståndskodning
Exempel modulo-4 räknare
d(l)
Q1
Q2
Q3
Q4
en insignal x och räknaren räknar varje omslag hos x
u1u2 = 00,01 10,11, 00
x
0
Q1(00)
Q3(-)
Q3(10)
Q1(-)
1
Q2(0-)
Q2(01)
Q4(1-)
Q4(11)
d(l)
00
01
10
11
x
0
00(00)
10(-)
10(10)
00(-)
Ex på tillståndskodning:
Q1=00, Q2=01, Q3=10, Q4=11
Digitalteknik syntes
1
01(0-)
01(01)
11(1-)
11(11)
60
Arne Linde 2012
Slide 61
61
Ger följande tillståndsgraf
Vi placerar in tillståndsgrafen i en Boolesk hyperkub för att
finna eventuella kapplöpningar.
01
00
0(-)
0(-)
10
q2
Ny kodning :
Q1=00, Q2=01, Q3=11, Q4=10
1(01)
0(00)
00
1(0-)
11
q2
01
0(-)
0(-)
q1
10
1(11)
11
0(10)
q1
Digitalteknik syntes
1(1-)
61
Arne Linde 2012
Slide 62
62
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’.
62
Digitalteknik syntes
Arne Linde 2012
Slide 63
63
Exempel 9.7
Present Next state w2 w1
state
00 01 11 10
A
A H –
B
Utsignalerna:
A,B,F,G,H (0) och C,D,E(1)
B
A-F
–
C
C
F
–
H
D
A
E
B
C
D-H
C-E
D
D-H
C-E
E
F
D-H
G
A-F
B-G
B
0
C
1
D
E
–
1
–
D
E
G
1
F
F
D
–
–
0
G
F
–
–
–
0
H
E
G
–
0
D-H
C-E
A
0
B
–
H
H
Output
z
C
Digitalteknik syntes
D
E
F
G
63
Arne Linde 2012
Slide 64
64
Exempel 9.7
A
Utsignalerna:
A,B,F,G,H (0) och C,D,E(1)
B
H
B
A-F
G
C
D
D-H
C-E
E
D-H
C-E
F
D-H
G
A-F
B-G
H
F
D
E
{B,F,G}
{A,H}
{D,E}
{C}
D-H
C-E
A
C
B
C
Digitalteknik syntes
D
E
F
G
64
Arne Linde 2012
Slide 65
65
2a
2b
3a
3b
4a
4b
1
2a 2b 3a 3b 4a
65
Digitalteknik syntes
Arne Linde 2012
Slide 66
66
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,-)
66
Digitalteknik syntes
Arne Linde 2012
Slide 67
67
Trevärdig logik (simulering)
Är ingen Boolesk algebra, ex X⋅X = X ≠ 0 och X+X = X ≠ 1
AND
0 0
0 1
1 1
0 X
1 X
0
0
1
0
X
OR
0 0
0 1
1 1
0 X
1 X
Digitalteknik syntes
0
1
1
X
1
NOT
0
1
1
0
X
X
67
Arne Linde 2012
Slide 68
68
Nivå simulering (Levelized simulation)
Kapa alla återkopplingar
Ge varje grind en topologisk nivå
Primära ingångar nivå 0
0
om primär insignal
Nivå (y) =
max {Nivå(yFI)} + 1 annars
68
Digitalteknik syntes
Arne Linde 2012
Slide 69
69
Händelsestyrd simulering (Event-driven simulation)
Används vid VHDL simulering
När insignalerna till en nod ändras
grindnivå simulering
funktionell simulering
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
69
Digitalteknik syntes
Arne Linde 2012
Slide 70
70
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
evalvera händelserna i lucka A
B
byt plats på lucka A och B, börja sedan om
Det spelar ingen roll i vilken ordning som händelserna
evalveras
uppdatera lucka B
när inga fler händelser finns i lucka A
A
Algoritm:
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)
.
70
Digitalteknik syntes
Arne Linde 2012
Slide 71
71
Simulering i VHDL
Händelsestyrd simulering
både enhetsfördröjning
och grind fördröjnings modellen
Kompilering och sammansättning (elaboration)
71
Digitalteknik syntes
Arne Linde 2012
Slide 72
72
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
72
Digitalteknik syntes
Arne Linde 2012
Slide 73
73
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
73
Digitalteknik syntes
Arne Linde 2012
Slide 74
74
Sammanfattning av regler för RTL syntes
’sensitivity’ listan
Förgreningar
Kombinatorisk alla insignaler (signaler i högerledet
logik
vid tilldelningar och de som används i
IF och CASE satser
täck alla
(eller default)
latchar
alla insignaler
okomplett
vippor
Klockan och asynkron set/reset
(if Clk'event and Clk='1' then)
okomplett
Tilldela aldrig en variabel eller signal i mer än en process
74
Digitalteknik syntes
Arne Linde 2012
Slide 75
75
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
75
Digitalteknik syntes
Arne Linde 2012
Slide 76
76
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!
76
Digitalteknik syntes
Arne Linde 2012
Slide 77
77
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
D•D’ =0, D+D’=1, D’·1 = D
K SA 0
y
z
x
1
1
k
G1
w
t
G2
&
&
b
G4
f
G3
77
Digitalteknik syntes
Arne Linde 2012
Slide 78
78
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.
78
Digitalteknik syntes
Arne Linde 2012
Slide 79
79
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
79
Digitalteknik syntes
Arne Linde 2012
Slide 80
80
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.
Initiering – reset
Få kretsen till ett välkänt tillstånd
Oscillatorer och klockor
Genom att lägga till extra ledare tilll/från kretsens utsida kan man öka
dess observerbarhet och kontrollerbarhet
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.
80
Digitalteknik syntes
Arne Linde 2012
Slide 81
81
“ad hoc’ ‘-metoder (forts)
Redundant logik
UNDVIK!
Globala återkopplingar
Inga TMR
Bryt återkopplingen med logik
Asynkrona sekvensnät
UNDVIK
81
Digitalteknik syntes
Arne Linde 2012
Slide 82
82
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
82
Digitalteknik syntes
Arne Linde 2012
Slide 83
83
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)
83
Digitalteknik syntes
Arne Linde 2012
Slide 84
84
Inbyggd självtest
Är en teknik för att låta kretsen testa sig själv
Testningen sker när systemet inte är i drift
I produktion – ingen testutrustning behövs
I fält – lätt att testa funktionen
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
84
Digitalteknik syntes
Arne Linde 2012
Slide 85
85
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.
85
Digitalteknik syntes
Arne Linde 2012
Slide 86
86
3. Effekt
1. Fler transistorer
• Nu: max ~100 – 150 W per chip
• Nu: miljarder transistorer på ett chip
• Fler och fler får plats (x2 per
• Teknologigenombrott krävs för ändring
processgeneration)
• Begränsningar:
• Replikerade block (minnen, kärnor)
• Spänningsmatning (1 V betyder 100 A)
• Återanvänt konstruktionsarbete
• Kylning (25 W / cm2)
• Nätverk på chip (NoC) för kommunikation
• Reglering av spänning och frekvens
• Redundans
2. Klockfrekvens
• Nu: enstaka GHz
• Inga större ändringar förväntas
• Snabbare transistorer, lika slöa ledningar
• Synkronisering svårare
• Globally Asynchronous, Locally
Synchronous
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
86
Digitalteknik syntes
Arne Linde 2012
Slide 87
87
Flera utgångar Ex 4.3
x3 x4
x1 x2
00
01
11
00
10
x3 x4
x1 x2
00
01
11
10
00
01
1
1
1
01
1
1
1
11
1
1
1
11
1
1
1
10
1
10
1
(c) Optimal realization off 3 and f 4 together
x3 x4
x1x2
00
01
11
10
00
x3 x4
x1 x2
00
01
11
10
00
01
1
1
1
01
1
1
1
11
1
1
1
11
1
1
1
10
1
(a) Optimal realization off 3
Digitalteknik syntes
10
1
(b) Optimal realization off 4
87
Arne Linde 2012
Slide 88
88
x3 x4
x1 x2
00
01
11
10
00
x1
01
1
1
1
11
1
1
1
10
x4
x1
1
f3
x2
x4
x1
x3 x4
x1 x2
00
01
11
10
x2
x3
00
01
1
1
1
x4
11
1
1
1
x2
10
1
f4
x4
f 3 and f 4
(d) Combined circuit for
88
Digitalteknik syntes
Arne Linde 2012
Slide 89
89
Flernivårealisering av kombinatoriska nät
Steg 1: Teknologioberoende, Sök gemensamma delfunktioner.
(algebraisk process)
Steg 2: Teknologi anpassning.
x1x2 + x1x2 = x1x2 + x1x2
Exempel 4.6
f = x1x2x3 + x1x2x3 + x1x2x4 + x1x2x4
g = x1x2 + x1x2
f = (x1x2 + x1x2)x3 + (x1x2 + x1x2)x4
f = gx3 + gx4
x1
x2
g
x3
x4
h
f
89
Digitalteknik syntes
Arne Linde 2012
Slide 90
90
CPLD
FPGA
Fördelar
Fördelar
Stora - i samma storleksordning
Konstant fördröjning
som ASIC
Snabba
Kan programmeras på plats
Kan programmeras på plats
Enkla billiga utvecklings-verktyg Kort utvecklingstid
Nackdelar
Billiga
Varierande fördröjning
Nackdelar
Pinnplacering och konstruktion
”Små”
har
Få register
stor betydelse för prestanda.
Flyktigt konfigurationsminne
(Xilinx)
90
Digitalteknik syntes
Arne Linde 2012
Slide 91
91
V DD
Transistorer - CMOS
NAND gate.
VDD
T
T1
Vx
Vf
1
Vf
T
T1 T2
Vx
0
1
Vx
f
T
1
on off
off on
3
1
0
2
NOT gate.
Digitalteknik syntes
T
Vx
1
T
3
Vx
2
T
4
2
Vf
x
2
V DD
T2
T
T
1
4
x1
x2
T
0
0
on
on
0
1
on
off
1
0
off
on (a)onCircuit
off
1
1
1
off
off
on
0
1
T
2
T
T
4
f
off
off
1
off
on
1
3
on
91
Arne Linde 2012
Slide 92
92
NOR gate
V DD
Vx
1
T1
Vx
2
T2
Vf
T
3
(a) Circuit
Digitalteknik syntes
T4
x1
x2
T
0
0
on
on
off
off
1
0
1
on
off
off
on
0
1
0
off
on
on
off
0
1
1
off
off
on
on
0
1
T
2
T
3
(b) Truth table and transistor states
T
4
f
92
Arne Linde 2012
Slide 93
93
V DD
Ex på uppgift
Vilken funktion realiseras?
F= x1’ + x2’x3’
F’= x1(x2+x3)
Vf
Vx
1
Vx
2
Vx
3
93
Digitalteknik syntes
Arne Linde 2012
Slide 94
94
94
94
Algorithm for two-level simplification (example)
A
A
C
X
1
0
1
X
1
0
1
X
1
0
1
0
1
1
1
0
1
1
1
0
1
1
1
0
X
X
0
0
X
X
0
0
X
X
0
0
1
0
1
0
1
0
1
0
1
0
1
D
C
B
D
C
B
2 primes around A'BC'D'
2 primes around ABC'D
A
X
1
0
1
0
1
1
1
0
X
X
0
0
1
0
1
D
C
D
B
A
C
A
A
X
1
0
1
0
1
1
1
0
X
X
0
0
1
0
1
D
C
X
1
0
1
0
1
1
1
0
X
X
0
0
1
0
1
D
B
B
B
3 primes around AB'C'D'
2 essential primes
minimum cover (3 primes)
Digitalteknik syntes
94
Arne Linde 2012
Slide 95
95
95
95
f (x3,x2,x1,x0) = m(41,52,62,81,92,102,133)+d(00,73,154)
x1 x0
X1
00 01 11 10
(0,4) 0-00
00
01
x3 x2
(0,8) -000
X3
1
11
10
(8,9)
1
-
1
1
100-
1
X2
-
1
(4,5,6,7) 01--
(5,7,13,15) -1-1
1
X0
(9,13) 1-01
(8,10) 10-0
95
Digitalteknik syntes
Arne Linde 2012
Slide 96
96
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
96
Digitalteknik syntes
Arne Linde 2012
Slide 97
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)
P1= ( S1,S2,S3,S6)(S4,S5,S7,S8,S9)
Digitalteknik syntes
97
97
Arne Linde 2012
Slide 98
Tillståndstabell – Minimering med direkt inspektion (forts)
Nästa tillstånd
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)
State 00
01
10
11
S1
S1
S3
S2
-
P3= ( S1)(S2,S6)(S3)(S4,S5,S7,S8,S9)
S2
S2
S4
S5
-
P4= ( S1)(S2,S6)(S3)(S4,S7,S8)(S5,S9)
S3
S3
S6
S7
-
S6
S6
S8
S9
-
Nästa tillstånd
S2’
State
00
01
10
11
S1
S1
S3
S2
-
S2
S2
S4
S5
-
S6
S6
S8
S9
-
S4
S1
-
-
-
S5
S3
-
-
-
S3
S3
S6
S7
-
S7
S1
-
-
-
S4
S1
-
-
-
S7
S1
-
-
-
S8
S1
-
-
-
S5
S3
-
-
-
S9
S3
-
-
-
S8
S1
-
-
-
S9
S3
-
-
-
S4’
S5’
Digitalteknik syntes
98
98
Arne Linde 2012
Slide 99
Sammanfattning: metod asynkrona 99
Syntes sekvensnät
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)
Primitiv flödestabell 0
A0
0
Next state
Present
B A-D
State
CA
B
DC
D
EE
.
N
DN
= 00
A
Output
z
D
6
.
F
N
B0A
01
11
10
B
–
CC1
0D
D
B
–
–
0
–
C
1
E
–
F
0
A
E
–
–
1
A
D–
–
5
0
C
F
1
2 B-E 0
B-E
A
C-F
E
0
D0D
4
N
F
F
0
N
E1
0
–
D
7
3
B
1
F1
(b) Initial flow table
D
0
(a)Initial
statediagram
99
Digitalteknik syntes
Arne Linde 2012
Slide 100
Sammanfattning: metod asynkrona100
DN
Syntes sekvensnät
y1y2
00 01 11 10
DN d
Nextstate
Present
00
state 00 0101 10
11d
1
y3 y2 y1
Y3 Y211
Y1 1
1
Output
1
d
z
000
000
10
010
– 1100d
1 0
B
010
011
010
– y3–= 0
0
C
111
101 y11y211
D
011
011
– 1
11 11 100
00
01
11100 –d
01 d
–
F
001
000
001
G
101
101
–
001
10 1
11 1
100
–
–
–
110
–
–
–
d d
001
d
001
1
0
d
1
d
1
1
001
1 d
10
y3 = 1
110
0
(a) 111
Map for
Y1 0
Ta fram exciteringstabell
(undersök tabellen för essentiella
hasarder)
Asynkront realiserbar ?
d
A
DN
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)
100
Digitalteknik syntes
Arne Linde 2012
Slide 101
Sammanfattning: metod asynkrona101
Syntes sekvensnät
Rita tillståndsgraf
Ta fram flödestabell och minimera
Ta fram primitiv flödestabell
Implikator tabell
Relationsgraf
Minimal flödestabell –
(undersök tabellen för
essentiella hasarder)
Asynkront realiserbar ?
Asynkront realiserbar ?
Genomför tillståndstilldelning
Boolesk kub
Stuva om, ändra vägar, lägg till
tillstånd (ta bort kapplöpning)
Ta fram exciteringstabell
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)
101
Digitalteknik syntes
Arne Linde 2012
Slide 102
102
6
2
7
3
4
0
5
1
102
Digitalteknik syntes
Arne Linde 2012