De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT 4-14-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen.

Verwante presentaties


Presentatie over: "Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT 4-14-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen."— Transcript van de presentatie:

1 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen  Sequentiële schakelingen: ook een functie van de voorgeschiedenis  Niet-programmeerbare processoren  Programmeerbare processoren  Hardware-beschrijvingstalen

2 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Sequentiële schakeling =uitgangen zijn een functie van de ingangen en de toestand (m.a.w. ook functie van de vorige ingangen)  Geheugenfunctie  Geheugencomponent, bijv. capaciteit  Ladingverlies  dynamische logica  Positieve terugkoppeling: flip-flop geheugen combinatorische schakeling Uit In

3 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Sequentiële schakeling  Asynchrone schakeling: uitgangen & toestand veranderen wanneer een ingang verandert  Synchrone schakeling: uitgangen & toestand veranderen alleen wanneer de klokingang verandert  Klokkarakteristieken:  Klokperiode = tijd tussen 2 opeenvolgende 1  0 klokovergangen  Klokfrequentie = 1/klokperiode  ‘Duty cycle’ = (tijd klok is 1)/klokperiode  Stijgende flank (‘rising edge’) = 0  1 klokovergang  Dalende flank (‘falling edge’) = 1  0 klokovergang

4 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Ontwerp sequentiële schakelingen  De flip-flop als bouwblok  Ontwerp van synchrone sequentiële schakelingen  Ontwerp van asynchrone sequentiële schakelingen  Basisbouwblokken op RTL-niveau Flip-flop Synchroon Asynchroon Basisblokken RTL

5 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Ontwerp sequentiële schakelingen  De flip-flop als bouwblok  SR-latch  Geklokte latch  Gevoeligheid  Types flip-flop  Tijdsgedrag  Ontwerp van synchrone sequentiële schakelingen  Ontwerp van asynchrone sequentiële schakelingen  Basisbouwblokken op RTL-niveau Flip-flop SR latch Geklokte latch Gevoeligheid Types Tijdsgedrag Synchroon Asynchroon Basisblokken RTL

6 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Set-Reset-latch Set Reset Q’ Q S R Q Ongedefinieerd SRQ(next) 00Q NA Flip-flop  SR latch Geklokte latch Gevoeligheid Types Tijdsgedrag Synchroon Asynchroon Basisblokken RTL

7 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 ‘Critical race’ =uiteindelijke waarde afhankelijk van de implementatie en de poortvertragingen  ongedefinieerde waarde  Oscillatie wanneer vertraging van poorten identiek  Anders bepaalt de snelste poort de uiteindelijke waarde  Een Booleaans signaal kan dus reeds 5 waarden aannemen:  0 : het logisch niveau “0”  1 : het logisch niveau “1”  Z : hoog-impedant (zwevend)  X : don’t care  U : ongedefinieerd Flip-flop  SR latch Geklokte latch Gevoeligheid Types Tijdsgedrag Synchroon Asynchroon Basisblokken RTL

8 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 SR-latch met NAND-poorten Set Reset Q Q’ Set en Reset zijn actief-lage signalen S* R* Q Q’ S*R*Q(next) 11Q NA Flip-flop  SR latch Geklokte latch Gevoeligheid Types Tijdsgedrag Synchroon Asynchroon Basisblokken RTL

9 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Ontwerp sequentiële schakelingen  De flip-flop als bouwblok  SR-latch  Geklokte latch  Gevoeligheid  Types flip-flop  Tijdsgedrag  Ontwerp van synchrone sequentiële schakelingen  Ontwerp van asynchrone sequentiële schakelingen  Basisbouwblokken op RTL-niveau Flip-flop SR latch  Geklokte latch Gevoeligheid Types Tijdsgedrag Synchroon Asynchroon Basisblokken RTL

10 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Geklokte SR-latch C = 1 : volg ingangen C = 0 : behoud uitgang Set Reset Q’ Q C (klok) CSRQ(next) 0XXQ 100Q NA Flip-flop SR latch  Geklokte latch Gevoeligheid Types Tijdsgedrag Synchroon Asynchroon Basisblokken RTL

11 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Geklokte D-latch C = 0 : behoud uitgang C = 1 : volg ingang  Vertragingen  D  Qals C = 1 :t HL = 1 + 2,4 + 1,4 = 4,8 t LH = 2,4 + 1,4 + 1,4 = 5,2 D  Q’als C = 1 :t HL = 2,4 + 1,4 = 3,8  C  Qals D = 1 :t LH = 2,4 + 1,4 + 1,4 = 5,2 als D = 0 :t HL = 2,4 + 1,4 = 3,8 klok CDQ(next) 0XQ D Q’ Q C 5.2/3.8 D C Q Q’ Flip-flop SR latch  Geklokte latch Gevoeligheid Types Tijdsgedrag Synchroon Asynchroon Basisblokken RTL

12 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Ontwerp sequentiële schakelingen  De flip-flop als bouwblok  SR-latch  Geklokte latch  Gevoeligheid  Level-sensitive latch  Master-slave flip-flop  Edge-triggered flip-flop  Types flip-flop  Tijdsgedrag  Ontwerp van synchrone sequentiële schakelingen  Ontwerp van asynchrone sequentiële schakelingen  Basisbouwblokken op RTL-niveau Flip-flop SR latch Geklokte latch  Gevoeligheid Types Tijdsgedrag Synchroon Asynchroon Basisblokken RTL

13 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Gevoeligheid  Alle voorgaande geklokte latches zijn gevoelig aan het niveau van de klok:  Klok = 1 : transparant  Klok = 0 : onthoud de laatste waarde  Transparant zijn kan problemen geven als meerdere latches mekaar opvolgen (bijv. schuifregisters)  het ingangssignaal kan door meerdere latches doorrimpelen in 1 klokperiode  daardoor is het ook moeilijk om aan de set-up/houdtijd te voldoen  Oplossing: flankgevoelig werken  Master-slave flip-flop  Edge-triggered flip-flop Flip-flop SR latch Geklokte latch  Gevoeligheid Types Tijdsgedrag Synchroon Asynchroon Basisblokken RTL

14 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Voorbeeld doorrimpelen X Clk D C Q1Q1 D C Q2Q2 D C Q3Q3 Y X Q1Q1 Q2Q2 Q3Q3 Flip-flop SR latch Geklokte latch  Gevoeligheid Types Tijdsgedrag Synchroon Asynchroon Basisblokken RTL

15 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Master-slave flip-flop D C Q s1 D C Q m1 MasterSlave D C Q s2 D C Q m2 MasterSlave X Q1Q1 Clk Y X Q m1 Q1Q1 Q m2 Y Master: transparant als Clk = 0 Slave: transparant als Clk = 1 Flip-flop SR latch Geklokte latch  Gevoeligheid Types Tijdsgedrag Synchroon Asynchroon Basisblokken RTL

16 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Edge-triggered flip-flop Clk D Reset A Set B Q Q’ Clk D B A R S Q Set Latch Reset Latch Output Latch Flip-flop SR latch Geklokte latch  Gevoeligheid Types Tijdsgedrag Synchroon Asynchroon Basisblokken RTL

17 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Ontwerp sequentiële schakelingen  De flip-flop als bouwblok  SR-latch  Geklokte latch  Gevoeligheid  Types flip-flop  SR-FF  JK-FF  D-FF  T-FF  Asynchrone set & reset  Tijdsgedrag  Ontwerp van synchrone sequentiële schakelingen  Ontwerp van asynchrone sequentiële schakelingen  Basisbouwblokken op RTL-niveau Flip-flop SR latch Geklokte latch Gevoeligheid  Types Tijdsgedrag Synchroon Asynchroon Basisblokken RTL

18 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 SR-flip-flop Karakteristieke tabel (voor ontwerp van flip-flop) SRQ(next) 00Q NA Excitatietabel (voor ontwerp met flip-flop) QQ(next)SR 000X X0 S R Clk Q Q’ Symbool Positieve S R Clk Q Q’ niveautriggering S R Clk Q Q’ Negatieve Stijgende flanktriggering S R Clk Q Q’ Dalende Flip-flop SR latch Geklokte latch Gevoeligheid  Types Tijdsgedrag Synchroon Asynchroon Basisblokken RTL

19 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 JK-flip-flop J K Clk Q Q’ Symbool Karakteristieke tabel Excitatietabel Schakelingen voor de aansturing van JK-flip-flops zijn goedkoper dan die voor SR-flip-flops: meer don’t cares JKQ(next) 00Q Q’ QQ(next)JK 000X 011X 10X1 11X0 Realiseerbaar met SR-flip-flop: S = JQ’ R = KQ Flip-flop SR latch Geklokte latch Gevoeligheid  Types Tijdsgedrag Synchroon Asynchroon Basisblokken RTL

20 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 D-flip-flop D Clk Q Q’ Symbool Ontwerpen met D-flip-flops is eenvoudig DQ(next) Karakteristieke tabel Excitatietabel QQ(next)D Flip-flop SR latch Geklokte latch Gevoeligheid  Types Tijdsgedrag Synchroon Asynchroon Basisblokken RTL

21 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 T-flip-flop T Clk Q Q’ Symbool TQ(next) 0Q 1Q’ Karakteristieke tabel Excitatietabel QQ(next)T D Clk Q Q’ T Flip-flop SR latch Geklokte latch Gevoeligheid  Types Tijdsgedrag Synchroon Asynchroon Basisblokken RTL

22 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Asynchrone set & reset D Clk PRS Q Q’ CLR Asynchrone set & reset zijn nuttig om de flip-flop in ’t begin in een gekende toestand te brengen Clk D Reset A Set B Q Q’ PRS* (Preset) CLR* (Clear) asynchrone reactie gewenst zorg dat de eerste laag in dezelfde toestand is als de tweede Flip-flop SR latch Geklokte latch Gevoeligheid  Types Tijdsgedrag Synchroon Asynchroon Basisblokken RTL

23 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Waarom actief-lage signalen?  Karakteristieken van asynchrone ingangs- signalen, zoals ‘reset’ of `InterruptReq’:  Het signaal hangt af van een onbekend of groot aantal aansturende signalen  Het resulterende signaal is actief als minstens 1 aansturend signaal actief is  Mogelijke implementaties:  Grote OR-poort: niet flexibel  Probleem als # ingangen onbekend  Veel lange verbindingen (1/aansturing)  Wired-or  vereist actief-lage signalen Flip-flop SR latch Geklokte latch Gevoeligheid  Types Tijdsgedrag Synchroon Asynchroon Basisblokken RTL

24 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Ontwerp sequentiële schakelingen  De flip-flop als bouwblok  SR-latch  Geklokte latch  Gevoeligheid  Types flip-flop  Tijdsgedrag  Set-up/houdtijd  Metastabiliteit  Ontwerp van synchrone sequentiële schakelingen  Ontwerp van asynchrone sequentiële schakelingen  Basisbouwblokken op RTL-niveau Flip-flop SR latch Geklokte latch Gevoeligheid Types  Tijdsgedrag Synchroon Asynchroon Basisblokken RTL

25 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Set-up/houdtijd  Set-up-tijd = tijd voor actieve klokflank waarin ingangen niet mogen veranderen  Bijv. geklokte D-latch t set-up = t PHL (inverter)  Houdtijd = tijd na actieve klokflank waarin ingangen niet mogen veranderen D C S D’ R Q Ongedefinieerd D Q’ Q C S R Flip-flop SR latch Geklokte latch Gevoeligheid Types  Tijdsgedrag Synchroon Asynchroon Basisblokken RTL

26 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Metastabiliteit  Bi-stabiel element:  2 stabiele toestanden  1 metastabiele toestand  Element kan in metastabiele toestand gebracht worden door marginale triggering :  schending minimum pulsbreedte  schending set-up/houdtijd  p nog in meta (t) = exp(−t/  ) waarbij  afhangt van  de hoeveelheid ruis  de steilheid van de curve Geen probleem als signaal niet (meer) metastabiel bij gebruik! V uit1 V in1 V in2 V uit2 = V in2 = V uit2 bal & heuvel analogie V uit1 V in1 stabiel metastabiel Flip-flop SR latch Geklokte latch Gevoeligheid Types  Tijdsgedrag Synchroon Asynchroon Basisblokken RTL

27 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Ontwerp sequentiële schakelingen  De flip-flop als bouwblok  Ontwerp van synchrone sequentiële schakelingen  Finite State Machine (Eindige Toestanden Machine)  Het ontwerp in detail  Ontwerp van asynchrone sequentiële schakelingen  Basisbouwblokken op RTL-niveau Flip-flop Synchroon FSM Ontwerp Asynchroon Basisblokken RTL

28 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Voorbeeld ontwerp met FSM (1) Ontwerp een modulo 4 teller “Count”, die telt als de ingang “CE” (Count Enable) 1 is. 1.Vertaal de specificatie naar een toestandsdiagramma van een FSM: Count=0 CE=0 Voor elke ingangscombinatie moet een overgang gegeven worden in elke toestand Count=1 CE=1 Count=2 CE=1 Count=3 CE=1 Flip-flop Synchroon  FSM  Moore-type  Mealy-type Ontwerp Asynchroon Basisblokken RTL

29 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Interpretatie toestandsdiagramma 1.We bevinden ons in toestand “Count=0” en CE is 0: we wachten aan de tip van de pijl 2.CE wordt 1: spring naar tip andere pijl, zonder tellen! 3.Stijgende klokflank (synchrone FSM!): ga naar toestand “Count=1” (met CE=1) 4.CE wordt 0: spring naar tip andere pijl 5.Stijgende klokflank: blijf in “Count=1” (met CE=0) Count=0 CE=0 Count=1 CE=1 Count=2 CE=1 Count=3 CE=1 Flip-flop Synchroon  FSM  Moore-type  Mealy-type Ontwerp Asynchroon Basisblokken RTL

30 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Toestandstabel =alternatieve voorstelling diagramma Huidige toestand Volgende toestand CE = 0CE = 1 S0 S1 S2 S3 S0 CE=0 S1 CE=1 S2 CE=1 S3 CE=1 Flip-flop Synchroon  FSM  Moore-type  Mealy-type Ontwerp Asynchroon Basisblokken RTL

31 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Voorbeeld ontwerp met FSM (2-4) 2.Minimaliseer het aantal toestanden. Dit is reeds het minimale aantal. 3.Codeer de toestanden. 2 FF’s Q 1 en Q 0 nodig voor 4 toestanden: 4.Kies het type flip-flop. Hier het D-type (eenvoud ontwerp). ToestandQ1Q1 Q0Q0 Count=000 Count=101 Count=210 Count=311 Opmerking: Uitgang FF’s direct bruikbaar als “Count” Flip-flop Synchroon  FSM  Moore-type  Mealy-type Ontwerp Asynchroon Basisblokken RTL

32 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Voorbeeld ontwerp met FSM (5) 5.Realisatie van de combinatorische logica  Bepaal de excitatiefuncties: CE D 1 =Q 1n Q0Q0 Q1Q CE D 0 =Q 0n Q0Q0 Q1Q1 Huidige toestandVolgende toestand Q 1n Q 0n Q1Q0Q1Q0 CE = 0CE = Excitatietabel D-FF QQ(next)D  aan te leggen D is identiek aan Q n Flip-flop Synchroon  FSM  Moore-type  Mealy-type Ontwerp Asynchroon Basisblokken RTL

33 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Voorbeeld ontwerp met FSM (5)  Implementatie CE Q 1n =D 1 Q0Q0 Q1Q CE Q 0n =D 0 Q0Q0 Q1Q1 D1D1 Q1Q1 CEQ1Q1 Q0Q0 D0D0 Q0Q0 Q 1n Q 0n Flip-flop Synchroon  FSM  Moore-type  Mealy-type Ontwerp Asynchroon Basisblokken RTL

34 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Voorbeeld ontwerp met FSM (6) 6.Analyse tijdsgedrag CE Q 1n Q 0n D1D1 Q1Q1 D0D0 Q0Q0 Clk CE Q1Q1 Q0Q0 D1D1 Q1Q1 D0D0 Q0Q0 Flip-flop Synchroon  FSM  Moore-type  Mealy-type Ontwerp Asynchroon Basisblokken RTL

35 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Ontwerp sequentiële schakelingen  De flip-flop als bouwblok  Ontwerp van synchrone sequentiële schakelingen  Finite State Machine  Moore-type: toestandgebaseerd  Mealy-type: inputgebaseerd  Het ontwerp in detail  Ontwerp van asynchrone sequentiële schakelingen  Basisbouwblokken op RTL-niveau Flip-flop Synchroon  FSM  Moore-type  Mealy-type Ontwerp Asynchroon Basisblokken RTL

36 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Toestandgebaseerde FSM =de uitgangen zijn enkel functie van de huidige toestand, niet van de ingangen  uitgang is gespecificeerd voor elke toestand  waarde wordt genoteerd in de cirkel die de toestand voorstelt  Bijv. modulo 4 teller met uitgang “Y”, die 1 is als de teller 3 is Count=1 Y=0 Count=0 Y=0 CE=0 CE=1 Count=2 Y=0 CE=1 Count=3 Y=1 CE=1 Flip-flop Synchroon  FSM  Moore-type  Mealy-type Ontwerp Asynchroon Basisblokken RTL

37 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Toestandstabel Y hangt enkel af van de huidige toestand Huidige toestandVolgende toestand Q 1n Q 0n Uitgang Q1Q0Q1Q0 CE = 0CE = 1Y We veronderstellen dezelfde codering van de toestanden als in het vorig voorbeeld Q 1 Q 0 =01 Y=0 Q 1 Q 0 =00 Y=0 CE=0 CE=1 Q 1 Q 0 =10 Y=0 CE=1 Q 1 Q 0 =11 Y=1 CE=1 Flip-flop Synchroon  FSM  Moore-type  Mealy-type Ontwerp Asynchroon Basisblokken RTL

38 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Toestandgebaseerde FSM: realisatie CE Q 1n =D 1 Q0Q0 Q1Q CE Q 0n =D 0 Q0Q0 Q1Q Y Q1Q1 Q0Q0 QQ(next)D Huidige toestandVolgende toestand Q 1n Q 0n Uitgang Q1Q0Q1Q0 CE = 0CE = 1Y Excitatietabel D-FF Flip-flop Synchroon  FSM  Moore-type  Mealy-type Ontwerp Asynchroon Basisblokken RTL

39 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Toestandgebaseerde FSM: realisatie CE Q 1n =D 1 Q0Q0 Q1Q CE Q 0n =D 0 Q0Q0 Q1Q Y Q1Q1 Q0Q0 D1D1 Q1Q1 CEQ1Q1 Q0Q0 D0D0 Q0Q0 Q 1n Q 0n Y Flip-flop Synchroon  FSM  Moore-type  Mealy-type Ontwerp Asynchroon Basisblokken RTL

40 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Y Toestandgebaseerde FSM: tijdsgedrag Clk CE Q1Q1 Q0Q0 Y Gevaar voor ‘glitch’! CE Q 1n Q 0n D1D1 Q1Q1 D0D0 Q0Q0 D1D1 Q1Q1 D0D0 Q0Q0 Flip-flop Synchroon  FSM  Moore-type  Mealy-type Ontwerp Asynchroon Basisblokken RTL

41 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Vormt een ‘glitch’ een probleem?  Als de uitgang met een glitch verbonden is aan een kloksignaal:  Schadelijk: ongewenste actieve klokflank  Moeilijk te ontdekken: glitch kan verdwijnen bij het aanleggen van de meetprobe (hogere capaciteit  grotere vertraging)  Anders (in synchrone schakelingen):  Enkel schadelijk als binnen set-up/houdtijd  Verbruikt nodeloos vermogen Flip-flop Synchroon  FSM  Moore-type  Mealy-type Ontwerp Asynchroon Basisblokken RTL

42 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Ontwerp sequentiële schakelingen  De flip-flop als bouwblok  Ontwerp van synchrone sequentiële schakelingen  Finite State Machine  Moore-type: toestandgebaseerd  Mealy-type: inputgebaseerd  Het ontwerp in detail  Ontwerp van asynchrone sequentiële schakelingen  Basisbouwblokken op RTL-niveau Flip-flop Synchroon  FSM  Moore-type  Mealy-type Ontwerp Asynchroon Basisblokken RTL

43 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Inputgebaseerde FSM =uitgangen zijn functie van de huidige toestand en van de ingangen  uitgang is gespecificeerd voor elke toestand en elke combinatie van ingangen  waarde wordt genoteerd naast de overgang  Bijv. modulo 4 teller met uitgang “Y”, die 1 is als de teller 3 is en de ingang “CE” 1 is Count=0 CE=0/Y=0 CE=1/Y=0 CE=0/Y=0 Count=1 Count=2 CE=1/Y=0 Count=3 CE=1/Y=0 CE=1/Y=1 Flip-flop Synchroon  FSM  Moore-type  Mealy-type Ontwerp Asynchroon Basisblokken RTL

44 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Toestandstabel Y hangt af van de huidige toestand en van de ingangen We veronderstellen dezelfde codering van de toestanden als in de vorige voorbeelden Huidige toestand Volgende toestand/uitgangen Q 1n Q 0n /Y Q1Q0Q1Q0 CE=0CE=1 0000/001/0 0101/010/0 1010/011/0 1111/000/1 Q 1 Q 0 =00 CE=0/Y=0 CE=1/Y=0 CE=0/Y=0 Q 1 Q 0 =01 Q 1 Q 0 =10 CE=1/Y=0 Q 1 Q 0 =11 CE=1/Y=0 CE=1/Y=1 Flip-flop Synchroon  FSM  Moore-type  Mealy-type Ontwerp Asynchroon Basisblokken RTL

45 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Inputgebaseerde FSM: realisatie CE Y Q0Q0 Q1Q1 Huidige toestand Volgende toestand/uitgangen Q 1n Q 0n /Y Q1Q0Q1Q0 CE=0CE=1 0000/001/0 0101/010/0 1010/011/0 1111/000/ CE Q 1n =D 1 Q0Q0 Q1Q CE Q 0n =D 0 Q0Q0 Q1Q1 QQ(next)D Excitatietabel D-FF Flip-flop Synchroon  FSM  Moore-type  Mealy-type Ontwerp Asynchroon Basisblokken RTL

46 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Inputgebaseerde FSM: realisatie CE Q 1n =D 1 Q0Q0 Q1Q CE Q 0n =D 0 Q0Q0 Q1Q1 D1D1 Q1Q1 CEQ1Q1 Q0Q0 D0D0 Q0Q0 Q 1n Q 0n CE Y Q0Q0 Q1Q1 Y Flip-flop Synchroon  FSM  Moore-type  Mealy-type Ontwerp Asynchroon Basisblokken RTL

47 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Y Inputgebaseerde FSM: tijdsgedrag Clk CE Q1Q1 Q0Q0 Y Gevaar voor ‘glitch’! CE Q 1n Q 0n D1D1 Q1Q1 D0D0 Q0Q0 D1D1 Q1Q1 D0D0 Q0Q0 Flip-flop Synchroon  FSM  Moore-type  Mealy-type Ontwerp Asynchroon Basisblokken RTL

48 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Toestandgebaseerd model D Clk Q S*=F(S,I) Next State Logic O=H(S) Output Logic D Clk Q D Q Klok Volgende toestand S* Uitgangen O Ingangen I Huidige toestand S Flip-flop Synchroon  FSM  Moore-type  Mealy-type Ontwerp Asynchroon Basisblokken RTL

49 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Inputgebaseerd model D Clk Q S*=F(S,I) Next State Logic O=H(S,I) Output Logic D Clk Q D Q Uitgangen O Ingangen I Huidige toestand S Flip-flop Synchroon  FSM  Moore-type  Mealy-type Ontwerp Asynchroon Basisblokken RTL

50 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Ontwerp sequentiële schakelingen  De flip-flop als bouwblok  Ontwerp van synchrone sequentiële schakelingen  Finite State Machine  Het ontwerp in detail 1.Toestandsdiagramma: constructie FSM 2.Minimalisering aantal toestanden 3.Codering toestanden 4.Keuze van het type flip-flop 5.Realisatie van de combinatorische logica 6.Analyse tijdsgedrag  Ontwerp van asynchrone sequentiële schakelingen  Basisbouwblokken op RTL-niveau Flip-flop Synchroon FSM  Ontwerp  Diagramma  Minimaliseer  Codering  Keuze FF  Realisatie  Tijdsgedrag Asynchroon Basisblokken RTL

51 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Constructie FSM =construeer de FSM vertrekkend van de beschrijving in een natuurlijke taal (onduidelijk & onvolledig)  Bijv. modulo-3 op/neer-teller  C(ount enable) : tel als C = 1  D(irection) : tel op/neer als D = 0/1  uitgang Y : enable voor cascadering Y = 1 als  bij optellen (C = 1 and D = 0) tellerwaarde = 2  bij neertellen (C = 1 and D = 1) tellerwaarde = 0 Flip-flop Synchroon FSM  Ontwerp  Diagramma  Minimaliseer  Codering  Keuze FF  Realisatie  Tijdsgedrag Asynchroon Basisblokken RTL

52 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Constructie FSM 1)Is dit ontwerp toestand- of input- gebaseerd?  Het voorbeeld is inputgebaseerd omdat de uitgang Y afhangt van de toestand (tellerwaarde) en de ingangen “C” & “D” 2)Teken het toestandsdiagramma:  vertrek van de initiële toestand  voor elke nieuwe toestand, teken voor elke combinatie van ingangen de overgang naar de volgende toestand  uitgangswaarden moeten toegekend worden  aan elke toestand als toestandgebaseerd  aan elke overgang als inputgebaseerd Flip-flop Synchroon FSM  Ontwerp  Diagramma  Minimaliseer  Codering  Keuze FF  Realisatie  Tijdsgedrag Asynchroon Basisblokken RTL

53 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 FSM modulo-3 teller u0u0 CD=0X Y=0 CD=0X Y=0 CD=0X Y=0 u2u2 CD=10 Y=0 CD=0X Y=0 CD=0X Y=0 CD=0X Y=0 CD=11 Y=0 d2d2 CD=11 Y=1 CD=10 Y=1 CD=11 Y=0 d0d0 CD=11 Y=0 u1u1 CD=10 Y=0 CD=10 Y=0 d1d1 CD=11 Y=0 CD=10 Y=0 CD=10 Y=1 CD=11 Y=1 Flip-flop Synchroon FSM  Ontwerp  Diagramma  Minimaliseer  Codering  Keuze FF  Realisatie  Tijdsgedrag Asynchroon Basisblokken RTL

54 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Ontwerp sequentiële schakelingen  De flip-flop als bouwblok  Ontwerp van synchrone sequentiële schakelingen  Finite State Machine  Het ontwerp in detail 1.Toestandsdiagramma  Minimalisering: minimaal # FF’s 3.Codering toestanden 4.Keuze van het type flip-flop 5.Realisatie van de combinatorische logica 6.Analyse tijdsgedrag  Ontwerp van asynchrone sequentiële schakelingen  Basisbouwblokken op RTL-niveau Flip-flop Synchroon FSM  Ontwerp  Diagramma  Minimaliseer  Codering  Keuze FF  Realisatie  Tijdsgedrag Asynchroon Basisblokken RTL

55 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Equivalente FSM’s =twee FSM’s zijn equivalent als ze dezelfde uitgangssequentie produceren voor eenzelfde ingangssequentie  Twee toestanden kunnen door één toestand vervangen worden als  beide toestanden dezelfde uitgangen produceren voor dezelfde ingangen  beide toestanden naar equivalent volgende toestanden gaan voor dezelfde ingangen  Dus toestanden s j and s k zijn equivalent (s j  s k ) als en slechts als 1)  i  I: h(s j,i) = h(s k,i) : beide toestanden produceren dezelfde uitgang voor elke combinatie van ingangen 2)  i  I: f(s j,i)  f(s k,i) : de volgende toestanden zijn equivalent voor elke combinatie van ingangen Flip-flop Synchroon FSM  Ontwerp  Diagramma  Minimaliseer  Codering  Keuze FF  Realisatie  Tijdsgedrag Asynchroon Basisblokken RTL

56 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 a) Maak de toestandstabel HuidigeVolgende toestand / Uitgangen toestandCD = 0XCD = 10CD = 11 u0u0 u 0 /0u 1 /0d 2 /1 u1u1 u 1 /0u 2 /0d 0 /0 u2u2 u 2 /0u 0 /1d 1 /0 d0d0 d 0 /0u 1 /0d 2 /1 d1d1 d 1 /0u 2 /0d 0 /0 d2d2 d 2 /0u 0 /1d 1 /0 Flip-flop Synchroon FSM  Ontwerp  Diagramma  Minimaliseer  Codering  Keuze FF  Realisatie  Tijdsgedrag Asynchroon Basisblokken RTL

57 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 b) Construeer de implicatietabel De implicatietabel bevat 1 vierkant per combinatie van 2 toestanden u1u1 u2u2 d0d0 d1d1 d2d2 u0u0 u1u1 u2u2 d0d0 d1d1 HuidigeVolgende toestand / Uitgangen toestandCD = 0XCD = 10CD = 11 u0u0 u 0 /0u 1 /0d 2 /1 u1u1 u 1 /0u 2 /0d 0 /0 u2u2 u 2 /0u 0 /1d 1 /0 d0d0 d 0 /0u 1 /0d 2 /1 d1d1 d 1 /0u 2 /0d 0 /0 d2d2 d 2 /0u 0 /1d 1 /0 Flip-flop Synchroon FSM  Ontwerp  Diagramma  Minimaliseer  Codering  Keuze FF  Realisatie  Tijdsgedrag Asynchroon Basisblokken RTL

58 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 c) Verwijder combinaties in tegenspraak met vereiste 1 Verwijder alle combinaties die verschillende uitgangen hebben voor dezelfde ingangen u1u1 u2u2 d0d0 d1d1 d2d2 u0u0 u1u1 u2u2 d0d0 d1d1 HuidigeVolgende toestand / Uitgangen toestandCD = 0XCD = 10CD = 11 u0u0 u 0 /0u 1 /0d 2 /1 u1u1 u 1 /0u 2 /0d 0 /0 u2u2 u 2 /0u 0 /1d 1 /0 d0d0 d 0 /0u 1 /0d 2 /1 d1d1 d 1 /0u 2 /0d 0 /0 d2d2 d 2 /0u 0 /1d 1 /0 Flip-flop Synchroon FSM  Ontwerp  Diagramma  Minimaliseer  Codering  Keuze FF  Realisatie  Tijdsgedrag Asynchroon Basisblokken RTL

59 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 OK d) Verwijder combinaties in tegenspraak met vereiste 2 Duid voor de overblijvende vierkanten aan welke toestanden equivalent moeten zijn om de huidige toestanden equivalent te maken u1u1 u2u2 d0d0 d1d1 d2d2 u0u0 u1u1 u2u2 d0d0 d1d1 Minimum aantal toestanden: 3 {u 0,d 0 } = s 0 {u 1,d 1 } = s 1 {u 2,d 2 } = s 2 HuidigeVolgende toestand / Uitgangen toestandCD = 0XCD = 10CD = 11 u0u0 u 0 /0u 1 /0d 2 /1 u1u1 u 1 /0u 2 /0d 0 /0 u2u2 u 2 /0u 0 /1d 1 /0 d0d0 d 0 /0u 1 /0d 2 /1 d1d1 d 1 /0u 2 /0d 0 /0 d2d2 d 2 /0u 0 /1d 1 /0 Flip-flop Synchroon FSM  Ontwerp  Diagramma  Minimaliseer  Codering  Keuze FF  Realisatie  Tijdsgedrag Asynchroon Basisblokken RTL

60 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 e) Vernieuw de toestandstabel Minimum aantal toestanden: 3 {u 0,d 0 } = s 0 {u 1,d 1 } = s 1 {u 2,d 2 } = s 2 HuidigeVolgende toestand / Uitgangen toestandCD = 0XCD = 10CD = 11 u0u0 u 0 /0u 1 /0d 2 /1 u1u1 u 1 /0u 2 /0d 0 /0 u2u2 u 2 /0u 0 /1d 1 /0 d0d0 d 0 /0u 1 /0d 2 /1 d1d1 d 1 /0u 2 /0d 0 /0 d2d2 d 2 /0u 0 /1d 1 /0 HuidigeVolgende toestand / Uitgangen toestandCD = 0XCD = 10CD = 11 s0s0 s 0 /0s 1 /0s 2 /1 s1s1 s 1 /0s 2 /0s 0 /0 s2s2 s 2 /0s 0 /1s 1 /0 Flip-flop Synchroon FSM  Ontwerp  Diagramma  Minimaliseer  Codering  Keuze FF  Realisatie  Tijdsgedrag Asynchroon Basisblokken RTL

61 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Het nieuwe toestandsdiagramma s0s0 CD=0X Y=0 s1s1 CD=10 Y=0 CD=11 Y=0 CD=0X Y=0 s2s2 CD=10 Y=0 CD=11 Y=0 CD=0X Y=0 CD=10 Y=1 CD=11 Y=1 Dit hadden we van in het begin kunnen tekenen, maar beter 1 toestand te veel dan 1 te weinig ! HuidigeVolgende toestand / Uitgangen toestandCD = 0XCD = 10CD = 11 s0s0 s 0 /0s 1 /0s 2 /1 s1s1 s 1 /0s 2 /0s 0 /0 s2s2 s 2 /0s 0 /1s 1 /0 Flip-flop Synchroon FSM  Ontwerp  Diagramma  Minimaliseer  Codering  Keuze FF  Realisatie  Tijdsgedrag Asynchroon Basisblokken RTL

62 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Een tweede voorbeeld Het volgend (denkbeeldig) voorbeeld toont beter het gebruik van de implicatietabel aan: HuidigeVolgende toestand / Uitgangen toestandAB=00AB=01AB=10 s0s0 s 4 /1s 2 /0s 1 /1 s1s1 s 2 /0s 5 /1s 4 /1 s2s2 s 1 /1s 0 /0s 3 /1 s3s3 s 2 /0s 5 /1s 4 /1 s4s4 s 0 /0s 5 /1s 1 /1 s5s5 s 2 /0s 4 /1s 2 /1 Flip-flop Synchroon FSM  Ontwerp  Diagramma  Minimaliseer  Codering  Keuze FF  Realisatie  Tijdsgedrag Asynchroon Basisblokken RTL

63 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 b) Construeer de implicatietabel s1s1 s2s2 s3s3 s4s4 s5s5 s0s0 s1s1 s2s2 s3s3 s4s4 HuidigeVolgende toestand / Uitgangen toestandAB=00AB=01AB=10 s0s0 s 4 /1s 2 /0s 1 /1 s1s1 s 2 /0s 5 /1s 4 /1 s2s2 s 1 /1s 0 /0s 3 /1 s3s3 s 2 /0s 5 /1s 4 /1 s4s4 s 0 /0s 5 /1s 1 /1 s5s5 s 2 /0s 4 /1s 2 /1 Flip-flop Synchroon FSM  Ontwerp  Diagramma  Minimaliseer  Codering  Keuze FF  Realisatie  Tijdsgedrag Asynchroon Basisblokken RTL

64 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 c) Verwijder combinaties in tegenspraak met vereiste 1 Verwijder alle combinaties die verschillende uitgangen hebben voor dezelfde ingangen s1s1 s2s2 s3s3 s4s4 s5s5 s0s0 s1s1 s2s2 s3s3 s4s4 HuidigeVolgende toestand / Uitgangen toestandAB=00AB=01AB=10 s0s0 s 4 /1s 2 /0s 1 /1 s1s1 s 2 /0s 5 /1s 4 /1 s2s2 s 1 /1s 0 /0s 3 /1 s3s3 s 2 /0s 5 /1s 4 /1 s4s4 s 0 /0s 5 /1s 1 /1 s5s5 s 2 /0s 4 /1s 2 /1 Flip-flop Synchroon FSM  Ontwerp  Diagramma  Minimaliseer  Codering  Keuze FF  Realisatie  Tijdsgedrag Asynchroon Basisblokken RTL

65 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L OK d) Verwijder combinaties in tegenspraak met vereiste 2 1.Duid voor de overblijvende vierkanten aan welke toestanden equivalent moeten zijn om de huidige toestanden equivalent te maken s1s1 s2s2 s3s3 s4s4 s5s5 s0s0 s1s1 s2s2 s3s3 s4s4 HuidigeVolgende toestand / Uitgangen toestandAB=00AB=01AB=10 s0s0 s 4 /1s 2 /0s 1 /1 s1s1 s 2 /0s 5 /1s 4 /1 s2s2 s 1 /1s 0 /0s 3 /1 s3s3 s 2 /0s 5 /1s 4 /1 s4s4 s 0 /0s 5 /1s 1 /1 s5s5 s 2 /0s 4 /1s 2 /1 Flip-flop Synchroon FSM  Ontwerp  Diagramma  Minimaliseer  Codering  Keuze FF  Realisatie  Tijdsgedrag Asynchroon Basisblokken RTL

66 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 d) Verwijder combinaties in tegenspraak met vereiste 2 2.Verwijder de overblijvende vierkanten die afhangen van toestandscombinaties die niet equivalent zijn s1s1 s2s2 s3s3 s4s4 s5s5 s0s0 s1s1 s2s2 s3s3 s4s4 HuidigeVolgende toestand / Uitgangen toestandAB=00AB=01AB=10 s0s0 s 4 /1s 2 /0s 1 /1 s1s1 s 2 /0s 5 /1s 4 /1 s2s2 s 1 /1s 0 /0s 3 /1 s3s3 s 2 /0s 5 /1s 4 /1 s4s4 s 0 /0s 5 /1s 1 /1 s5s5 s 2 /0s 4 /1s 2 / OK 1-4: ? 1-3:OK 0-2: ? 1-4: ? Flip-flop Synchroon FSM  Ontwerp  Diagramma  Minimaliseer  Codering  Keuze FF  Realisatie  Tijdsgedrag Asynchroon Basisblokken RTL

67 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 d) Verwijder combinaties in tegenspraak met vereiste 2 3.Itereer met verwijderen tot er geen verandering meer optreedt s1s1 s2s2 s3s3 s4s4 s5s5 s0s0 s1s1 s2s2 s3s3 s4s4 Minimum aantal toestanden: 3 {s 0,s 2 } = u 0 {s 1,s 3,s 4 } = u 1 {s 5 } = u 2 HuidigeVolgende toestand / Uitgangen toestandAB=00AB=01AB=10 s0s0 s 4 /1s 2 /0s 1 /1 s1s1 s 2 /0s 5 /1s 4 /1 s2s2 s 1 /1s 0 /0s 3 /1 s3s3 s 2 /0s 5 /1s 4 /1 s4s4 s 0 /0s 5 /1s 1 /1 s5s5 s 2 /0s 4 /1s 2 /1 1-4: ? 1-3:OK : ? 1-4: ? OK Flip-flop Synchroon FSM  Ontwerp  Diagramma  Minimaliseer  Codering  Keuze FF  Realisatie  Tijdsgedrag Asynchroon Basisblokken RTL

68 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 e) Vernieuw de toestandstabel Minimum aantal toestanden: 3 {s 0,s 2 } = u 0 {s 1,s 3,s 4 } = u 1 {s 5 } = u 2 HuidigeVolgende toestand / Uitgangen toestandAB=00AB=01AB=10 s0s0 s 4 /1s 2 /0s 1 /1 s1s1 s 2 /0s 5 /1s 4 /1 s2s2 s 1 /1s 0 /0s 3 /1 s3s3 s 2 /0s 5 /1s 4 /1 s4s4 s 0 /0s 5 /1s 1 /1 s5s5 s 2 /0s 4 /1s 2 /1 HuidigeVolgende toestand / Uitgangen toestandAB=00AB=01AB=10 u0u0 u 1 /1u 0 /0u 1 /1 u1u1 u 0 /0u 2 /1u 1 /1 u2u2 u 0 /0u 1 /1u 0 /1 Flip-flop Synchroon FSM  Ontwerp  Diagramma  Minimaliseer  Codering  Keuze FF  Realisatie  Tijdsgedrag Asynchroon Basisblokken RTL

69 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Ontwerp sequentiële schakelingen  De flip-flop als bouwblok  Ontwerp van synchrone sequentiële schakelingen  Finite State Machine  Het ontwerp in detail 1.Toestandsdiagramma 2.Minimalisering aantal toestanden  Codering toestanden 4.Keuze van het type flip-flop 5.Realisatie van de combinatorische logica 6.Analyse tijdsgedrag  Ontwerp van asynchrone sequentiële schakelingen  Basisbouwblokken op RTL-niveau Flip-flop Synchroon FSM  Ontwerp  Diagramma  Minimaliseer  Codering  Keuze FF  Realisatie  Tijdsgedrag Asynchroon Basisblokken RTL

70 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Toestandscodering  n toestanden vragen minstens  log 2 n  flip-flops  Er zijn n! mogelijke coderingen (n keuzes voor de eerste toestand, n−1 voor de tweede, …) Nr.s0s1s2s3Nr.s0s1s2s Flip-flop Synchroon FSM  Ontwerp  Diagramma  Minimaliseer  Codering  Keuze FF  Realisatie  Tijdsgedrag Asynchroon Basisblokken RTL

71 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Toestandscodering  Wat is de impact van de keuze?  Elke keuze leidt tot een verschillende combinatorische schakeling, telkens met een andere kostprijs en vertraging  Meest gekozen toestandscoderingen:  Straightforward (voor de hand liggend)  Minimum-bit-change  One-hot (één-actief)  Verdere verfijningen mogelijk  Prioritized-adjacency strategy (cfr. boek) Flip-flop Synchroon FSM  Ontwerp  Diagramma  Minimaliseer  Codering  Keuze FF  Realisatie  Tijdsgedrag Asynchroon Basisblokken RTL

72 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Straightforward-codering =gebruik de binaire voorstelling van het nummer van de toestand als code (s 0  000, s 5  101, …)  Meestal gebruikt als toestandsnummer een fysische betekenis heeft (bijv. een teller)  Meerdere FF’s veranderen bij elke overgang  meerdere bits veranderen zelden tegelijkertijd  elke bitverandering verbruikt vermogen  elke bitverandering heeft wat logica nodig Dit leidt tot  gevaar voor glitches  hoger vermogenverbruik  hogere kostprijs Flip-flop Synchroon FSM  Ontwerp  Diagramma  Minimaliseer  Codering  Keuze FF  Realisatie  Tijdsgedrag Asynchroon Basisblokken RTL

73 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Straightforward-codering Huidige Volgende toestand / Uitgang toestandCD = 0XCD = 10CD = 11 s0s0 s 0 /0s 1 /0s 2 /1 s1s1 s 1 /0s 2 /0s 0 /0 s2s2 s 2 /0s 0 /1s 1 /0 Huidige Volgende toestand / Uitgang toestandCD=0XCD=10CD= /001/010/1 0101/010/000/0 1010/000/101/0 Flip-flop Synchroon FSM  Ontwerp  Diagramma  Minimaliseer  Codering  Keuze FF  Realisatie  Tijdsgedrag Asynchroon Basisblokken RTL

74 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Minimum-bit-change-codering =maak het totaal aantal bitveranderingen voor alle toestandsveranderingen samen minimaal  Meestal gebruikt als kostprijs en vermogen minimaal moeten zijn (CMOS) Gray-code teller Straightforward Minimum-bit-change Flip-flop Synchroon FSM  Ontwerp  Diagramma  Minimaliseer  Codering  Keuze FF  Realisatie  Tijdsgedrag Asynchroon Basisblokken RTL

75 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Minimum-bit-change-codering s0s0 s1s1 s2s2 Alle overgangen zijn even waarschijnlijk. 1 bit verschil bij een overgang is telkens slechts mogelijk voor vier van de zes overgangen. Mogelijke codering: s 0 =00 s 1 =10 s 2 =11 HuidigeVolgende toestand / Uitgang toestandCD=0XCD=10CD=11 s0s0 s 0 /0s 1 /0s 2 /1 s1s1 s 1 /0s 2 /0s 0 /0 s2s2 s 2 /0s 0 /1s 1 /0 HuidigeVolgende toestand / Uitgang toestandCD=0XCD=10CD= /010/011/1 1010/011/000/0 1111/000/110/0 Flip-flop Synchroon FSM  Ontwerp  Diagramma  Minimaliseer  Codering  Keuze FF  Realisatie  Tijdsgedrag Asynchroon Basisblokken RTL

76 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 One-hot-codering =voorzie één flip-flop per toestand (ongecodeerd) Q van 1 FF = 1, Q van de andere FF’s = 0  Kostprijs FF’s = O(n) i.p.v. O(log n)  enkel bruikbaar voor klein aantal toestanden (bijv. controller)  Zeer eenvoudige ontwerp  snel ontwerp  Eenvoudige combinatorische schakelingen aan de ingangen van de flip-flops  Goedkoop combinatorisch deel, duur FF-deel  FPGA heeft in ½ CLB een kleine combinatorische schakeling en 1 FF  one-hot-codering is ideaal for FPGA (behalve tellers: teveel toestanden) Flip-flop Synchroon FSM  Ontwerp  Diagramma  Minimaliseer  Codering  Keuze FF  Realisatie  Tijdsgedrag Asynchroon Basisblokken RTL

77 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 One-hot-codering s 0 =001 s 1 =010 s 2 =100 HuidigeVolgende toestand / Uitgang toestandCD=0XCD=10CD=11 s0s0 s 0 /0s 1 /0s 2 /1 s1s1 s 1 /0s 2 /0s 0 /0 s2s2 s 2 /0s 0 /1s 1 /0 HuidigeVolgende toestand / Uitgang toestandCD=0XCD=10CD= /0010/0100/ /0100/0001/ /0001/1010/0 Flip-flop Synchroon FSM  Ontwerp  Diagramma  Minimaliseer  Codering  Keuze FF  Realisatie  Tijdsgedrag Asynchroon Basisblokken RTL

78 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Implementatie One-hot-codering  One-hot met D-flip-flop:  Elke overgang die in een toestand toekomt vereist een AND-poort  One-hot met SR-flip-flop:  Elke overgang die van een andere toestand toekomt vereist een AND-poort op de S-ingang  Elke overgang die naar een andere toestand vertrekt vereist een AND-poort op de R-ingang Flip-flop Synchroon FSM  Ontwerp  Diagramma  Minimaliseer  Codering  Keuze FF  Realisatie  Tijdsgedrag Asynchroon Basisblokken RTL

79 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 One-hot-codering met D-FF CD=10 Y=1 s0s0 CD=0X Y=0 s1s1 CD=10 Y=0 CD=11 Y=0 CD=0X Y=0 s2s2 CD=10 Y=0 CD=11 Y=0 CD=0X Y=0 CD=11 Y=1 P CC Q0Q0 D Q1Q1 D Q2Q2 D CDCD Y Flip-flop Synchroon FSM  Ontwerp  Diagramma  Minimaliseer  Codering  Keuze FF  Realisatie  Tijdsgedrag Asynchroon Basisblokken RTL

80 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 One-hot-codering met SR-FF CD=10 Y=1 s0s0 CD=0X Y=0 s1s1 CD=10 Y=0 CD=11 Y=0 CD=0X Y=0 s2s2 CD=10 Y=0 CD=11 Y=0 CD=0X Y=0 CD=11 Y=1 Q0Q0 SR Q1Q1 SR Q2Q2 SR CDCD PCC Y Flip-flop Synchroon FSM  Ontwerp  Diagramma  Minimaliseer  Codering  Keuze FF  Realisatie  Tijdsgedrag Asynchroon Basisblokken RTL

81 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Ontwerp sequentiële schakelingen  De flip-flop als bouwblok  Ontwerp van synchrone sequentiële schakelingen  Finite State Machine  Het ontwerp in detail 1.Toestandsdiagramma 2.Minimalisering aantal toestanden 3.Codering toestanden  Keuze van het type flip-flop 5.Realisatie van de combinatorische logica 6.Analyse tijdsgedrag  Ontwerp van asynchrone sequentiële schakelingen  Basisbouwblokken op RTL-niveau Flip-flop Synchroon FSM  Ontwerp  Diagramma  Minimaliseer  Codering  Keuze FF  Realisatie  Tijdsgedrag Asynchroon Basisblokken RTL

82 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Vergelijking types flip-flop  # don’t care bepalen kost en snelheid van de combinatorische logica (minder  duurder/trager) JKSRDT Kost FFduurstgoedkoop Eenvoud ontwerp −−−+++ # don’t care+++−− Typische toepassing Verschillend signaal sets en resets FF Tijdelijk waarde onthouden Tellers & frequentie- delers Flip-flop Synchroon FSM  Ontwerp  Diagramma  Minimaliseer  Codering  Keuze FF  Realisatie  Tijdsgedrag Asynchroon Basisblokken RTL

83 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Keuze type flip-flop Geen algemene regel!  Voor de goedkoopste schakeling moeten alle varianten uitgeprobeerd worden  Als een korte ontwerptijd belangrijk is, zijn D-flip-flops de beste keuze  FPGA’s bevatten enkel D-flip-flops Flip-flop Synchroon FSM  Ontwerp  Diagramma  Minimaliseer  Codering  Keuze FF  Realisatie  Tijdsgedrag Asynchroon Basisblokken RTL

84 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Ontwerp sequentiële schakelingen  De flip-flop als bouwblok  Ontwerp van synchrone sequentiële schakelingen  Finite State Machine  Het ontwerp in detail 1.Toestandsdiagramma 2.Minimalisering aantal toestanden 3.Codering toestanden 4.Keuze van het type flip-flop  Realisatie van de combinatorische logica 6.Analyse tijdsgedrag  Ontwerp van asynchrone sequentiële schakelingen  Basisbouwblokken op RTL-niveau Flip-flop Synchroon FSM  Ontwerp  Diagramma  Minimaliseer  Codering  Keuze FF  Realisatie  Tijdsgedrag Asynchroon Basisblokken RTL

85 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Realisatie met JK-FF’s Bepaal de excitatiefuncties voor FF 1 J1J1 Q0Q0 Q1Q1 C D K1K1 Q0Q0 Q1Q1 C D 0 0 X X XX XX 0X 0X X0 X0 X X 01X 0 0 XX1 10X 01X XX1 XX1 HuidigeVolgende toestand / Uitgang toestandCD=0XCD=10CD= /001/010/1 0101/010/000/0 1010/000/101/0 QQ(next)JK 000X 011X 10X1 11X0 X X 10XX X X X XXX1 X 11X0 000X 000/ / /0 001/ / /1 010/ / /0 Excitatietabel JK-FF Flip-flop Synchroon FSM  Ontwerp  Diagramma  Minimaliseer  Codering  Keuze FF  Realisatie  Tijdsgedrag Asynchroon Basisblokken RTL

86 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Realisatie met JK-FF’s Bepaal de excitatiefuncties voor FF 0 J0J0 Q0Q0 Q1Q1 C D K0K0 Q0Q0 Q1Q1 C D 0X0 0X0 X0X X0X 0X0 0X0 1X0 X0X X0X X1X 0X1 1X0 X1X X1X 00X0 00X0 Y Q0Q0 Q1Q1 10X0 00X1 C D QQ(next)JK 000X 011X 10X1 11X0 X X 0XX1 X X X X1XX X HuidigeVolgende toestand / Uitgang toestandCD=0XCD=10CD= /001/010/1 0101/010/000/0 1010/000/101/0 000/ / /0001/ / /1010/ / /0 10/1 00/1 Excitatietabel JK-FF Flip-flop Synchroon FSM  Ontwerp  Diagramma  Minimaliseer  Codering  Keuze FF  Realisatie  Tijdsgedrag Asynchroon Basisblokken RTL

87 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Realisatie met JK-FF’s J1J1 Q0Q0 Q1Q1 C D K1K1 Q0Q0 Q1Q1 C D Q1Q1 JK Q0Q0 JK CDCD 00XX 00XX 10XX 01XX XXX0 XXX0 XXX1 XXX1 C C Flip-flop Synchroon FSM  Ontwerp  Diagramma  Minimaliseer  Codering  Keuze FF  Realisatie  Tijdsgedrag Asynchroon Basisblokken RTL

88 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Realisatie met JK-FF’s J0J0 Q0Q0 Q1Q1 C D K0K0 Q0Q0 Q1Q1 C D 0XX0 0XX0 0XX1 1XX0 X0XX X0XX X1XX X1XX 00X0 00X0 Y Q0Q0 Q1Q1 10X0 00X1 C D Kostprijs: 26 (als 2-lagen realisatie van NAND’s en Q’ gebruikt) Q1Q1 JK Q0Q0 JK CDCD C C Y Flip-flop Synchroon FSM  Ontwerp  Diagramma  Minimaliseer  Codering  Keuze FF  Realisatie  Tijdsgedrag Asynchroon Basisblokken RTL 23

89 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Realisatie met SR-FF’s Bepaal de excitatiefuncties voor FF 1 S1S1 Q0Q0 Q1Q1 C D R1R1 Q0Q0 Q1Q1 C D 00XX 00XX 10X0 01X0 XXX0 XXX0 0XX1 X0X1 HuidigeVolgende toestand / Uitgang toestandCD=0XCD=10CD=11 000/001/010/ /010/000/ /000/101/0 QQ(next)SR 000X X0 Excitatietabel SR-FF Flip-flop Synchroon FSM  Ontwerp  Diagramma  Minimaliseer  Codering  Keuze FF  Realisatie  Tijdsgedrag Asynchroon Basisblokken RTL

90 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Realisatie met SR-FF’s Bepaal de excitatiefuncties voor FF 0 Excitatietabel SR-FF S0S0 Q0Q0 Q1Q1 C D R0R0 Q0Q0 Q1Q1 C D 0XX0 0XX0 00X1 10X0 X0XX X0XX X1X0 01XX HuidigeVolgende toestand / Uitgang toestandCD=0XCD=10CD=11 000/001/010/110/ /000/ /000/100/101/0 QQ(next)SR 000X X0 00X0 00X0 Y Q0Q0 Q1Q1 10X0 00X1 C D Flip-flop Synchroon FSM  Ontwerp  Diagramma  Minimaliseer  Codering  Keuze FF  Realisatie  Tijdsgedrag Asynchroon Basisblokken RTL

91 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Realisatie met SR-FF’s S1S1 Q0Q0 Q1Q1 C D R1R1 Q0Q0 Q1Q1 C D 00XX 00XX 10X0 01X0 XXX0 XXX0 0XX1 X0X1 Q1Q1 SR Q0Q0 SR CDCD C C Flip-flop Synchroon FSM  Ontwerp  Diagramma  Minimaliseer  Codering  Keuze FF  Realisatie  Tijdsgedrag Asynchroon Basisblokken RTL

92 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Realisatie met SR-FF’s S0S0 Q0Q0 Q1Q1 C D R0R0 Q0Q0 Q1Q1 C D 0XX0 0XX0 00X1 10X0 X0XX X0XX X1X0 01XX 00X0 00X0 Y Q0Q0 Q1Q1 10X0 00X1 C D Kostprijs: 28 (dubbel gebruik NAND4) Q1Q1 SR Q0Q0 SR CDCD C C Y Flip-flop Synchroon FSM  Ontwerp  Diagramma  Minimaliseer  Codering  Keuze FF  Realisatie  Tijdsgedrag Asynchroon Basisblokken RTL

93 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Realisatie met D-FF’s Bepaal de excitatiefuncties 00X0 00X0 Y Q0Q0 Q1Q1 10X0 00X1 C D 00X1 00X1 Q 1n =D 1 Q0Q0 Q1Q1 10X0 01X0 C D 01X0 01X0 Q 0n =D 0 Q0Q0 Q1Q1 00X1 10X0 C D HuidigeVolgende toestand / Uitgang toestandCD=0XCD=10CD= /001/010/1 0101/010/000/0 1010/000/101/0 Excitatietabel D-FF QQ(next)D Flip-flop Synchroon FSM  Ontwerp  Diagramma  Minimaliseer  Codering  Keuze FF  Realisatie  Tijdsgedrag Asynchroon Basisblokken RTL

94 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Realisatie met D-FF’s 00X0 00X0 Y Q0Q0 Q1Q1 10X0 00X1 C D 00X1 00X1 Q 1n =D 1 Q0Q0 Q1Q1 10X0 01X0 C D 01X0 01X0 Q 0n =D 0 Q0Q0 Q1Q1 00X1 10X0 C D Q1Q1 D Q0Q0 D CDCD Kostprijs: 31 (dubbel gebruik NAND4) 1,5 CLB Clr Y Flip-flop Synchroon FSM  Ontwerp  Diagramma  Minimaliseer  Codering  Keuze FF  Realisatie  Tijdsgedrag Asynchroon Basisblokken RTL

95 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Realisatie met T-FF’s Bepaal de excitatiefuncties Excitatietabel T-FF 00X0 00X0 Y Q0Q0 Q1Q1 10X0 00X1 C D 00X0 00X0 T1T1 Q0Q0 Q1Q1 10X1 01X1 C D 00X0 00X0 T0T0 Q0Q0 Q1Q1 01X1 11X0 C D HuidigeVolgende toestand / Uitgang toestandCD=0XCD=10CD= /001/010/1 0101/010/000/0 1010/000/101/0 QQ(next)T Flip-flop Synchroon FSM  Ontwerp  Diagramma  Minimaliseer  Codering  Keuze FF  Realisatie  Tijdsgedrag Asynchroon Basisblokken RTL

96 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 00X0 00X0 T0T0 Q0Q0 Q1Q1 01X1 11X0 C D 00X0 00X0 T1T1 Q0Q0 Q1Q1 10X1 01X1 C D Realisatie met T-FF’s 00X0 00X0 Y Q0Q0 Q1Q1 10X0 00X1 C D Q1Q1 T Q0Q0 T CDCD Kostprijs: 32 Clr Y Flip-flop Synchroon FSM  Ontwerp  Diagramma  Minimaliseer  Codering  Keuze FF  Realisatie  Tijdsgedrag Asynchroon Basisblokken RTL

97 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 00X0 00X0 T0T0 Q0Q0 Q1Q1 01X1 11X0 C D 00X0 00X0 T1T1 Q0Q0 Q1Q1 10X1 01X1 C D Realisatie met T-FF’s 00X0 00X0 Y Q0Q0 Q1Q1 10X0 00X1 C D Q1Q1 T Q0Q0 T CDCD Kostprijs: 28 Clr Y Flip-flop Synchroon FSM  Ontwerp  Diagramma  Minimaliseer  Codering  Keuze FF  Realisatie  Tijdsgedrag Asynchroon Basisblokken RTL

98 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Ontwerp sequentiële schakelingen  De flip-flop als bouwblok  Ontwerp van synchrone sequentiële schakelingen  Finite State Machine  Het ontwerp in detail 1.Toestandsdiagramma 2.Minimalisering aantal toestanden 3.Codering toestanden 4.Keuze van het type flip-flop 5.Realisatie van de combinatorische logica  Analyse tijdsgedrag  Ontwerp van asynchrone sequentiële schakelingen  Basisbouwblokken op RTL-niveau Flip-flop Synchroon FSM  Ontwerp  Diagramma  Minimaliseer  Codering  Keuze FF  Realisatie  Tijdsgedrag Asynchroon Basisblokken RTL

99 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Analyse tijdsgedrag  Bepaling maximale klokfrequentie =1/(vertraging van kritisch pad)  Kritisch pad is het pad met de langste combinatorische vertraging tussen twee klokflanken Vertraging= klok  Q 0 ’ + NAND4 + NAND3 + set-up D = 5,2 + 2,2 + 1,8 + 1 = 10,2 stel vertraging van 1 = 1 ns  f max = 98 MHz Q1Q1 D Q0Q0 D CDCD Clr Y Flip-flop Synchroon FSM  Ontwerp  Diagramma  Minimaliseer  Codering  Keuze FF  Realisatie  Tijdsgedrag Asynchroon Basisblokken RTL

100 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Analyse tijdsgedrag  Controle ‘clock skew’ =verschil in de tijdsogenblikken waarop een klokflank op verschillende plaatsen in de schakeling waargenomen worden  Verschillende vertragingstijd van combinatorische logica op klokpad  klokbuffers (wegens grote fan-out klok)  ‘gated’ klok  Verschillende stijg/daaltijden t.g.v. verschillende capacitieve belasting  Verschillende looptijd kloksignaal over een verbinding  draad = transmissielijn bij hoge frequenties  doorlooptijd schakelmatrices FPGA  Detectie van glitches  Metastabiliteitsproblemen … klok Q CE Flip-flop Synchroon FSM  Ontwerp  Diagramma  Minimaliseer  Codering  Keuze FF  Realisatie  Tijdsgedrag Asynchroon Basisblokken RTL

101 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Wanneer metastabiliteitsproblemen?  Slecht ontworpen synchrone schakeling  Lagere klokfrequentie of snellere logica  Asynchrone ingangen  Synchronisatie  Enkel onafhankelijke signalen!  Apart synchronisatiesignaal (bijv. bus-enable) Synchroon sequentieel circuit Externe signalen Async1 Async2 Sync1 D Q D Q Sync2 Sync1 Sync2 Async2 Async1 metastabiliteit Flip-flop Synchroon FSM  Ontwerp  Diagramma  Minimaliseer  Codering  Keuze FF  Realisatie  Tijdsgedrag Asynchroon Basisblokken RTL

102 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Hoe kans op metastabiliteit bij synchronisatie verminderen? t r = t klok − t comb − t set-up p meta (t r ) kan verkleind worden maar wordt nooit 0 ! Verbeteringen:  Gebruik traagst mogelijke klok  Gebruik snelle FF’s (kleine  & kleine t set-up )  Hoger vermogenverbruik! Wacht lang genoeg tot FF uit metastabiele toestand: t meta ≤ t r (metastability resolution time) Async Clk D C QD C comb. synchrone schakeling Flip-flop Synchroon FSM  Ontwerp  Diagramma  Minimaliseer  Codering  Keuze FF  Realisatie  Tijdsgedrag Asynchroon Basisblokken RTL

103 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Hoe kans op metastabiliteit bij synchronisatie verminderen?  Synchronisatie door n FF’s na mekaar  t r = (n − 1) × (t klok − t set-up ) + (t klok − t comb − t set-up )  Om p meta (t r ) klein genoeg te maken volstaat n = 2 of 3  Synchronisatie door 2 FF’s na mekaar op een frequentie = klokfrequentie/n  t r = n × t klok − t set-up + (t klok − t comb − t set-up )  Als externe signalen niet veel veranderen t.o.v. klok  Als geen onmiddellijke reactie op verandering vereist Async Clk D C Q1Q1 D C comb. D C QnQn … Async Clk/n D C Q1Q1 D C comb. D C Q2Q2 Clk Flip-flop Synchroon FSM  Ontwerp  Diagramma  Minimaliseer  Codering  Keuze FF  Realisatie  Tijdsgedrag Asynchroon Basisblokken RTL

104 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Ontwerp sequentiële schakelingen  De flip-flop als bouwblok  Ontwerp van synchrone sequentiële schakelingen  Ontwerp van asynchrone sequentiële schakelingen  Basisbouwblokken op RTL-niveau Flip-flop Synchroon Asynchroon Diagramma Minimalisering Codering Realisatie Tijdsgedrag Basisblokken RTL

105 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Asynchrone sequentiële schakelingen =uitgangen & toestand kunnen veranderen zodra een ingang verandert  Beperking tot fundamentele modus (“Fundamental mode restriction”)  geen twee (of meer) ingangen mogen tegelijkertijd veranderen  een ingangsverandering mag slechts optreden als alle effecten van de vorige verandering uitgestorven zijn  Toepassing: kleine asynchrone schakelingen  Bijv. koppeling twee synchrone eilanden met verschillende klokken of klokken met een ongekende skew Flip-flop Synchroon Asynchroon Diagramma Minimalisering Codering Realisatie Tijdsgedrag Basisblokken RTL

106 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Ontwerp sequentiële schakelingen  De flip-flop als bouwblok  Ontwerp van synchrone sequentiële schakelingen  Ontwerp van asynchrone sequentiële schakelingen 1.Toestandsdiagramma 2.Minimalisering aantal toestanden 3.Codering toestanden 4.Realisatie 5.Analyse tijdsgedrag  Basisbouwblokken op RTL-niveau Flip-flop Synchroon Asynchroon Diagramma Minimalisering Codering Realisatie Tijdsgedrag Basisblokken RTL

107 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Toestanden bij asynchrone schakelingen  Toestand = elke mogelijke combinatie van ingangen en uitgangen  Voorbeeld: ontwerp een schakeling met een uitgang Q en twee ingangen I en E. 1)E = 1 & stijgende flank van I  Q wordt 1 2)Q blijft 1 tot E 0 wordt 3)E = 0  Q = 0 QIEToestand 000a 001b 010c 011d 100onmogelijk 101e f 1)001  111 ofb  f 2)1X1  0X0 ofe  a f  c 3)1X0 onmogelijk Flip-flop Synchroon Asynchroon  Diagramma Minimalisering Codering Realisatie Tijdsgedrag Basisblokken RTL

108 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Toestandsdiagramma a/0 00 e/1 01 IE f/1 11 b/0 01 d/0 11 c/ QIEToestand 000a 001b 010c 011d 100onmogelijk 101e f Q wisselt als Q = 0 & 01  11 Q = 1 & X1  X0 00a b c d e f Flip-flop Synchroon Asynchroon  Diagramma Minimalisering Codering Realisatie Tijdsgedrag Basisblokken RTL

109 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Ontwerp sequentiële schakelingen  De flip-flop als bouwblok  Ontwerp van synchrone sequentiële schakelingen  Ontwerp van asynchrone sequentiële schakelingen 1.Toestandsdiagramma  Minimalisering aantal toestanden (transitietabel) 3.Codering toestanden 4.Realisatie 5.Analyse tijdsgedrag  Basisbouwblokken op RTL-niveau Flip-flop Synchroon Asynchroon Diagramma  Minimalisering Codering Realisatie Tijdsgedrag Basisblokken RTL

110 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Toestandstabel f/ a/ c/ d/ b/ e/ QIEToestand 000a 001b 010c 011d 100onmogelijk 101e f S IE Q a0 b0 c0 d0 e1 f1 abXc abfX aXdc Xbdc aefX Xefc Stabiele toestand Fundamentele modus Flip-flop Synchroon Asynchroon Diagramma  Minimalisering Codering Realisatie Tijdsgedrag Basisblokken RTL

111 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Minimalisering toestanden  Smelt compatibele toestanden samen =toestanden met dezelfde volgende toestanden & uitgangen of don’t cares  Meer restrictief dan equivalente toestanden  Dezelfde volgende toestanden i.p.v. equivalente volgende toestanden  Nodig wegens don’t care volgende toestanden  Niet associatief (equivalentie wel!): compatibel(a,b) en compatibel(b,c) betekent niet dat compatibel(a,c) Flip-flop Synchroon Asynchroon Diagramma  Minimalisering Codering Realisatie Tijdsgedrag Basisblokken RTL

112 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Minimalisering toestandstabel Compatibele toestanden: a & b; a & c; a & d; c & d; e & f S IE Q aabXc0 babfX0 caXdc0 dXbdc0 eaefX1 fXefc1 S IE Q  fc0 c  Xdc0 dX  dc0 e  efX1 fXefc1 Opmerking: compatibel: b & a; a & c niet compatibel: b & c Flip-flop Synchroon Asynchroon Diagramma  Minimalisering Codering Realisatie Tijdsgedrag Basisblokken RTL

113 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Minimalisering toestandstabel S IE Q  fc0 c  Xdc0 dX  dc0 e  efX1 fXefc1 S IE Q  f  0  0 e  efX1 fXef  1 S IE Q  0  0  1 Transitietabel = geminimaliseerde toestandstabel Flip-flop Synchroon Asynchroon Diagramma  Minimalisering Codering Realisatie Tijdsgedrag Basisblokken RTL

114 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Ontwerp sequentiële schakelingen  De flip-flop als bouwblok  Ontwerp van synchrone sequentiële schakelingen  Ontwerp van asynchrone sequentiële schakelingen 1.Toestandsdiagramma 2.Minimalisering aantal toestanden  Codering toestanden 4.Realisatie 5.Analyse tijdsgedrag  Basisbouwblokken op RTL-niveau Flip-flop Synchroon Asynchroon Diagramma Minimalisering  Codering Realisatie Tijdsgedrag Basisblokken RTL

115 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Codering toestanden  Op dezelfde manier als bij synchrone schakelingen  : 00  : 01  : 11 S IE Q  0  0  1 S IE Q bijv. Flip-flop Synchroon Asynchroon Diagramma Minimalisering  Codering Realisatie Tijdsgedrag Basisblokken RTL

116 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Ontwerp sequentiële schakelingen  De flip-flop als bouwblok  Ontwerp van synchrone sequentiële schakelingen  Ontwerp van asynchrone sequentiële schakelingen 1.Toestandsdiagramma 2.Minimalisering aantal toestanden 3.Codering toestanden  Realisatie 5.Analyse tijdsgedrag  Basisbouwblokken op RTL-niveau Flip-flop Synchroon Asynchroon Diagramma Minimalisering Codering  Realisatie Tijdsgedrag Basisblokken RTL

117 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 000X 001X E S 0n S0S0 S1S1 111X 111X I 000X 001X E S 1n S0S0 S1S1 101X 000X I 00 X1 S0S0 S1S1 Q Realisatie S IE Q I E S 1 S 0 Q Flip-flop Synchroon Asynchroon Diagramma Minimalisering Codering  Realisatie Tijdsgedrag Basisblokken RTL

118 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Ontwerp sequentiële schakelingen  De flip-flop als bouwblok  Ontwerp van synchrone sequentiële schakelingen  Ontwerp van asynchrone sequentiële schakelingen 1.Toestandsdiagramma 2.Minimalisering aantal toestanden 3.Codering toestanden 4.Realisatie  Analyse tijdsgedrag: races & hazards  Basisbouwblokken op RTL-niveau Flip-flop Synchroon Asynchroon Diagramma Minimalisering Codering Realisatie  Tijdsgedrag Basisblokken RTL

119 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Races  Race : Het feit dat 2 of meer toestandsvariabelen moeten veranderen als 1 ingangsbit verandert  Critical race : Race die tot een verkeerde toestand leidt  Cycle : Race die tot een oscillatie tussen twee toestanden leidt  Het optreden van een race en het soort race hangt af van de vertragings- karakteristieken van de poorten Flip-flop Synchroon Asynchroon Diagramma Minimalisering Codering Realisatie  Tijdsgedrag Basisblokken RTL

120 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Voorbeelden race  Verwacht gedrag: 00  01  11 als a = 0 voor b = 1 terug  Cycle: 00  01  11  01  11  … als b’ = 0 terug voor a’ = 1  Critical race: 00  01 als puls b’ ≈ 0 S IE Q S0S1S0S1 Q a b I E I a’ b’ S0’S0’ S1S1 S0’S1S0’S1 Q a’ b’ I E Flip-flop Synchroon Asynchroon Diagramma Minimalisering Codering Realisatie  Tijdsgedrag Basisblokken RTL I a b S0S0 S1S1

121 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Eliminatie van ‘critical races’  kies een toestandscodering die nooit 2 of meer toestandsvariabelen moet wijzigen t.g.v. 1 ingangsverandering    Er bestaat geen codering die hieraan voldoet! S IE Q  0  0  1    Flip-flop Synchroon Asynchroon Diagramma Minimalisering Codering Realisatie  Tijdsgedrag Basisblokken RTL

122 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Eliminatie van ‘critical races’ 1)Doe een zo goed mogelijke toestandscodering 2)Identificeer de overblijvende problemen 3)Leid deze overgangen om via bijkomende toestanden zodat niet langer 2 of meer toestandsvariabelen wijzigen S IE Q X11XX Don’t care omdat beide nieuwe overgangen een verandering van Q vereisen. Deze verandering mag dus al dan niet in de overgangstoestand gebeuren. Flip-flop Synchroon Asynchroon Diagramma Minimalisering Codering Realisatie  Tijdsgedrag Basisblokken RTL

123 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L X E S 0n S0S0 S1S X I X E S 1n S0S0 S1S X I 00 X1 S0S0 S1S1 Q Implementatie S IE Q X11XX I E S 1 S 0 Q Flip-flop Synchroon Asynchroon Diagramma Minimalisering Codering Realisatie  Tijdsgedrag Basisblokken RTL

124 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Wat is de initiële toestand?  Bij het opzetten van de spanning kan de schakeling in een willekeurige toestand opstarten, bijv. S = 10 & IE = 01  Wat er dan gebeurt hangt af van de toestanden die de don’t cares vervangen na implementatie; eventueel is dit zelf een nieuwe stabiele toestand  Daarom is het verstandig om de don’t cares te vervangen door een evolutie naar een stabiele toestand met dezelfde ingangen S IE Q X11XX 0001 Race, maar niet kritisch Flip-flop Synchroon Asynchroon Diagramma Minimalisering Codering Realisatie  Tijdsgedrag Basisblokken RTL

125 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Vermijden hazards  Bij asynchrone schakelingen moeten hazards op de toestandsvariabelen vermeden worden omdat ze tot een verkeerde toestand kunnen leiden  Dit geldt zowel voor statische als dynamische hazards  Bij synchrone schakelingen geldt dit niet omdat glitches daar moeten uitgestorven zijn voor de volgende klokflank  De vorige implementatie was reeds hazard-vrij Flip-flop Synchroon Asynchroon Diagramma Minimalisering Codering Realisatie  Tijdsgedrag Basisblokken RTL

126 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Problemen t.g.v. ‘skew’ op ingangen Veronderstel een extra vertraging van I op slechts één plaats in de schakeling (bijv. door gebruik van een lange lijn) Start met S=01 & IE=11 I wordt 0: S zou 00 moeten worden Dan wordt de vertraagde versie van I nul Toestand verandert niet meer en eindigt in S=11 Verwachte toestandsveranderingen:01  00 Echte toestandsveranderingen:01  00  10  11 S IE Q I E S 1 S 0 Q Flip-flop Synchroon Asynchroon Diagramma Minimalisering Codering Realisatie  Tijdsgedrag Basisblokken RTL

127 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Essentiële hazard =één enkele ingangsverandering brengt de schakeling in een verkeerde toestand  Hoe detecteren?  Andere eindtoestand als een ingang 1 keer of 3 keer verandert  Hoe vermijden?  Toestandsvariabelen mogen enkel veranderen als alle ingangsveranderingen aan de poorten gekomen zijn  zorgvuldig ontwerp op elektrisch niveau, bijv. door extra vertragingen in te voeren S IE Q Flip-flop Synchroon Asynchroon Diagramma Minimalisering Codering Realisatie  Tijdsgedrag Basisblokken RTL

128 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Ontwerp sequentiële schakelingen  De flip-flop als bouwblok  Ontwerp van synchrone sequentiële schakelingen  Ontwerp van asynchrone sequentiële schakelingen  Basisbouwblokken op RTL-niveau  Register  Schuifregister  Teller  Geheugen  LIFO  FIFO Flip-flop Synchroon Asynchroon Basisblokken RTL Register Schuifregister Teller Geheugen LIFO FIFO

129 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Register Clk Register I3I3 I2I2 I1I1 I0I0 Q3Q3 Q2Q2 Q1Q1 Q0Q0 Preset Clear DQ I3I3 Q3Q3 DQ I2I2 Q2Q2 DQ I1I1 Q1Q1 DQ I0I0 Q0Q0  Meestal asynchrone clear  Soms asynchrone preset Symbool: Preset Clear Flip-flop Synchroon Asynchroon Basisblokken RTL  Register Schuifregister Teller Geheugen LIFO FIFO

130 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Laadbaar register met ‘gated’ klok Register I3I3 I2I2 I1I1 I0I0 Q3Q3 Q2Q2 Q1Q1 Q0Q0 CE Klokt enkel als CE=1 +FF’s schakelen enkel als nieuwe waarde geladen wordt  geen nodeloos vermogenverbruik −CE mag enkel veranderen als Clk=0 −Afgeleide (‘gated’) klokken zijn gevoelig aan klok-skew DQ I3I3 Q3Q3 DQ I2I2 Q2Q2 DQ I1I1 Q1Q1 DQ I0I0 Q0Q0 Clk CE Flip-flop Synchroon Asynchroon Basisblokken RTL  Register Schuifregister Teller Geheugen LIFO FIFO

131 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Klok-skew probleem =niet alle klokken van alle registers veranderen tegelijkertijd D0D0 Q0Q0 D1D1 Q1Q1 I A Q Clk CE Clk I A CE afgeleide Clk Q Mogelijke schending set-up/houdtijd voor 2 e register afgeleide Clk Flip-flop Synchroon Asynchroon Basisblokken RTL  Register Schuifregister Teller Geheugen LIFO FIFO

132 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Clk LD Laadbaar register (geen ‘gated’ klok) Register I3I3 I2I2 I1I1 I0I0 Q3Q3 Q2Q2 Q1Q1 Q0Q0 LD Laad enkel als LD=1 +Geen klok-skew problemen daar alle FF dezelfde klok gebruiken −Hogere kostprijs: MUX’s nodig −Hoger vermogenverbruik: FF’s laden een nieuwe waarde in op elke klokflank DQ I3I3 Q3Q3 10 S DQ I2I2 Q2Q2 10 S DQ I1I1 Q1Q1 10 S DQ I0I0 Q0Q0 10 S Flip-flop Synchroon Asynchroon Basisblokken RTL  Register Schuifregister Teller Geheugen LIFO FIFO

133 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Ontwerp sequentiële schakelingen  De flip-flop als bouwblok  Ontwerp van synchrone sequentiële schakelingen  Ontwerp van asynchrone sequentiële schakelingen  Basisbouwblokken op RTL-niveau  Register  Schuifregister  Teller  Geheugen  LIFO  FIFO Flip-flop Synchroon Asynchroon Basisblokken RTL Register  Schuifregister Teller Geheugen LIFO FIFO

134 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Serial-In/Parallel-Out schuifregister Toepassing:  Ontvangstregister (Rx) seriële poort  Vertragingslijn FIR/IIR filters Shift Register Q3Q3 Q2Q2 Q1Q1 Q0Q0 SE ILIL Clk SE DQ ILIL Q3Q3 10 S DQ Q2Q2 10 S DQ Q1Q1 10 S DQ Q0Q0 10 S Flip-flop Synchroon Asynchroon Basisblokken RTL Register  Schuifregister Teller Geheugen LIFO FIFO

135 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Parallel-In/Serial-Out schuifregister Toepassing:  Zendregister (Tx) seriële poort Shift Register I3I3 I2I2 I1I1 I0I0 Q0Q0 ILIL CE Sh/Ld* DQ I3I3 10 S DQ I2I2 10 S DQ I1I1 10 S DQ I0I0 Q0Q0 10 S Clk CE ILIL Flip-flop Synchroon Asynchroon Basisblokken RTL Register  Schuifregister Teller Geheugen LIFO FIFO

136 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Ontwerp sequentiële schakelingen  De flip-flop als bouwblok  Ontwerp van synchrone sequentiële schakelingen  Ontwerp van asynchrone sequentiële schakelingen  Basisbouwblokken op RTL-niveau  Register  Schuifregister  Teller  Synchrone teller  Asynchrone teller  Geheugen  LIFO  FIFO Flip-flop Synchroon Asynchroon Basisblokken RTL Register Schuifregister  Teller Geheugen LIFO FIFO

137 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 HA Synchroon (naar boven) tellen =alle FF’s gebruiken hetzelfde kloksignaal Clk D Q D Q Q1Q1 Q0Q0 Clr* D Q Q2Q2 Carry-Out E glitch! Clk Clr* E Q 0 Q 1 Q 2 Flip-flop Synchroon Asynchroon Basisblokken RTL Register Schuifregister  Teller Geheugen LIFO FIFO

138 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Synchrone bidirectionele teller DQDQ Clk Q1Q1 Q0Q0 Clr* DQ Q2Q2 Carry-Out E HAS D CoCo Halve adder/subtractor D=1 : naar beneden tellen D=0 : naar boven tellen Flip-flop Synchroon Asynchroon Basisblokken RTL Register Schuifregister  Teller Geheugen LIFO FIFO

139 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Halve adder/subtractor HAS Dir cici QiQi DiDi c i+1 Dir= … Dir= …  Bit i telt (wisselt) als c i = 1  D i = Q i XOR c i  Bit i+1 telt als c i+1 = 1  Dir=0:als bit i 1  0 c i+1 = c i AND Q i  Dir=1:als bit i 0  1 c i+1 = c i AND Q i ’ cici DirQiQi DiDi c i Flip-flop Synchroon Asynchroon Basisblokken RTL Register Schuifregister  Teller Geheugen LIFO FIFO

140 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 c i Dir Q i DiDi c i+1 Halve adder/subtractor cici Dir QiQi DiDi cici QiQi c i+1 cici DirQiQi DiDi c i Flip-flop Synchroon Asynchroon Basisblokken RTL Register Schuifregister  Teller Geheugen LIFO FIFO

141 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Parallel-laadbare bidirectionele teller Clk Q1Q1 Clr* DQ Q2Q2 Carry-Out E HAS D CoCo 01 DQ 01 Q0Q0 DQ 01 I2I2 I1I1 I0I0 LD Flip-flop Synchroon Asynchroon Basisblokken RTL Register Schuifregister  Teller Geheugen LIFO FIFO

142 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 BCD-teller Up-counter I3I3 I2I2 I1I1 I0I0 Q3Q3 Q2Q2 Q1Q1 Q0Q0 E LD 0 0 Vergelijkt met een constante: Als Q = 9 (binair ‘1001’) wordt 0 geladen op de volgende klokflank Flip-flop Synchroon Asynchroon Basisblokken RTL Register Schuifregister  Teller Geheugen LIFO FIFO

143 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Bidirectionele BCD-teller Up/down- counter I3I3 I2I2 I1I1 I0I0 Q3Q3 Q2Q2 Q1Q1 Q0Q0 E LD D 0 Flip-flop Synchroon Asynchroon Basisblokken RTL Register Schuifregister  Teller Geheugen LIFO FIFO Mux 10

144 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Ontwerp sequentiële schakelingen  De flip-flop als bouwblok  Ontwerp van synchrone sequentiële schakelingen  Ontwerp van asynchrone sequentiële schakelingen  Basisbouwblokken op RTL-niveau  Register  Schuifregister  Teller  Synchrone teller  Asynchrone teller  Geheugen  LIFO  FIFO Flip-flop Synchroon Asynchroon Basisblokken RTL Register Schuifregister  Teller Geheugen LIFO FIFO

145 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Asynchrone teller TQTQTQTQ Clk Q3Q3 Q2Q2 Q1Q1 Q0Q0 Clr* E Q’ Clk Q0Q0 Q1Q1 Q2Q2 Q3Q3 Flip-flop Synchroon Asynchroon Basisblokken RTL Register Schuifregister  Teller Geheugen LIFO FIFO

146 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Ontwerp sequentiële schakelingen  De flip-flop als bouwblok  Ontwerp van synchrone sequentiële schakelingen  Ontwerp van asynchrone sequentiële schakelingen  Basisbouwblokken op RTL-niveau  Register  Schuifregister  Teller  Geheugen: registerbank & RAM  LIFO  FIFO Flip-flop Synchroon Asynchroon Basisblokken RTL Register Schuifregister Teller  Geheugen LIFO FIFO

147 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Register File Cell =geklokte geheugencel voor 1 bit  WE=1 : schrijf een bit in de cel (op klok!)  Hooguit 1 WE actief tegelijkertijd  RE=1 : lees een bit uit de cel (niet geklokt!)  # RE = # leespoorten van registerbank  Realisatie DQ D inA ClkRE A D outA D outB RE B D inB WE B WE A Flip-flop Synchroon Asynchroon Basisblokken RTL Register Schuifregister Teller  Geheugen LIFO FIFO

148 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 4×3 registerbank met 2 schrijf- en 2 leespoorten  ‘dual port register file’ = 1 schrijf- en 1 leespoort WA a WE a 2/2/ RFC WA b WE b 2/2/ I a2 I b2 I a1 I b1 I a0 I b RA c RE c 2/2/ RA d RE d 2/2/ O c0 O d0 O c1 O d1 O c2 O d2 Lees- adres- decoder Schrijf- adres- decoder Flip-flop Synchroon Asynchroon Basisblokken RTL Register Schuifregister Teller  Geheugen LIFO FIFO

149 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Random Access Memory =niet-sequentiële geheugentoegang mogelijk =wijzigbaar geheugen, meestal vluchtig (  ROM)  Vergelijkbaar met registerbank maar  1 poort (gecombineerd lees/schrijf)  lezen: RE = CS R/W* –Toegangstijd : adres  D uit  schrijven: klok = CS (R/W*)’  asynchroon!  groter geheugen  compactere RFC –Statische RAM : 4 à 6 tors –Dynamische RAM : 1 tor  trager  niet voor kleine tijdelijke tussenresultaten Flip-flop Synchroon Asynchroon Basisblokken RTL Register Schuifregister Teller  Geheugen LIFO FIFO

150 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Ontwerp sequentiële schakelingen  De flip-flop als bouwblok  Ontwerp van synchrone sequentiële schakelingen  Ontwerp van asynchrone sequentiële schakelingen  Basisbouwblokken op RTL-niveau  Register  Schuifregister  Teller  Geheugen  LIFO (stapelgeheugen)  FIFO Flip-flop Synchroon Asynchroon Basisblokken RTL Register Schuifregister Teller Geheugen  LIFO FIFO

151 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 LIFO of stapelgeheugen (‘stack’) Top Top−1 Top−2 Top−3 Top−4 Top−5 Top−6 Top−7 leeg Reset 2.Push 45 3.Push 12 4.Push 23 5.Pop  23 6.Push 10 Flip-flop Synchroon Asynchroon Basisblokken RTL Register Schuifregister Teller Geheugen  LIFO FIFO

152 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Implementatie LIFO met diepte 8 en teller voor aanduiding ‘empty/full’ EnablePush/pop*Bewerking 00— 01— 10Pop 11Push TellerEmptyFull Met een bidirectioneel schuifregister Reset L/R* Enable ILIL IRIR O0O0 O7O7 L/R*=1 : naar links schuiven L/R*=0 : naar rechts schuiven Flip-flop Synchroon Asynchroon Basisblokken RTL Register Schuifregister Teller Geheugen  LIFO FIFO

153 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Implementatie LIFO met diepte 8 Reset Up/down* Enable Q Enable Reset* Push/pop* In 0 In k Out 0 Out k Empty Full Reset L/R* Enable ILIL IRIR O0O0 O7O7 Reset L/R* Enable ILIL IRIR O0O0 O7O7 Flip-flop Synchroon Asynchroon Basisblokken RTL Register Schuifregister Teller Geheugen  LIFO FIFO

154 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Alternatief (grote stapelgeheugens) Schrijfadres Leesadres Als ‘Pop’ verlagen beide tellers leeg 0 = leeg = vol 1.Reset 2.Push 45 3.Push 23 4.Push 12 5.Pop  12 6.Push 17 7.Push Als ‘Push’ verhogen beide tellers 23 Niet opschuiven! Flip-flop Synchroon Asynchroon Basisblokken RTL Register Schuifregister Teller Geheugen  LIFO FIFO

155 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Alternatieve implementatie LIFO Reset U/D* E Up/down counter Schrijfadres Set U/D* E Up/down counter Leesadres 10  2-to-1 MUX 1K  8 RAM A CS R/W* D 10 / 1 0 S 8/8/ Als RAM niet geklokt is, controleer het tijdsgedrag van het (geklokte) adres t.o.v. CS en R/W* zodat niet 2 × gelezen/geschreven wordt! Reset* Push/ Pop* Enable Full/ empty Data in/out Flip-flop Synchroon Asynchroon Basisblokken RTL Register Schuifregister Teller Geheugen  LIFO FIFO

156 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Ontwerp sequentiële schakelingen  De flip-flop als bouwblok  Ontwerp van synchrone sequentiële schakelingen  Ontwerp van asynchrone sequentiële schakelingen  Basisbouwblokken op RTL-niveau  Register  Schuifregister  Teller  Geheugen  LIFO  FIFO Flip-flop Synchroon Asynchroon Basisblokken RTL Register Schuifregister Teller Geheugen LIFO  FIFO

157 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 FIFO Top Top−1 Top−2 Top−3 Top−4 Top−5 Top−6 Top−7 leeg Reset 2.Schrijf 45 3.Schrijf 23 4.Schrijf 12 5.Lees  45 6.Schrijf 57 Flip-flop Synchroon Asynchroon Basisblokken RTL Register Schuifregister Teller Geheugen LIFO  FIFO

158 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Implementatie FIFO met diepte 8 Reset Enable ILIL O0O0 O7O7 Reset Enable ILIL O0O0 O7O7 Set Up/down* Enable Q 3..0 Enable Reset* Read/ write* In 0 In k Out 0 Out k Empty Full MUX S 2..0 Leesadres Flip-flop Synchroon Asynchroon Basisblokken RTL Register Schuifregister Teller Geheugen LIFO  FIFO

159 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Alternatief (grote FIFO’s) Schrijfadres Leesadres leeg 0 45 Verhogen schrijfadres bij schrijven 23 Niet opschuiven! 12 Verhogen leesadres bij lezen 57 Wrap-around Leesadres = Schrijfadres  leeg of vol 1.Reset 2.Schrijf 45 3.Schrijf 23 4.Schrijf 12 5.Lees  45 6.Schrijf 57 7.Schrijf Flip-flop Synchroon Asynchroon Basisblokken RTL Register Schuifregister Teller Geheugen LIFO  FIFO

160 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Onderscheid tussen leeg en vol  Hoe deze implementatie wijzigen om een onderscheid te maken tussen “leeg” en “vol”? Gebruik (n+1)-bit tellers voor lees- en schrijfadres bij een diepte van 2 n  gebruik enkel n-LSB als adressen voor RAM  als n-LSB van lees- en schrijfadres gelijk en  MSB gelijk: “leeg”  MSB verschillend: “vol”  Een analoge oplossing bestaat voor LIFO Flip-flop Synchroon Asynchroon Basisblokken RTL Register Schuifregister Teller Geheugen LIFO  FIFO

161 Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT –07H01L1 Alternatieve implementatie FIFO R E 11-bit up-counter Schrijfadres R E 11-bit up-counter Leesadres 10  2-to-1 MUX 1K  8 RAM A CS R/W* D 10 / 0 1 S 8/8/ Reset* Read/ Write* Enable Empty Data in/out =? Full MSB 10-LSB Flip-flop Synchroon Asynchroon Basisblokken RTL Register Schuifregister Teller Geheugen LIFO  FIFO


Download ppt "Sequentiële schakelingen KATHOLIEKE UNIVERSITEIT 4-14-106–07H01L1 Inhoudstafel  Inleiding  De basis van digitaal ontwerp  Combinatorische schakelingen."

Verwante presentaties


Ads door Google