digitalteknik, fortsättningskurs 2012 föreläsning 16 inför tentan sista föreläsningen

102
1 1 alteknik syntes Arne Li 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

Upload: sawyer-simon

Post on 30-Dec-2015

30 views

Category:

Documents


0 download

DESCRIPTION

Digitalteknik, fortsättningskurs 2012 Föreläsning 16 Inför tentan Sista föreläsningen Övriga föreläsningstider denna vecka Används till hjälp/stöd. Lärandemål Efter fullgjord kurs ska studenten kunna Principer för en strukturerad och hierarkisk beskrivning av mindre digitala system. - PowerPoint PPT Presentation

TRANSCRIPT

1

1

Digitalteknik syntes Arne Linde 2012

Digitalteknik, fortsättningskurs 2012

Föreläsning 16Inför tentan

Sista föreläsningenÖvriga föreläsningstider denna vecka

Används till hjälp/stöd

2

2

Digitalteknik syntes Arne Linde 2012

Lärandemål Efter fullgjord kurs ska studenten kunna

• Principer för en strukturerad och hierarkisk beskrivning av mindre digitala system.

• Beskriva en mindre digital konstruktion i VHDL, utföra simulering och syntes med moderna verktyg samt utföra enklare tester mot målteknologin.

• Funktion, användning och begränsningar hos programmerbar logik.

• Känna till grunderna för konstruktion för testning, och principerna bakom testning.

• Förstå kopplingen VHDL syntes maskinvara.

 

3

3

Digitalteknik syntes Arne Linde 2012

Färdighet och förmåga•Förenkla en funktion av upp till 5 variabler med Karnaughdiagram.•Förenkla en funktion av upp till 5 variabler med Quine-McCluskey.•Realisering av kombinatoriska nät med grindar och med hjälp av VHDL.•Kunna identifiera statiska och dynamiska hasarder samt eliminera dessa.•Kunna använda målteknologierna FPGA och CPLD på ett effektivt sätt.•Behärska binär aritmetik såsom ”Carry look ahead”, multiplikation och BCD.•Förstå och kunna använda sekvensnät av Mealy,

Moore och synkron Mealy typ.•Koda ett sekvensnät med en för målteknologin optimal kodning samt minimera antalet tillstånd.•Kunna koda sekvensnät av Mealy, Moore och synkron Mealy typ i

VHDL och förstå dess tidsegenskaper.•Kunna skapa enklare testbänkar för sina VHDL konstruktioner.•Känna till och kunna implementera enklare asynkrona sekvensnät.•Kunna identifiera cykler och kapplöpningar i asynkrona sekvensnät och kunna eliminera dessa.•Minimera ett asynkront sekvensnätet, ge det en kapplöpningsfri kodning.

4

4

Digitalteknik syntes Arne Linde 2012

Bred kurs - föreläsningar

1. Introduktion

2. VHDL

3. Kombinatorik

4. Teknologier

5. VHDL (Labb 2)

6. Minneselement

7. Räknare & aretmetik

8. Sekvensnät

9. VHDL – 2 process metoden

10. Tillståndsminimering11. Asynkrona sekvensnät 1

12. Asynkrona sekvensnät 2

13. Synkronisering - Testning

14. Design för test & Simulering

15. Konstruktion av ASIC

16. Sammanfattning

5

5

Digitalteknik syntes Arne Linde 2012

Laborationer

1. VHDL , intro + kombinatoriska nät.

2. VHDL, konstruktion och syntes.

3. Synkrona sekvensnät (VHDL + test bänkar)

4. Hasarder och asynkrona sekvensnät.(I VHDL)

Kursen – omfångsrik!Huvuddelarna! (ca 30/50p)• VHDL• Synkrona sekvensnät• Asynkrona sekvensnät

6

6

Digitalteknik syntes Arne Linde 2012

Måste behärska

För överbetyg

Viktigt:Förstå skillnaden mellan synkrona och asynkrona sekvensnät!

7

7

Digitalteknik syntes Arne Linde 2012

Tentamina: struktur 1. Småfrågor ca 6-12p

Teknologi val Synkroniseringsfel Små VHDL uppgifter ASIC, FPGA, CPLD

2. Minimering mm, ca 6-10p Primimplekanter, Quine-McCluskey/Karnaughdiagram Testvektorer Mux:ar Hasader

3. VHDL ca 8-12p Läsa, förstå, ändra. ( OBS räcker inte med allmän förståelse för

programmering)

QK

8

8

Digitalteknik syntes Arne Linde 2012

Tentamina: struktur 4. Synkrona sekvensnät (konstruktion, kodning) 6-10p

Tillståndskodning, minimering, syntes ‘One-hot’ tillstånds tilldelning

Mealy, Moore och Synkron Mealy Implementera grindar/VHDL

5. Minimering sekvensnät mm (4-8p) asynkront sekvensnät analys av Hassarder Simulering ASIC – transistorer mm

6. Konstruktion av asynkront sekvensnät, 6-12p timing

Poäng på tenta 50p godkänt 20p, 4:a 30p och 5:a 40p

9

9

Digitalteknik syntes Arne Linde 2012

Viktiga metoder ett kunna

Karnaughdiagram 3-5 variabler.

Karnaughdiagram primimplikatorer

Quine-McCluskey

Tillståndskodning Heuristiska metoder ’One-hot’

Minimering Successiv partitionering Implekatortabell Relationsgraf

Asynkrona nät Primitiv flödestabell Hasarder Kapplöpningsfri kod Dont-care i tillståndsgraf Asynkront realiserbart

Testvektorer Okänt tillstånd X

10

10

Digitalteknik syntes Arne Linde 2012

Synkrona – Asynkrona sekvensnät

Rita tillståndsgraf

Tillstånds tabell

Minimera – Implikator tabellRelationsgraf, eller stegvisa partitioneringar

Koda – gärna ”onehot”

Ta fram ekvationerna

Rita tillståndsgraf(kvarhållande tillstånd)

Flödes tabell Primitiv flödestabell!

MinimeraImplikator tabellRelationsgraf,Krav!, komplex relationsgraf!

Koda binärt (ej ”onehot”)lägg ut i boolesk hyperkub

Ta fram ekvationerna + konsensustermer

11

11

Digitalteknik syntes Arne Linde 2012

Att göra Lös uppgifter!!!!

(Övning, lab, tentor) När ni inte kan använd

presentation/bok Går fortfarande inte

facit! Stäm av att ni behärskar alla

metoderna

Viktigaste att ha med sig från kursen: VHDL Synkronisering Timing

Tentan testar färdigheter, det räcker inte att kunna måste även ha visst tempo! Så öva!

12

12

Digitalteknik syntes Arne Linde 2012

Datum Tisdag 6/3 fm M 4 timmar 29/8 – em M 1x/1 - 2013

Granskning 17/4 (E4128, 11.45-12.30) Granskning 19/4 (E4128, 11.45-12.00)

Laborationerna och övningsuppgifterna kommer att vara en viktig inspirationskälla för tentan

13

13

Digitalteknik syntes Arne Linde 2012

Tack för mig! Onsdag 13.15 – 14 Frågestund HC4 Fredag 13.15-15 Frågestund HA4

Inlämning 3 senast torsdag.(Inlämning Godkänd).

Inlämning 4 helt struken.

Hoppas att jag får återse er!Digital konstruktion EDA234 LP IIKandidatarbete LP III – IV (ansvarig)Examensarbeten.

14

14

Digitalteknik syntes Arne Linde 2012

Sammanfattning

0

10

20

30

40

50

60

70

80

90

100

Prestanda

Rekonfigurerbarhet

Testbarhet

Plats

Effekt

St-kostnad

Utv-kostnad

Risk

Dator

Mickocontroller

0

10

20

30

40

50

60

70

80

Prestanda

Rekonfigurerbarhet

Testbarhet

Plats

Effekt

St-kostnad

Utv-kostnad

Risk

DSP

FPGA

0

10

20

30

40

50

60

70

80

90

100

Prestanda

Rekonfigurerbarhet

Testbarhet

Plats

Effekt

St-kostnad

Utv-kostnad

Risk

ASIC

StdKretsar

15

15

Digitalteknik syntes Arne Linde 2012

EX 2007-01-13 Upg 3entity Upg3 is port ( Clk,X,Reset : in std_logic; U : out std_logic);end Upg3;

architecture BEHAVIORAL of Upg3 istype state_type is (S0,S1,S2);signal state, next_state : state_type;beginp1:process(Clk, Reset) begin if Reset='1‘ then state <= S0; elsif Clk'event and Clk='1' then state <= next_state; end if;end process p1;end case;

p2:process(X, state)beginU<='0'; next_state <= S0;case state iswhen S0 => if X='1' then next_state <= S1; end if;when S1 => next_state <= S2; U<='1';when S2 => if X='1' then next_state <= S2; end if;end process p2;end BEHAVIORAL;

16

16

Digitalteknik syntes Arne Linde 2012

Att behärska på VHDL

Processer (Komb – minne) Kombinatoriska Vippor

if Reset='1'then state <= S0; elsif Clk'event and Clk='1' then

Tillståndsmaskiner case state is when S0 => Next_y <= S9

Register Shift register Räknare

if LA='1' then -- Shift next_A<=Data; -- 8 - bitar elsif SRA='1' then -- Shift höger

next_A<= '0' & A(7 downto 1) ; elsif SLA='1' then -- Shift vänster

next_A<= A(6 downto 0) & '0' ; end if; -- Shift

use IEEE.std_logic_unsigned.all; -- Viktig…if LB='1' then -- Counter next_B<=(OTHERS =>'0'); elsif EB='1' then next_B<=B+1;end if; -- Counter

17

17

Digitalteknik syntes Arne Linde 2012

Konstruktion av digitala system Beskriv algoritmisk vad du ska göra Dela upp i dataväg och styrenhet Implementera i VHDL

Varför? För att få bra struktur. För att få en effektiv implementering

Skilj på kod för syntes till maskinvara och programkod! Försök att samla aritmetiken och undvik jämförelser (dyrt).

0 1 3 24 5 7 6

12 13 15 148 9 11 10

16 17 19 1820 21 23 22

28 29 31 3024 25 27 26

48 49 51 5052 53 55 54

60 61 63 6256 57 59 58

32 33 35 3436 37 39 38

44 45 47 4640 41 43 42

x5x4

00

01

11

10

0 1 3 12

4 15 17 6

12 13 15 14

18 9 11 110

16 17 19 118

20 21 23 22

28 29 31 30

124 25 27 126

48 49 51 50

52 53 55 54

60 61 63 62

156 57 59 158

32 33 35 34

36 137 139 38

44 45 47 46

140 41 43 142

x5x4

00

01

11

10

1

1

1

1

1

1

1

1

1 1

1 1

X3X’2X’0

1

X’4X’3X2X0

1

1

1

X’5X’2X1X’0

19

19

Digitalteknik syntes Arne Linde 2012

Quine-McCluskeyExempel:

f (x3,x2,x1,x0) = m(4,5,6,8,9,10,13)+d(0,7,15)

-

1 1 - 1

1 -

1 1 1X3

x3 x2

00

01

11

10

00 01 11 10

X2

X1

X0

x1 x0

20

20

Digitalteknik syntes Arne Linde 2012

Gruppera termerna efter antal ettor

0 0000 4 0100 8 1000 5 0101 6 0110 9 100110 1010 7 011113 110115 1111

(0,4) 0-00vv (0,8) -000v (4,5) 010-v

v

v

(4,6) 01-0(8,9) 100-(8,10) 10-0(5,7) 01-1(5,13) -101(6,7) 011-(9,13) 1-01(7,15) -111(13,15) 11-1

vv

vv

vv

(4,5,6,7) 01--

v

v

v

v

(5,7,13,15) -1-1

v

v

v

21

21

Digitalteknik syntes Arne Linde 2012

-

1 1 - 1

1 -

1 1 1X3

x3 x2

00

01

11

10

00 01 11 10

X2

X1

X0

x1 x0

(5,7,13,15) -1-1

(4,5,6,7) 01--

(9,13) 1-01 (8,19) 10-0

(8,9) 100-

(0,8) -000

(0,4) 0-00

22

22

Digitalteknik syntes Arne Linde 2012

Hitta en minimal täckand funktion

4 5 6 8 9 10 13

0,4 (0-00) X

0,8 (-000) X

8,9 (100-) X X

8,10 (10-0) X X

9,13 (1-01) X X

4,5,6,7 (01--) X X X

5,7,13,15 (-1-1) X X

EJ0,7och15

23

23

Digitalteknik syntes Arne Linde 2012

Essentiella primimplikanter

4 5 6 8 9 10 13

0,4 (0-00) X

0,8 (-000) X

8,9 (100-) X X

8,10 (10-0) X X

9,13 (1-01) X X

4,5,6,7 (01--) X X X

5,7,13,15 (-1-1) X X

24

24

Digitalteknik syntes Arne Linde 2012

Sammanfattning Quine-McCluskey

1. Ordna samtliga mintermer och ”don’t care” i en tabell efter antalet ”ettor”.

2. Jämför varje minterm med de mintermer som har en ”etta” mer.3. De som stämmer (skiljer sig i endast en position) bockas av och

den förenklade termen skrivs upp.4. Upprepa 2 & 3 för de nya kolumner som bildas tills det inte går

mer.5. De termer som nu inte är markerade är funktionens

primimplekanter.

25

25

Digitalteknik syntes Arne Linde 2012

I allmänhet

Exempel: G(A,B,C,D)kan implementerasmed en 8:1 MUX

n-1 mux styr variabler

en mux data variabler

Fyra möjliga konfigurationer av SanningstabellenKan uttryckas som en funktion av In

I0 I1 . . . In-1 In F

. . . . 0 0 0 1 1

. . . . 1 0 1 0 1

0 In In' 1

Multiplexrar som generell logik (forts.)

välj A,B,C som styr variabler

CA B

01234567

1D01D’DD’D’

S2

8:1 MUX

S1 S0

A B C D G0 0 0 0 10 0 0 1 10 0 1 0 00 0 1 1 10 1 0 0 00 1 0 1 00 1 1 0 10 1 1 1 11 0 0 0 11 0 0 1 01 0 1 0 01 0 1 1 11 1 0 0 11 1 0 1 01 1 1 0 11 1 1 1 0

1

D

0

1

D'

D

D’

D’

26

26

Digitalteknik syntes Arne Linde 2012

Aktivitet Realisera F = B’CD’ + ABC’ med en 4:1 multiplexer och så få

grindar som möjligt:

A B C D Z0 0 0 0 00 0 0 1 00 0 1 0 10 0 1 1 00 1 0 0 00 1 0 1 00 1 1 0 00 1 1 1 01 0 0 0 01 0 0 1 01 0 1 0 11 0 1 1 01 1 0 0 11 1 0 1 11 1 1 0 01 1 1 1 0

CD’

0

CD’

C’

En grind behövs!

27

27

Digitalteknik syntes Arne Linde 2012

Aktivitet (forts.) Realisera F = B’CD’ + ABC’ med en 4:1 multiplexer och så få

grindar som möjligt:

A B C D Z0 0 0 0 00 0 0 1 00 0 1 0 10 0 1 1 00 1 0 0 00 1 0 1 00 1 1 0 00 1 1 1 01 0 0 0 01 0 0 1 01 0 1 0 11 0 1 1 01 1 0 0 11 1 0 1 11 1 1 0 01 1 1 1 0

0 när B’C’

D’ när B’C

A när BC’

0 när BC

Z = B’C’(0) + B’C(D’) + BC’(A) + BC(0)

B C

S1 S0

F0123

4:1 MUX

0D’A0

28

28

Digitalteknik syntes Arne Linde 2012

demultiplexer genererar alla mintermerna

Demultiplexers som generell logik

En n:2n avkodare kan implementera en godtycklig funktion av n variabler med variablerna som styrsignaler “enable” ansluten till 1 och rätt mintermer summerade för att skapa funktionen

A'B'C'A'B'CA'BC'A'BCAB'C'AB'CABC'ABC

CA B

01234567

S2

3:8 DEC

S1 S0

“1”

29

29

Digitalteknik syntes Arne Linde 2012

Ingen bra kandidat för PLAImplementering eftersom inga

termer är delade mellan utgångarna

Men mycket mer kompakt implementering jämfört med

lösa AND och OR gates

A B C DMinimerade funktioner:W = A + BD + BCX = B C'Y = B + CZ = A'B'C'D + BCD + AD' + B'CD'

PALs och PLAs: design exempel (forts.)

Kode konverterare: programmerbar PLA

A

BD

BC

BC'

B

C

A'B'C'D

BCD

AD'

BCD'

W X Y Z

30

30

Digitalteknik syntes Arne Linde 2012

PALs och PLAs: design exempel (forts.)

Kode konverterare: programmerbar PAL

4 produkttermer per OR grind

W X Y Z

A B C D

ABDBC0BC'

000B

C00A'B'C'DBCDAD'B'CD'

31

31

Digitalteknik syntes Arne Linde 2012

Sammanfattning teknologier Random logic

Enstaka grindar eller nät Konvertering till NAND-NAND och NOR-NOR nät Bygger komplexa block av grinar Reducera grindantalet, fan-ins, potentiellt snabbt Fler nivåer svårare att konstruera

Regular logic multiplexers/decoders ROMs PLAs/PALs FPGA fördela/nackdelar för varje

32

32

Digitalteknik syntes Arne Linde 2012

Jämförelse mellan Mealy och Moore tillståndsmaskiner Mealy maskiner får oftast färre tillstånd

olika utsignaler på transaktionerna (n2) i stället för tillstånden (n) Reagerar under samma klockcykel förändringar i insignalerna påverkar direkt utgångarna (efter

grindfördröjningen) - ett stort problem om två maskiner är sammankopplade, då kan asynkron återkoppling uppstå

Moore maskiner är säkrare att använda Utsignalerna ändras vid klockflanken (alltid en cykel senare) mer logik kan behövas för att avkoda ett tillstånd till utsignaler – mer

grindfördröjning efter klockflanken. (Mealy maskiner reagerar snabbare på insignalerna)

33

33

Digitalteknik syntes Arne Linde 2012

Jämförelse mellan Mealy och Moore tillståndsmaskiner (forts.)

Moore

Mealy

Synkron Mealy

state feedback

inputs

outputsreg

combinational logic for

next state logic foroutputs

inputs outputs

state feedback

regcombinational

logic fornext state

logic foroutputs

inputs outputs

state feedback

regcombinational

logic fornext state

logic foroutputs

34

34

Digitalteknik syntes Arne Linde 2012

Exempel: reducera-1-sträng-med-1 Ta bort en etta från varje sträng av 1:or på ingången.

1

0

0

0

11

zero[0]

one1[0]

two1s[1]

1/00/0

0/0

1/1

zero

one1

Moore Mealy

CP

In

Moore

Mealy

35

35

Digitalteknik syntes Arne Linde 2012

Exempel: reducera-1-sträng-med-1 Ta bort en etta från varje sträng av 1:or på ingången.

1

0

0

0

11

zero[0]

one1[0]

two1s[1]

1/00/0

0/0

1/1

zero

one1

Moore Mealy

CP

In

Moore

Mealy

36

36

Digitalteknik syntes Arne Linde 2012

Exempel: reducera-1-sträng-med-1 Ta bort en etta från varje sträng av 1:or på ingången.

1

0

0

0

11

zero[0]

one1[0]

two1s[1]

1/00/0

0/0

1/1

zero

one1

Moore Mealy

CP

In

Moore

Mealy

37

37

Digitalteknik syntes Arne Linde 2012

entity Reduce1Moor isport ( Clk : in std_logic; I : in std_logic;

Reset : in std_logic; O : out std_logic);end Reduce1Moor;

architecture BEHAVIORAL of Reduce1Moor is type state_type is (zero,one1,two1s); --Tillståndsdeklaration signal state:state_type;

begin ---- ----end BEHAVIORAL;

VHDL FSM - Reduce 1s example Moore machine

1

0

0

0

11

zero[0]

one1[0]

two1s[1]

38

38

Digitalteknik syntes Arne Linde 2012

ASM_P: process(Clk,Reset) -- Synkron processbegin if Reset = '1' then -- Asynkron reset state<=zero; -- Reset tillstånd elsif Clk'event and Clk='1' then

state<=next_state end if; end process ASM_P;

Moore VHDL FSM bättre 2-process lösning (forts)

1

0

0

0

1

1

zero[0]

one1[0]

two1s[1]

-- Kombinatorisk processnext_s:process(state,I) begin next_state <=zero case state is

when zero=> O<='0'; if I='1' then next_state <=one1; end if;when one1=> O<='0'; if I='1' then next_state <=two1s; end if;when two1s=> O<='1';

if I=‘1' then next_state <=two1s; end if;

end case;end process next_s;

state feedback

inputs

outputsreg

combinational logic for next state logic for

outputs

39

39

Digitalteknik syntes Arne Linde 2012

Mealy VHDL FSMarchitecture BEHAVIORAL of Reduce1Mealy istype state_type is (zero,one1); --Tillståndsdeklarationsignal state:state_type;signal next_state:state_type;

begin p1:process(Clk, Reset, next_state) begin

if Clk'event and Clk='1' then if Reset = '1' then state<=zero;

else state<=next_state;end if; end if;

end process p1;

p2:process(state,I) begin

case state is when zero=>

if I='1' then next_state<=one1; O<='0'; else next_state<=zero; O<='0';

end if;when one1=> if I='1' then next_state<=one1; O<='1';

else next_state<=zero; O<='0'; end if;when others=> next_state<=zero;

end case; end process p2;end BEHAVIORAL;

inputs outputs

state feedback

regcombinational logic fornext state

logic foroutputs

1/00/0

0/0

1/1

zero

one1

40

40

Digitalteknik syntes Arne Linde 2012

architecture BEHAVIORAL of Reduce1SynkMealy istype state_type is (zero,one1); --Tillståndsdeklarationsignal state:state_type;beginp1:process(Clk,Reset)begin if Clk'event and Clk='1' then -- Synkron Reset if Reset = '1' then state<=zero; -- Reset tillstånd else case state is when zero=>

if I='1' then state<=one1; O<='0';else state<=zero; O<='0'; end if;

when one1=> if I='1' then state<=one1; O<='1';else state<=zero; O<='0'; end if;

when others=> state<=zero; -- Saknar betydelseend case; end if; end if;end process;end BEHAVIORAL;

Synkron Mealy maskin

1/00/0

0/0

1/1

zero

one1

architecture BEHAVIORAL of Reduce1SynkMealy istype state_type is (zero,one1); --Tillståndsdeklarationsignal state:state_type;beginp1:process(Clk,Reset)begin if Clk'event and Clk='1' then -- Synkron Reset if Reset = '1' then state<=zero; -- Reset tillstånd else case state is when zero=>

if I='1' then state<=one1; O<='0';else state<=zero; O<='0'; end if;

when one1=> if I='1' then state<=one1; O<='1';else state<=zero; O<='0'; end if;

when others=> state<=zero; -- Saknar betydelseend case; end if; end if;end process;end BEHAVIORAL;

41

41

Digitalteknik syntes Arne Linde 2012

( S0 S1 S2 S3 S4 S5 S6 )

( S0 S1 S2 S3 S5 ) ( S4 S6 )

( S0 S3 S5 ) ( S1 S2 ) ( S4 S6 )

( S0 ) ( S3 S5 ) ( S1 S2 ) ( S4 S6 )

S1 är ekvivalent med S2

S3 är ekvivalent med S5

S4 är ekvivalent med S6

Metod för successiv partitionering

In Nuvarande Nästa tillstånd OutputSekvens tillstånd X=0 X=1 X=0 X=1

Reset S0 S1 S2 0 00 S1 S3 S4 0 01 S2 S5 S6 0 000 S3 S0 S0 0 001 S4 S0 S0 1 010 S5 S0 S0 0 011 S6 S0 S0 1 0

Till- Tillstånd part.

S0 S1 S2 S3 S4 S5 S6

Till- Tillstånd part.

S0 S1 S2 S3 S4 S5 S6

Till- Tillstånd part.

S0 S1 S2 S3 S4 S5 S6

42

42

Digitalteknik syntes Arne Linde 2012

Exempel för att belysa realtionsgraf

S5

S6

S7

S8

S9

S1 S2 S3 S4 S5

S4

S3

S2

S6 S7 S8

4,6;2,4(7,8)

43

43

Digitalteknik syntes Arne Linde 2012

Exempel för att belysa realtionsgraf

S5

S6

S7

S8

S9

S1 S2 S3 S4 S5

S4

S3

S2

S6 S7 S8

4,6;2,47,9

7,86,7

4,63,7

2,43,8

3,7;2,92,7

3,8;2,92,6

2,45,7

2,65,8

2,62,4

1,7;4,94,7

1,8;4,94,6

1,3

2,45,7

2,65,8

2,6;2,43,5

JA! S1

S3

S5

S8

S9

S7

S6S4

S2

44

44

Digitalteknik syntes Arne Linde 2012

Resultat

45

45

Digitalteknik syntes Arne Linde 2012

‘One-hot’ tillstånds tilldelning Enkelt

enkelt att koda Enkelt att fel söka

Små logiska funktioner varje tillståndsfunktion behöver bara en tillstånds bit från förgående

tillstånd Bra för programmerbarlogik (FPGA)

många vippor finns tillgängliga få variabler i ekvationerna

Opraktiskt för stora tillståndsmaskiner för många tillstånds vippor Delar man ner en stor tillståndsmaskin i flera små kan del maskinerna

vara ’one-hot’ kodade Det finns många variationer på ’one-hot’ temat

’one-hot’ + alla-0

46

46

Digitalteknik syntes Arne Linde 2012

Tillgängliga metoder för tillståndstilldelning För snål kodning (nära minimalt antal tillståndsbitar)

bäst av 10 slumpmesiga tyck vara tillräckligt bra (i medeltal lika bra som heuristiska metoder)

Heuristiska metoder är långt ifrån optimala används i specialdesignade ASIC (eller om man måste knö i en

FPGA/CPLD) ’One-hot’ kodning

enkelt för små tillståndsmaskiner Genererar enkla ekvationer och det är lätt att uppskatta komplexiteten Vanligt i FPGAer

Utsignal baserad kodning ’ad hoc’ – inga verktyg vanligaste angreppssättet för konstruktörer (när dom kodar utan datorstöd) ger oftast kompakta lösningar för de flesta tillståndsmaskinerna

47

47

Digitalteknik syntes Arne Linde 2012

Statisk 1-hasard i S-O-P nät

f (1,x2,1) = x2 + x2’

48

48

Digitalteknik syntes Arne Linde 2012

Statisk 0-hasard

f(0,x2,0) = x2’x2

Uppträder iP-O-S nät

49

49

Digitalteknik syntes Arne Linde 2012

Dynamisk hasard

Förutsättning minst tre grindnivåer Kan uppstå i nät som efter insättning av värden på övriga

variablerkan reduceras till: xi + xi’ xi, xi’+ xi’xi, xi(xi’+ xi) eller xi’(xi’+ xi)

LUT

LUT

LUT

LUT

LUTf(a,b,c,d,e,f,g,h,i,j)

abc

de

f

ghIj

f

50

50

Digitalteknik syntes Arne Linde 2012

Sammanfattning hasarder Undersök om det finns någon tilldelning av alla utom en

insignal xi sådan att uttrycket blir: (efter insättning med värden på övriga variabler)

Om xi + xi’ statisk 1-hasard

xi xi’ statisk 0-hasard

Obs strukturen på nätet måsta vara en 1-1 avbildning av det ursprungliga. Vilket innebär att; inga algebraiska transformeringar som innebär

att någon variabel eller uttryck försvinner får användas.(de Morgan går dock bra)

51

51

Digitalteknik syntes Arne Linde 2012

Metodik för timing Regler gör anslutning av komponenter till klocksignaler

garanterar att systemet fungerar om man följer dom strikt Olika angreppssätt beroende på vilka byggblock som används

som minne Fokuserar på system med flanktriggade vippor

finns i programmerbara logiska kretsar många ASIC- implementeringar fokuserar på nivåkänsliga vippor

Basregler för korrekt timing: (1) korrekta insignaler, med avseende på tid, finns tillgängliga för

vipporna (2) inga vippor byter tillstånd mer än en gång per

klockningshändelse

52

52

Digitalteknik syntes Arne Linde 2012

Det finns ett ’tidsfönster’ omkring klockhändelsen närinsignalerna måste vara stabilaför att minneselementenska få rätt värde

clock

dataförändringstabila

input

clock

Tsu Th

clock

dataD Q D Q

Metodik för timing (forts.) Definition av termer

Klocka: periodisk händelse, åstadkommer förändring av minnes-

elementens tillståndkan vara stigande eller fallande flank eller hög/låg

nivå setup time: minimal tid före klockhändelsen som insignalerna

måste vara stabila (Tsu) hold time: minimal tid efter klockhändelsen som insignalerna

måste vara stabila (Th)

53

53

Digitalteknik syntes Arne Linde 2012

Alla mätningar görs från klockhändelsen (stigande flank på klockan)

Typiska timing specifikationer Positivt flanktriggad D vippa

setup och hold tider minimum klock vidd propagations fördröjningen (låg till hög, hög till låg, max och typ)

D

Clk

Q

T su

1.8ns

T h

0.5ns

T w

3.3 ns

T pd

3.6 ns 1.1 ns

T su

1.8ns

T h

0.5 ns

T pd

3.6 ns 1.1 ns

T w

3.3 ns

54

54

Digitalteknik syntes Arne Linde 2012

liten, men inte noll sonorlikhet att vippan fastnar

mellan sina tillstånd

Hur det kan se ut på ett oscilloskop när synkroniseringsfel uppträder

logisk 0 logisk 1llogisk 0

logisk 1

Synkroniseringsfel Uppstår när vippans ingång ändras nära klockans flank

vippan hamnar i ett metastabilt tillstånd – varken logisk 0 eller 1 – den kan stanna i detta tillstånd obegränsat länge detta är inte troligt i praktiken med det finns en liten sonorlikhet för det

55

55

Digitalteknik syntes Arne Linde 2012

D DQ Qasynkroninsignal

synkroninsignal

Synkroniseringssystem

Clk

Att hantera synkroniseringsfel Sandorlikheten för fel funktion kan aldrig reduceras till 0, men den

kan minskas radikalt (1) använd långsammare system klocka

detta ger minneselementet mer tid för att nå ett stabilt tillstånd; synkroniseringsproblem är ett stort problem för snabba system

(2) använd snabbast möjliga logikteknologi för synkroniseringen (3) kaskadkoppla två sykroniseringselement

synkroniserar två gånger (båda måste falera)

56

56

Digitalteknik syntes Arne Linde 2012

D Q

D Q

Q0

Clock

Clock

Q1

Asynkron Insignal

Klockat Synkront

System

Hantera asynkrona insignaler

Aldrig aldrig aldrig tillåt asynkrona insignaler att vara

kopplade till mer än en vippa synkronisera så snart som möjligt och behandla därefter signalen som

synkron

D Q

D Q

Q0

Clock

Clock

Q1

AsynktonInsignal D Q

Synkroniserare

57

57

Digitalteknik syntes Arne Linde 2012

In är asynkron och kopplad till D0 och D1

en vippa fångar signalen, en gör det inte

kan hamna i ett inkonsistent tillstånd!

In

Q0

Q1

CLK

Hantera asynkrona insignaler (forts.)

Vad kan bli fel? insignalen ändras för nära klockflanken

(villkoret för setup tid ej uppfyllt)

58

58

Digitalteknik syntes Arne Linde 2012

Ett tillstånd är stabilt omf (Xi,Qj)=Qj

För att ett nät ska vara asynkront realiserbart krävs att för varje icke stabilt tillstånd ska det finnas en sekvens av tillstånd som avslutas med ett stabilt tillstånd.

Tillståndstabell / flödesgraf

Q1Q2

Q3Q4

x1+x4 x1+x2

x3+x4

x1+x4

x2x3

x1

x3

x2

x4

x2+x3

Q1

Q2

Q3

Q4

Q1

Q2

Q4

Q4

X1

Q2

Q2

Q2

Q1

X2

Q2

Q3

Q3

Q3

X3

Q1

Q1

Q3

Q4

X4

Nuvarandetillstånd

Insignal/nästa tillstånd

Q1Q1Q2Q2

Q3Q3Q4

59

59

Digitalteknik syntes Arne Linde 2012

Tillståndsgraf:

9.17 Släpp igenom CP när W hög:

c

w

z

ACW(Z) - 0 (0)

01(0) B

01(0)

11(-)

00(0)

CW(Z) 1- (1)C

0-(-)

D11(0)

11(0)

01(0)

10(0)

60

60

Digitalteknik syntes Arne Linde 2012

Kapplöpningsfri tillståndskodning

Exempel modulo-4 räknare en insignal x och räknaren räknar varje omslag hos x

u1u2 = 00,01 10,11, 00

x0 1

Q1 Q1(00) Q2(0-)Q2 Q3(-) Q2(01)Q3 Q3(10) Q4(1-)Q4 Q1(-) Q4(11)

()

Ex på tillståndskodning:Q1=00, Q2=01, Q3=10, Q4=11

x0 1

00 00(00) 01(0-)01 10(-) 01(01)10 10(10) 11(1-)11 00(-) 11(11)

()

61

61

Digitalteknik syntes Arne Linde 2012

Ger följande tillståndsgraf Vi placerar in tillståndsgrafen i en Boolesk hyperkub för att

finna eventuella kapplöpningar.

00

11

0(-)

0(-)

01

10

q1

q2

00

11

0(-)

0(-)

01

10

q1

q2

1(1-)

1(0-)1(01)

1(11) 0(10)

0(00)

Ny kodning :Q1=00, Q2=01, Q3=11, Q4=10

62

62

Digitalteknik syntes Arne Linde 2012

I det allmänna fallet när man minimerar en ofullständigt specificerad tillståndsgraf.• Samma procedur som innan.• Välj en täckande partitionering.• Se till att den är sluten!

Steget med slutenhet har vi ej gått igenom.Men om man arbetar med en primitiv flödestabell så behöver man inte bevisa slutenhet.

Primitiv flödestabell:Endast ett stabilt tillstånd per rad:Insignal restrektionen ger ’don't cares’.

63

63

Digitalteknik syntes Arne Linde 2012

Exempel 9.7 Present Next state Output

state

w 2 w 1

00 01 z

A A H 0

B F 0

C H 1

D A D 1

E D 1

F F D 0

G F 0

H H 0

11

C

C

E

E

E

10

B

B

G

G

B

C

D

E

F

G

H

A B C D E F G

Utsignalerna:A,B,F,G,H (0) och C,D,E(1)

A-F

D-H

A-FB-G

D-HC-E

D-HC-E

D-HC-E

64

64

Digitalteknik syntes Arne Linde 2012

Exempel 9.7

B

C

D

E

F

G

H

A B C D E F G

Utsignalerna:A,B,F,G,H (0) och C,D,E(1)

A-F

D-H

A-FB-G

D-HC-E

D-HC-E

D-HC-E

A

B

C

D

E

F

H

G

{B,F,G}{A,H}{D,E}{C}

65

65

Digitalteknik syntes Arne Linde 2012

2a

2b

3a

3b

4a

4b1 2a 2b 3a 3b 4a

66

66

Digitalteknik syntes Arne Linde 2012

Okänt logiskt tillstånd X

De logiska tillstånd som en nod kan anta är {0,1,X}(även Z och U/D kan förekomma) VHDL (U,X,0,1,Z,W,L,H,-)

67

67

Digitalteknik syntes Arne Linde 2012

Trevärdig logik (simulering) Är ingen Boolesk algebra, ex X⋅X = X ≠ 0 och X+X = X ≠ 1

AND0 0 00 1 01 1 10 X 01 X X

OR0 0 00 1 11 1 10 X X1 X 1

NOT0 11 0X X

68

68

Digitalteknik syntes Arne Linde 2012

Nivå simulering (Levelized simulation)

Kapa alla återkopplingar Ge varje grind en topologisk nivå Primära ingångar nivå 0

Nivå (y) =

0 om primär insignal

max {Nivå(yFI)} + 1 annars

69

69

Digitalteknik syntes Arne Linde 2012

Händelsestyrd simulering (Event-driven simulation)

Används vid VHDL simulering grindnivå simulering funktionell simulering

När insignalerna till en nod ändras evalveras den noden normalt berörs 10-15% av konstruktionen

En händelse inträffar vi den given tidpunkt (simulerad) hanteras via en händelselista när en händelse evalveras skapas nya händelser listan

70

70

Digitalteknik syntes Arne Linde 2012

Enhetsfördröjnings modellen Händelselistan delas i två tidsluckor

Lucka A – händelser som har genererats tidigare Lucka B – här stoppas nygenererad händelser in

Algoritm: evalvera händelserna i lucka A

uppdatera lucka B när inga fler händelser finns i lucka A

byt plats på lucka A och B, börja sedan om Det spelar ingen roll i vilken ordning som händelserna

evalveras Dock måste man sätta en begränsning på hur många varv hjulet

får snurra. (utifall nät som EJ är asynkront realiserbara) .

A

B

71

71

Digitalteknik syntes Arne Linde 2012

Simulering i VHDL Händelsestyrd simulering

både enhetsfördröjning och grind fördröjnings modellen

Kompilering och sammansättning (elaboration)

72

72

Digitalteknik syntes Arne Linde 2012

Icke syntetiserbar VHDL Eftersom VHDL ursprungligen inte var avsedd för syntes så

finns det många icke syntetiserbara konstruktioner som: after wait for File generiska parametrar Flyttal fungerar men är ett mycket dåligt val … Initieringsvärden på variabler och signaler

73

73

Digitalteknik syntes Arne Linde 2012

Vippor, latchar eller bara logik? Förutsätt att syntesverktygen är korkade! Finns inget reserverat ord som tallar om huruvida en

konstruktion är asynkron eller inte Ett vanligt fel är skapandet av extra (onödiga) latchar och

vippor I processer behåller en signal ett värde till dess att den tilldelas

ett nytt. Så: Om en if eller case sats inte täcker alla utfall med tilldelningar så

skapas extra latchar och vippor

Finns wait med eller if, case med namn’event så skapas vippor

74

74

Digitalteknik syntes Arne Linde 2012

Sammanfattning av regler för RTL syntes

Tilldela aldrig en variabel eller signal i mer än en process

’sensitivity’ listan FörgreningarKombinatorisk alla insignaler (signaler i högerledet täck allalogik vid tilldelningar och de som används i (eller default) IF och CASE satser

latchar alla insignaler okomplett

vippor Klockan och asynkron set/reset okomplett (if Clk'event and Clk='1' then)

75

75

Digitalteknik syntes Arne Linde 2012

Bättre metoder I verkligheten använder man en delmängd av alla möjliga

invektorer. Denna delmängd kan bestämmas på några olika sätt. Slumpmässigt valda testvektorer Baserat på logisk funktion Baserat på nätets struktur Minnestestning Baserat på felmodeller

76

76

Digitalteknik syntes Arne Linde 2012

Single Stuck-at Faults (SSF) Detta är den vanligaste felmodellen, och är närmast

industristandard. Ett fel representeras av att den felaktiga noden låses till värdet

0 eller 1, oberoende av övriga signaler i nätet. Kortsiutning till jord eller matningsspänning. Vissa typer av avbrott Vissa typer av kortsiutningsfel

Enbart ett fel antas uppträda åt gången!

77

77

Digitalteknik syntes Arne Linde 2012

Nätorienterad testgenerering Utnyttjar “path sensitization” En ny boolesk algebra krävs:

Låt D samt D’ representera felvärden orsakade av SA-fel. Då utgör <O,1,D,D’, ‘,+,‘> en korrekt boolesk algebra, där t ex

D•D’ =0, D+D’=1, D’·1 = D

1

1

&

&y

z

x

w

K SA 0

k

G1

G2

G3

G4

t

b

f

78

78

Digitalteknik syntes Arne Linde 2012

Varför får man inte 100% coverage? Algoritmen i ATPG kan vara dålig. Redundans i en krets ger otestbara SA-fel.

Oavsiktlig redundans kan fås genom otillräcklig minimering av funktioner

Avsiktlig redundans fås genom hasardeliminering eller i feltoleranta kretsar

Vi definierar ett nät som redundant om det innehåller otestbara SA-fel.

79

79

Digitalteknik syntes Arne Linde 2012

Generering av test för sekvensnät Vanligas: översätt sekvensnätet till ett iterativt kombinatorisk nät. Sedan: Initiera till ett känt tillstånd Q(0)

Använd metoderna för kombinatoriska nät för att generera vektorer för cell 0

Invektorn från testgenereringen får användas under r klockcykler.

Om felet inte upptäcks efter r cykler, öka r med 1

80

80

Digitalteknik syntes Arne Linde 2012

Ad hoc metoder för ökad testbarhet Välkända tekniker baserat på erfarenhet för att

öka styrbarhet och observerbarhet Lägg till testpunkter.

Genom att lägga till extra ledare tilll/från kretsens utsida kan man öka dess observerbarhet och kontrollerbarhet

Initiering – reset Få kretsen till ett välkänt tillstånd

Oscillatorer och klockor Koppla bort den ordinarie under test

Partitionera stora kretsar/system Det är mycket lättare att generera test, samt testa små kretsar än att

testa stora. Genom att partitionera rätt kan man dessutom i vissa fall testa delar av kretsen parallellt, vilket ökar hastigheten.

81

81

Digitalteknik syntes Arne Linde 2012

“ad hoc’ ‘-metoder (forts) Redundant logik

UNDVIK! Inga TMR

Globala återkopplingar Bryt återkopplingen med logik

Asynkrona sekvensnät UNDVIK

82

82

Digitalteknik syntes Arne Linde 2012

Skannings kedjor Scan-kedjor är den vanligaste

DFT-metoden. Samtliga minneselement i kretsen kedjas ihop till ett shiftregister så att man lätt kan klocka in/ut data i kretsen.

Kostar ca 30% jämfört med vanliga vippor

Skiljer mellan full och partiell skanningstekniker

83

83

Digitalteknik syntes Arne Linde 2012

Boundary-Scan (IEEE 1149.1)

Den vanligaste metoden för skannings kedjor

Ger möjlighet till testning Av alla kretsar (fullständig) Av kretskortet (PCB) Produktions test (enkel/billig

utrustning) Fälttest (hos kund)

84

84

Digitalteknik syntes Arne Linde 2012

Inbyggd självtest Är en teknik för att låta kretsen testa sig själv

I produktion – ingen testutrustning behövs I fält – lätt att testa funktionen

Testningen sker när systemet inte är i drift Kan ej utföras under normal drift

Fördelar Enklare eller

inget testsystem Enklare testplanering Test vid normal frekvens Kretsbibliotek finns Många testvektorer ,enkelt

Nackdelar Stöd saknas i CAD/EDA- verktyg Prestanda i konstruktionen Extra komponenter behövs

Mer kisel yta Fler ställen där det kan bli fel

85

85

Digitalteknik syntes Arne Linde 2012

BILBO (Built-in logik block observer)

Den inbyggda självtestaren kostrar mycket logik och framför allt vippor.

En bättre metod är att utnyttja befintliga vippor som i skannings kedjorna.

86

86

Digitalteknik syntes Arne Linde 2012

3. Effekt• Nu: max ~100 – 150 W per chip• Teknologigenombrott krävs för ändring• Begränsningar:• Spänningsmatning (1 V betyder 100 A)• Kylning (25 W / cm2)• Reglering av spänning och frekvens

Framtiden• Gräns för transistorstorlek• ~10 nm?• Konstruktion med större block• Grindar, RTL-block, kärnor, …• “Dark silicon”• Vi kan bygga mer än vi kan använda

1. Fler transistorer• Nu: miljarder transistorer på ett chip• Fler och fler får plats (x2 perprocessgeneration)• Replikerade block (minnen, kärnor)• Återanvänt konstruktionsarbete• Nätverk på chip (NoC) för kommunikation• Redundans

2. Klockfrekvens• Nu: enstaka GHz• Inga större ändringar förväntas• Snabbare transistorer, lika slöa ledningar• Synkronisering svårare• Globally Asynchronous, LocallySynchronous

87

87

Digitalteknik syntes Arne Linde 2012

Flera utgångar Ex 4.3

x 1 x 2 x 3 x 4 00 01 11 10

1

1 1

1

00

01

11

10

(a) Optimal realization of (b) Optimal realization of

1

f 3 f 4

1

1

x 1 x 2 x 3 x 4 00 01 11 10

1 1

1

1

00

01

11

10

1

1 1

x 1 x 2 x 3 x 4 00 01 11 10

1

1 1

1

00

01

11

10

1 1

1

x 1 x 2 x 3 x 4 00 01 11 10

1 1

1

1

00

01

11

10

1

1 1

(c) Optimal realization off 3 and togetherf 4

88

88

Digitalteknik syntes Arne Linde 2012

x 1 x 2 x 3 x 4 00 01 11 10

1

1 1

1

00

01

11

10

1 1

1

x 1 x 2 x 3 x 4 00 01 11 10

1 1

1

1

00

01

11

10

1

1 1

f 3

f 4

x 1

x 4

x 3

x 4

x 1

x 1

x 2

x 2

x 4

x 4

(d) Combined circuit forf 3 f 4 and

x 2

89

89

Digitalteknik syntes Arne Linde 2012

Flernivårealisering av kombinatoriska nät Steg 1: Teknologioberoende, Sök gemensamma delfunktioner.

(algebraisk process) Steg 2: Teknologi anpassning.

Exempel 4.6f = x1x2x3 + x1x2x3 + x1x2x4 + x1x2x4

f = (x1x2 + x1x2)x3 + (x1x2 + x1x2)x4

x1x2 + x1x2 = x1x2 + x1x2

g = x1x2 + x1x2

f = gx3 + gx41

x 2

x 3

x 4

f

g

h

x

90

90

Digitalteknik syntes Arne Linde 2012

CPLD

Fördelar Konstant fördröjning Snabba Kan programmeras på plats Enkla billiga utvecklings-verktyg Billiga

Nackdelar ”Små” Få register

Fördelar Stora - i samma storleksordning

som ASIC Kan programmeras på plats Kort utvecklingstid

Nackdelar Varierande fördröjning Pinnplacering och konstruktion

har stor betydelse för prestanda.

Flyktigt konfigurationsminne (Xilinx)

FPGA

91

91

Digitalteknik syntes Arne Linde 2012

Transistorer - CMOS

V f

V DD

V x

T 1

T 2

onoff

off on

1 0

0 1

f x T 1 T 2

NOT gate.(a) Circuit

V f

V DD

(b) Truth table and transistor states

on

on

on

off

0

1 0

0

1

1

0

1

off

off

on

off

off

on

f

off

on

1

1

1

0

off

off on

on

V x 1

V x 2

T 1 T 2

T 3

T 4

x 1 x 2 T 1 T 2 T 3 T 4

(a) Circuit

V f

V DD

(b) Truth table and transistor states

on

on

on

off

0

1 0

0

1

1

0

1

off

off

on

off

off

on

f

off

on

1

1

1

0

off

off on

on

V x 1

V x 2

T 1 T 2

T 3

T 4

x 1 x 2 T 1 T 2 T 3 T 4

NAND gate.

92

92

Digitalteknik syntes Arne Linde 2012

NOR gate

(a) Circuit

V f

V DD

(b) Truth table and transistor states

on

on

on

off

0

1

0

0

1

1

0

1

off

off

on

off

off

on

f

off

on

1

0

0

0

off

off on

on

V x 1

V x 2

T 1

T 2

T 3 T 4

x 1 x 2 T 1 T 2 T 3 T 4

93

93

Digitalteknik syntes Arne Linde 2012

Ex på uppgift Vilken funktion realiseras?

V f

V DD

V x 1

V x 2

V x 3

F= x1’ + x2’x3’F’= x1(x2+x3)

94

94

Digitalteknik syntes Arne Linde 2012

94

X 1

0 1

0 1

1 1D

A

0 X

0 1

X 0

0 1

B

C

3 primes around AB'C'D'

Algorithm for two-level simplification (example)

X 1

0 1

0 1

1 1D

A

0 X

0 1

X 0

0 1

B

C

2 primes around A'BC'D'

X 1

0 1

0 1

1 1D

A

0 X

0 1

X 0

0 1

B

C

2 primes around ABC'D

X 1

0 1

0 1

1 1D

A

0 X

0 1

X 0

0 1

B

C

minimum cover (3 primes)

X 1

0 1

0 1

1 1D

A

0 X

0 1

X 0

0 1

B

C

X 1

0 1

0 1

1 1D

A

0 X

0 1

X 0

0 1

B

C

2 essential primes

X 1

0 1

0 1

1 1D

A

0 X

0 1

X 0

0 1

B

C

94

95

95

Digitalteknik syntes Arne Linde 2012

95

-

1 1 - 1

1 -

1 1 1

X3

x3 x2

00

01

11

10

00 01 11 10

X2

X1

X0

x1 x0

(5,7,13,15) -1-1

(4,5,6,7) 01--

(9,13) 1-01 (8,10) 10-0

(8,9) 100-

(0,8) -000

(0,4) 0-00

f (x3,x2,x1,x0) = m(41,52,62,81,92,102,133)+d(00,73,154)

95

96

96

Digitalteknik syntes Arne Linde 2012

Algoritm för tillståndsminimering Mål – identifiera och kombinera tillstånd som har samma

beteende Ekvivalenta tillstånd:

samma utsignaler för alla kombinationer av insignaler och tillståndsövergångar hamnar vi i

samma eller ekvivalenta tillstånd Algoritm

1. placera alla tillstånd i en partitionering (P0) 2. skapa P1 baserat på tillståndens utsignalbetende 3. dela upp Pn-1 i fler partitioneringar beroende på nästa

tillståndstransaktionen 4. upprepa (3) till dess inga fler partitioneringar uppträder

tillstånd i samma ekvivalensklass (partitionering) är ekvivalenta Algoritmen lämpar sig väl för datorimplementering

97

97

Digitalteknik syntes Arne Linde 2012

Tillståndstabell – Minimering med direkt inspektion

Nästa tillstånd (N5cD10c =) Utsignal

State 00 01 10 11 Z

S1 S1 S3 S2 - 0

S2 S2 S4 S5 - 0

S3 S3 S6 S7 - 0

S4 S1 - - - 1

S5 S3 - - - 1

S6 S6 S8 S9 - 0

S7 S1 - - - 1

S8 S1 - - - 1

S9 S3 - - - 1

P0= ( S1,S2,S3,S4,S5,S6,S7,S8,S9)

Nästa tillstånd (N5cD10c =) Utsignal

State 00 01 10 11 Z

S1 S1 S3 S2 - 0

S2 S2 S4 S5 - 0

S3 S3 S6 S7 - 0

S4 S1 - - - 1

S5 S3 - - - 1

S6 S6 S8 S9 - 0

S7 S1 - - - 1

S8 S1 - - - 1

S9 S3 - - - 1

P1= ( S1,S2,S3,S6)(S4,S5,S7,S8,S9)

98

98

Digitalteknik syntes Arne Linde 2012

Tillståndstabell – Minimering med direkt inspektion (forts)

Nästa tillstånd

State 00 01 10 11

S1 S1 S3 S2 -

S2 S2 S4 S5 -

S3 S3 S6 S7 -

S6 S6 S8 S9 -

S4 S1 - - -

S5 S3 - - -

S7 S1 - - -

S8 S1 - - -

S9 S3 - - -

P0= ( S1,S2,S3,S4,S5,S6,S7,S8,S9)P1= ( S1,S2,S3,S6)(S4,S5,S7,S8,S9)

P2= ( S1)(S2,S3,S6)(S4,S5,S7,S8,S9)

P3= ( S1)(S2,S6)(S3)(S4,S5,S7,S8,S9)

P4= ( S1)(S2,S6)(S3)(S4,S7,S8)(S5,S9)

Nästa tillstånd

State 00 01 10 11

S1 S1 S3 S2 -

S2 S2 S4 S5 -

S6 S6 S8 S9 -

S3 S3 S6 S7 -

S4 S1 - - -

S7 S1 - - -

S8 S1 - - -

S5 S3 - - -

S9 S3 - - -

S2’

S4’

S5’

99

99

Digitalteknik syntes Arne Linde 2012

Syntes Rita tillståndsgraf Ta fram flödestabell

och minimera Ta fram primitiv flödestabell Implikator tabell Relationsgraf Minimal flödestabell –

Asynkront realiserbar ?

Genomför tillståndstilldelning Boolesk kub Stuva om, ändra vägar, lägg till

tillstånd (ta bort kapplöpning)

Sammanfattning: metod asynkrona sekvensnät

A 0

B 0 C 1

D 0

E 1 F 1

0 0

0

0 0

0

D

N

N

N

N

D

D

0

D

(a)Initial statediagram

Present Next state Output

State DN = 00 01 z

A A B 0

B D B 0

C A 1

D D E 0

E A E 1

F A 1

(b) Initial flow table

11

––

10

C

C

F

F

Primitiv flödestabell

.

B-EC-F

.

B-E

B

C

D

E

F

A-DA

B

CD

E

F

0 1

2 3

4 5

6 7

100

100

Digitalteknik syntes Arne Linde 2012

Syntes

Sammanfattning: metod asynkrona sekvensnät

Ta fram exciteringstabell(undersök tabellen för essentiella hasarder) Asynkront realiserbar ?

Ta fram uttrycken för nästa tillstånd Karnaughdiagram Konsensustermer

(ta bort all kapplöpning) Konstruera kretsen

(inför fördröjningar för att bli av med essentiella hasarder)

Present Nextstate

state

DN

00 01 10 11 Output

y 3 y 2 y 1 Y 3 Y 2 Y 1 z

A 000

0

B 010 0

C 111 0

D 011 0

F 001 1

G 101 0

100 0

110 0

100

1

11

001

0

01

001

110

111

––

0 00 010

011 0

10

101 1

11

0

11 111

000 0

01

1

01 001

00 01 11 10

d

1 1

00

01

11

10

1 1

d 1

d

d

y 1 y 2 DN

d

d

d

d

1

1

y 3 1 =

00 01 11 10

d

1

00

01

11

10

1 1

d 1

1

y 1 y 2 DN

d

d

1

d

y 3 0 =

(a) Map for Y 1

101

101

Digitalteknik syntes Arne Linde 2012

Syntes Rita tillståndsgraf Ta fram flödestabell och minimera

Ta fram primitiv flödestabell Implikator tabell Relationsgraf Minimal flödestabell –

Asynkront realiserbar ?

Genomför tillståndstilldelning Boolesk kub Stuva om, ändra vägar, lägg till

tillstånd (ta bort kapplöpning)

Sammanfattning: metod asynkrona sekvensnät

Ta fram exciteringstabell(undersök tabellen för essentiella hasarder) Asynkront realiserbar ?

Ta fram uttrycken för nästa tillstånd Karnaughdiagram Konsensustermer

(ta bort all kapplöpning) Konstruera kretsen

(inför fördröjningar för att bli av med essentiella hasarder)

102

102

Digitalteknik syntes Arne Linde 2012

0 1

2 3

4 5

6 7