1 - PingPong

Download Report

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
A0
0
Next state

Present
B A-D
State

CA
B

DC
D

EE

.

N

DN

= 00

A

Output
z

D

6
.
F
N
B0A

01

11

10

B



CC1

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
D0D
4
N

F

F

0

N

E1

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