Challenge the future Delft University of Technology
EE1410: Digitale Systemen BSc. EE, 1e jaar, 2012-2013, 4e college
Arjan van Genderen, Stephan Wong, Computer Engineering 21-2-2013
2 EE1410 – Digitale Systemen
Mededelingen
• Volgende week tijdens EPO-2: 2 middagen training Digitale Systemen met VHDL en breadboard oefeningen: combinatorische schakelingen en sequentiele schakelingen
• Het afronden van deze oefeningen is verplicht binnen EPO-2 (resultaten worden afgetekend)
• Degenen die niet aan EPO-2 meedoen kunnen ook aanschuiven op ma. t/m do. middag (1e verd. Drebbelweg)
• Handleiding binnenkort op Blackboard bij EPO-2 • Bereid je goed voor !
3 EE1410 – Digitale Systemen
Hoorcollege 4
• Sequentiële netwerken • Terugkoppeling • Latch • Flipflop
• Finite State Machines • State Machine Concept • Finite State Diagram • Moore and Mealy Machines
• Case Studies: Snoepautomaat en Verkeerslichten
Corresponderende stof in boek “Digital Logic”: 7 – 7.4, 8 – 8.3, 8.5.1-2
4 EE1410 – Digitale Systemen
• Circuits met terugkoppeling (Z = f(X, Z)) • ⇒ outputs = f(inputs èn verleden)
• Gelimiteerd aantal stabiele oplossingen Z (toestanden of states genoemd)
• ⇒ circuit heeft/is een geheugen
Sequentiële Netwerken
Synchrone systemen: toestandsovergang bepaald door één centraal clock signaal (toestandsveranderingen lopen synchroon met clock)
Asynchrone systemen: toestandsovergang afhankelijk van meerdere signalen (lastig voorspelbaar gedrag, niet behandeld in EE1410)
- - -
X 1 X 2 X n
Z 1 Z 2 Z m
- - -
5 EE1410 – Digitale Systemen
Inverter-ketens
A B C D E
Period of Repeating Waveform ( tp ) Gate Delay ( td )
0
1
0
1
0
1
tp = 2n td n = # inv.
• Statische geheugencel (even # inv.):
1 0 0 1 → 1 0
A B C D E
• Ring Oscillator (oneven # inv.):
1
0
→ 0 etc. 0
1 of
6 EE1410 – Digitale Systemen
R-S Latch
Q Q’
0/1 1/0 0 1 1 0
0 0
S
0 0 1 1
R
0 1 0 1
R-S Latch: (2 gated inverters)
R
S
Q
Q’
verboden
R
S
Q
Q’
Reset Hold Set Reset Set
verboden
Race Hold
verboden
hold reset set
1/0
0/1 R = S = 0
Q
Q’
7 EE1410 – Digitale Systemen
R-S Latch
nieuwe state = f(S, R, huidige state):
S
R
Q
latch delay Δ Q+
Karakteristieke vergelijking: Q+ = S + R’ Q (of Q+ = R’ S + R’ Q = (R + (S + Q)’)’ wanneer 0 voor don’t care, zie vorige slide)
S(t) R(t) Q(t) Q (t + Δ)
0 0 0 0 0 1
1 0 0 1 0 1
1 1 0 1 1 1
0 1 0 0 1 1
0 1
0 0 1 1
x x
HOLD
RESET
VERBODEN
SET
R
SR 00 01 11 10
0 0 X 1
1 0 X 1
0
1
Q ( t )
S Q (t + Δ)
8 EE1410 – Digitale Systemen
Synchrone netwerken
Transitie naar nieuwe state(s) synchroon (m.b.v. clock):
De clock geeft, nadat het circuit to rust is gekomen, het teken voor de volgende state transitie
Voordelen: goed gedefinieerde states en transities, storingsongevoelig(er)
1 c FA
s
0
FF d
c q
q2
c FA
FF
s
0
d
c q
q1
c FA
FF
s
0
d
c q
q0 clk
Voorbeeld: Up-counter (q2q1q0 = 0, 1, ..., 7, 0, 1, ...)
Nodig: geheugenelement dat d.m.v. de clock clk de momentane ingang d bemonstert en op de uitgang q aanbiedt (Flip Flop = FF) bemonsteringsduur zo klein mogelijk ⇒ bemonstering wordt getriggered door clk flank (edge-triggered)
9 EE1410 – Digitale Systemen
Level triggered vs. edge triggered
Clock: periodieke gebeurtenis (event) triggert state verandering in geheugencel
Pos/Neg edge triggered circuit (of flipflop) bemonstert op pos/neg flank
Pos/neg level triggered circuit (of gated latch) bemonstert gedurende gehele hoge/lage nivo
Edge triggered circuit wel aantrekkelijk om state mee vast te leggen
Input
Clock
ET Output
LT Output
Level triggered circuit heeft ook probleem wanneer uitgang terugkoppelt naar ingang: oscillaties kunnen optreden:
D
Q Clk
0→1→0
1→0→1
10 EE1410 – Digitale Systemen
Level-triggered D flip-flop (Gated Latch)
S Q
Q’ R RS
latch
D
CLK
gated RS latch
CLK = 1: → S = D, R = D’
→ Q(t + Δ) = D (transport)
0
1
1 0 1
0
D
CLK
Q
tijd
CLK = 0: → S = 0, R = 0
→ Q(t + Δ) = Q(t) (hold)
Q Q’
0/1 1/0 0 1 1 0
0 0
S 0 0 1 1
R 0 1 0 1
hold
transport
11 EE1410 – Digitale Systemen
Edge-triggered D flipflop: principe
Principe edge-triggered D flip flop: combinatie van gated RS latches:
S Q1
Q1’ R RS
latch
S Q
Q’ R RS
latch
D
CLK
gated RS latch 1 (master)
gated RS latch 2 (slave)
CLK latch 1 latch 2 (Q1) (Q)
1 transport D hold Q 0 hold D1-0 transport D1-0 D1-0 = waarde D wanneer CLK 1→0 1 transport D hold D1-0
12 EE1410 – Digitale Systemen
Edge-triggered D flipflop: realisatie
Input
Clock
T su T h
Input moet stabiel zijn rond clk flank (setup time Tsu, hold time Th) om succesvol te bemonsteren
D flipflop (D-FF):
D
C
Q
Q’ Clk
Karakteristieke vergelijking: Q+ = D
data
positive-edge triggered D-flip-flop
13 EE1410 – Digitale Systemen
Case study: Parity checker
Maak uitgang 1 bij oneven aantal 1-en in invoerstroom:
reset: 1 0 ... input: X 0 1 0 0 1 0 1 0 0 1 (waarde juist voor CLK edge) output: 0 0 1 1 1 0 0 1 1 1 0 (waarde na CLK edge)
Codeer “oneven aantal 1-en gedetecteerd” als: 1 (state) Codeer “even aantal 1-en gedetecteerd” als: 0 (state)
Even [0]
Odd [1]
Reset
0
0
1 1
Toestandsdiagram
input juist voor CLK edge output na CLK edge
Output 0 0 1 1
Next State 0 1 1 0
Input 0 1 0 1
Present State 0 0 1 1
Toestandstabel:
NS (= D) = PS ⊕ Input Output = PS
14 EE1410 – Digitale Systemen
Case study: Parity checker
Opslag state (PS) mbv D-FF: • D = NS = PS ⊕ Input; • Output = PS
Tijdsgedrag voor Input = 1 0 0 1 1 0 1 0 1 1 1 0:
Clk
Output
Input 1 0 0 1 1 0 1 0 1 1 1 0
1 1 0 1 0 0 1 1 0 1 1 1
D
R
Q
Q
Input
CLK PS/Output
\Reset
NS
15 EE1410 – Digitale Systemen
Finite State Machines (FSM)
16 EE1410 – Digitale Systemen
FSM: Definitie FSM = seq. circuit met eindig # states (s). Executie: sk+1 = f(sk,input) waarbij:
• sk = state als gevolg van klokflank k • sk en input worden bemonsterd tijdens klokflank k+1
FSM verandert state in het tempo van de klok. Kloksnelheid begrensd door propagatietijden combinatoriek in combinatie met setup/hold tijden van FF’s en hun interne propagatietijden.
vereiste input tijdens CLK edge voor deze transitie
state [output] Even
[0]
Odd [1]
Reset
0
0
1 1
Vb. FSM: toest.diagr.-representatie (FSD, Finite State Diagram)
= D
R
Q
Q
Input
CLK PS/Output
\Reset
NS
Vb. FSM: circuit-representatie
17 EE1410 – Digitale Systemen
FSM: Voorbeeld van interactie/timing Beschouw FSM1 en FSM2 FSM1 wil zijn huidige state A via X doorseinen aan FSM2, die via Y terugmeldt dat hij X gezien heeft (state C ⇒ D), waarop FSM1 naar B gaat (en verder). Initieel geldt: uitgang X = 0 van FSM1, state van FSM2 = C met Y = 0. Dan gaat state van FSM1 naar A.
FSM1 FSM2
X
Y
Tijdsdiagram:
A A B
C D D
FSM
X
FSM
Y
1
2
CLK
A [1]
B [0]
Y=1
Y=0,1
Y=0 C [0]
D [1]
X=1
X=0
X=0
X=1 FSD’s:
18 EE1410 – Digitale Systemen
FSM voorbeeld: Snoepautomaat Probleemdefinitie: retourneer kauwgom nadat minimaal 15 cent is ingevoerd
met dubbeltjes (dimes) en stuivers (nickels) (geen wisselgeld)
Stap 1: Blokschema: Vending Machine
FSM
N
D
Reset
Clk
OpenCoin
Sensor Gum Release
Mechanism
States: 0, N, NN, NNN, D, DN, ND, ... Inputs: N(ickel), D(ime), Reset Output: open
Stap 2: Toestandsdiagram:
Reset
N
N
N
D
D
N D
[open]
[open] [open] [open]
S0
S1 S2
S3 S4 S5 S6
S8 [open]
S7
D
19 EE1410 – Digitale Systemen
FSM voorbeeld: Snoepautomaat Step 3: Vereenvoudiging:
D
Reset
N
N
N, D
[open] 15¢
0¢
5¢
10¢ D
Hergebruik states waar mogelijk (S2 = S3, S4 = S5 = ... = S8)
State 0¢
5¢
10¢
15¢
Q 1 Q 0 0 0
0 1
1 0
1 1
Step 4: Toestandcodering:
Present State
0¢
5¢
10¢
15¢
D 0 0 1 1 0 0 1 1
N 0 1 0 1 0 1 0 1
0 0 1 1
0 1 0 1
Inputs Next State
0¢ 5¢ 10¢ X 5¢ 10¢ 15¢ X
10¢ 15¢ 15¢ X
15¢
Output Open
0 0 0 X 0 0 0 X 0 0 0 X 1
Q 1 Q 0 0 0
0 1
1 0
1 1
D 1 D 0 0 0 0 1 1 0 X X 0 1 1 0 1 1 X X 1 0 1 1 1 1 X X 1 1 1 1 1 1 X X
0 0 1 1
0 1 0 1
1 1 X
Step 5: Toestandstabel:
20 EE1410 – Digitale Systemen
FSM voorbeeld: Snoepautomaat Step 6: Implementatie:
D1 = Q1 + D + Q0 N D0 = N Q0’ + Q0 N’ + Q1 N + Q1 D OPEN = Q1 Q0
K-map for D1
Q1 Q0 00 01 11 10 0 0 1 1
0 1 1 1
x x x x
1 1 1 1
00
01
11
10 D
D N Q1
N
Q0
Q1 Q0 00 01 11 10 0 0 1 0
0 0 1 0
x x x x
0 0 1 0
00
01
11
10
D N Q1
N
Q0 K-map for OPEN
D
K-map for D0
Q1 Q0 00 01 11 10 0 1 1 0
1 0 1 1
x x x x
0 1 1 1
00
01
11
10 D
D N Q1
N
Q0
CLK
OPEN
CLK
Q 0
D
R
Q
Q
D
R
Q
Q
\ Q 1
\reset
\reset
\ Q 0
\ Q 0
Q 0
Q 0
Q 1
Q 1
Q 1
Q 1
D
D
N
N
N
\ N
D 1
D 0
CLK
CLK
21 EE1410 – Digitale Systemen
Moore vs. Mealy machines
Moore Machine
output = f(state)
output verandert synchronoon met
toestandsverandering Clock
State Feedback
Combinational Logic for
Next State (Flip-flop Inputs)
State Register
Comb. Logic for Outputs
Z Outputs
k
X Inputs i
Mealy Machine
output = f(state,input)
output verandert direct met input-verandering (asynchrone output)
State Register Clock State
Feedback
Combinational Logic for
Outputs and Next State
X Inputs i Z
Outputs k
22 EE1410 – Digitale Systemen
Moore vs. Mealy machines
1
1
0
1
2
0
0 [0]
[0]
[1] 1
0
Moore machine:
1/0
0
1
0/0
0/0
1/1
Mealy machine:
Zelfde gedrag maar verschillend # states
Voorbeeld: FSM die 2 opeenvolgende 1-en in invoerstroom detecteert
input/output
Nadeel Mealy: eerder kans op problemen (instabiliteit bij terugkoppeling van outputs naar inputs)
23 EE1410 – Digitale Systemen
Case study: Verkeerslichten
Specificatie: Basistoestand (reset): HL, FL Indien wagen op C: • lange wachttijd • HL, FL • korte wachttijd • HL, FL • lange wachttijd tenzij geen wagens meer op C • HL, FL • korte wachttijd • terug naar basis toestand
Highway
Highway
Farmroad
Farmroad
HL
HL
FL
FL
C
C
Digitale besturing: States: S0 (HL, FL), S1 (HL, FL), S2 (HL, FL), S3 (HL, FL) Inputs: Reset, C (meetlus), TS (korte timer gaat af), TL (lange timer gaat af) Outputs: HG, HY, HR, FG, FY, FR, ST (set timer, korte puls om timer te (her)starten)
Er is een timer beschikbaar welke start met signaal ST: geeft signaal TS na korte tijd, signaal TL na lange tijd
FSM besturing
timer ST TS TL
C
HR HY HG
FR FY FG
Reset CLK
24 EE1410 – Digitale Systemen
Case study: Verkeerslichten
S0 (highway, farmroad) overgangsconditie: wagen op C en lange wachttijd verstreken, dus C • TL è ST wordt gezet tijdens overgang naar S1 S1 (highway, farmroad) overgangsconditie: korte tijd verstreken, dus TS è ST wordt gezet tijdens overgang naar S2 S2 (highway, farmroad) overgangsconditie: geen wagen meer op C of lange wachttijd verstreken, dus TL + C’ è ST wordt gezet tijdens overgang naar S3 S3 (highway, farmroad) overgangsconditie: korte tijd verstreken, dus TS è ST wordt gezet tijdens overgang naar S0
Reset
TL’ + C’
S0 TL•C/ST
TS’ S1 S3
S2
TS/ST
TS/ST TL + C’/ST
TS’
TL’ • C
Mealy of Moore ?
25 EE1410 – Digitale Systemen
Samenvatting
• wat zijn synchrone/asynchrone seq. systemen? • wat zijn de principes achter latches en flipflops? • wat is verschil tussen level-triggered en edge-triggered circuits? • waar wordt maximale clocksnelheid door bepaald? • wat zijn finite state machines? • wat zijn de drie belangrijkste FSM representaties? • wat is de ontwerpmethode van probleem naar FSM implementatie? • wat zijn Moore en Mealy machines?
Belangrijkste elementen:
Volgende keer: VHDL voor seq. systemen
26 EE1410 – Digitale Systemen
Vraag 1: Gegeven het volgende circuit:
Huiswerkopgaven h4
Q A
B
Het circuit is: a. een latch; AB = 00 is de verboden ingangscombinatie b. een latch; AB = 01 is de verboden ingangscombinatie c. een latch; AB = 10 is de verboden ingangscombinatie d. geen bruikbaar geheugenelement; de Reset-combinatie ontbreekt
A B Q 0 0 ? 0 1 ? 1 0 ? 1 1 ?
27 EE1410 – Digitale Systemen
Vraag 2: Bij SR latches is SR = 11 verboden ivm racecondities en niet-complementaire uitgangswaarden. Bij de volgende implementatie:
Huiswerkopgaven h4
a. zijn all problemen rond SR = 11 opgelost. Voor SR = 11 is gekozen voor een extra setopdracht
b. zijn all problemen rond SR = 11 opgelost. Voor SR = 11 is gekozen voor een extra resetopdracht
c. zijn all problemen rond SR = 11 opgelost. Voor SR = 11 is gekozen voor een extra onthoud (hold) opdracht
d. zijn niet alle problemen rond SR = 11 opgelost.
Q S
R
28 EE1410 – Digitale Systemen
Vraag 3: Gegeven het volgende circuit met drie positive edge-triggered D flipflops:
Huiswerkopgaven h4
Indien voor t1 op In het constante signaal X wordt gezet, waneer wordt X op zijn vroegst op Out waargenomen? Op of direct na: a. t2 b. t3 c. t4 d. t5 of later
Out In
CLK
D
FF Q D
FF Q D
FF Q
CLK: t1 t2 t3 t4 t5 ....
29 EE1410 – Digitale Systemen
Huiswerkopgaven h4 Casus: sequentiële opteller
Men wil een circuit ontwerpen dat twee 8-bits getallen A = a7 a6 ... a1 a0 en
B = b7 b6 ... b1 b0 wil optellen tot het getal S = s8 s7 s6 ... s1 s0.
Om componenten te sparen wil men de optelling op een sequentiële
manier realiseren: op tijdstip (klokflank) ti (i = 0,1,2,...,7) ontvangt het circuit
de input bits ai en bi en berekent bit si. Tijdens de berekening speelt de
carry ci-1 die mogelijk is ontstaan tijdens de vorige berekening op tijdstip i-1
een belangrijke rol (tijdens de eerste berekening op i = 0 is de “vorige” carry
natuurlijk 0). De carry speelt uiteraard ook een rol tijdens de berekening
van s8. De sequentiële opteller kan worden gebouwd m.b.v. een FSM met
2 states zoals onderstaand circuit:
a7 a6 ... a1 a0
CLK
FSM b7 b6 ... b1 b0 s8 s7 s6 ... s1 s0
30 EE1410 – Digitale Systemen
Huiswerkopgaven h4
Welke uitspraak is correct?
a. S0 representeert si = 0, S1 representeert si = 1
b. S0 representeert ci = 0, S1 representeert ci = 1
c. S0 representeert ai = 1, S1 representeert bi = 1
d. Geen van bovenstaande antwoorden.
Vraag 4 (zie de casus “sequentiële opteller”): De FSM kan worden gerepresenteerd door de volgende FSD (Mealy vorm) waarin X en Y nog niet zijn ingevuld:
S1
Reset
X
01/0 10/0 11/1
Y 11/0
S0
31 EE1410 – Digitale Systemen
Huiswerkopgaven h4
a. X = (01/1, 10/1) Y = 11/0
b. X = (01/1, 10/1, 00/0) Y = 00/1
c. X = 00/0 Y = 00/1
d. Geen van bovenstaande antwoorden.
Vraag 5 (zie de casus “sequentiële opteller”): In de FSD staan twee labels X en Y. Wat moet er voor X en Y worden ingevuld?
S1
Reset
X
01/0 10/0 11/1
Y 11/0
S0
32 EE1410 – Digitale Systemen
Huiswerkopgaven h4
a. We moeten de vorige FSM aanpassen
b. We kunnen de vorige FSM gebruiken en de berekening kost evenveel tijd (= #
klokcycli)
c. We kunnen de vorige FSM gebruiken maar de berekening kost wel meer tijd
(= # klokcycli)
d. Geen van bovenstaande antwoorden.
Vraag 6 (zie de casus “sequentiële opteller”): Stel dat we nu twee 64-bit getallen A en B sequentieel willen optellen. Welke van onderstaande uitspraken is het meest correct?
33 EE1410 – Digitale Systemen
Huiswerkopgaven h4
a. 1 D FF en 11 gates
b. 1 D FF en 9 gates
c. 2 D FF en 5 gates
d. Geen van bovenstaande antwoorden.
Vraag 7 (zie de casus “sequentiële opteller”): Stel dat de opteller met D flip-flops en 4-input NAND gates moet worden gerealiseerd. Hoeveel flip-flops en NAND gates zijn benodigd (een invertor kost ook een NAND gate)?
34 EE1410 – Digitale Systemen
Huiswerkopgaven h4
a. De FSD van de Moore machine heeft 2 states
b. De FSD van de Moore machine heeft 3 states
c. De FSD van de Moore machine heeft 4 states
d. Geen van bovenstaande antwoorden.
Vraag 8 (zie de casus “sequentiële opteller”): Stel dat de opteller m.b.v. een Moore machine wordt gerealiseerd. Welke van de volgende uitspraken is het meest correct?
35 EE1410 – Digitale Systemen
Casus: 4-bits detector
Onderstaand circuit detecteert een bepaalde reeks van 4 bits:
Huiswerkopgaven h4
D Q Q’
D Q Q’
CLK
CLK
X
Z
Y0
Y1
36 EE1410 – Digitale Systemen
Vraag 9 (zie de casus “4-bit detector”):
Welke type FSM is hier gerealiseerd?
a. Moore machine
b. Mealy machine
c. Synchronous Mealy machine
d. Geen van bovenstaande antwoorden.
Huiswerkopgaven h4
37 EE1410 – Digitale Systemen
Vraag 10 (zie de casus “4-bit detector”):
Welke 4-bits reeks wordt door het circuit gedetecteerd?
a. 0011
b. 1010
c. 0101
d. Geen van bovenstaande antwoorden.
Huiswerkopgaven h4
Top Related