ee1410: digitale systemen

37
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

Upload: trinhtruc

Post on 11-Jan-2017

233 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: EE1410: Digitale Systemen

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

Page 2: EE1410: Digitale Systemen

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 !

Page 3: EE1410: Digitale Systemen

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

Page 4: EE1410: Digitale Systemen

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

- - -

Page 5: EE1410: Digitale Systemen

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

Page 6: EE1410: Digitale Systemen

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’

Page 7: EE1410: Digitale Systemen

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 + Δ)

Page 8: EE1410: Digitale Systemen

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)

Page 9: EE1410: Digitale Systemen

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

Page 10: EE1410: Digitale Systemen

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

Page 11: EE1410: Digitale Systemen

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

Page 12: EE1410: Digitale Systemen

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

Page 13: EE1410: Digitale Systemen

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

Page 14: EE1410: Digitale Systemen

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

Page 15: EE1410: Digitale Systemen

15 EE1410 – Digitale Systemen

Finite State Machines (FSM)

Page 16: EE1410: Digitale Systemen

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

Page 17: EE1410: Digitale Systemen

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:

Page 18: EE1410: Digitale Systemen

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

Page 19: EE1410: Digitale Systemen

19 EE1410 – Digitale Systemen

FSM voorbeeld: Snoepautomaat Step 3: Vereenvoudiging:

D

Reset

N

N

N, D

[open] 15¢

10¢ D

Hergebruik states waar mogelijk (S2 = S3, S4 = S5 = ... = S8)

State 0¢

10¢

15¢

Q 1 Q 0 0 0

0 1

1 0

1 1

Step 4: Toestandcodering:

Present State

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:

Page 20: EE1410: Digitale Systemen

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

Page 21: EE1410: Digitale Systemen

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

Page 22: EE1410: Digitale Systemen

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)

Page 23: EE1410: Digitale Systemen

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

Page 24: EE1410: Digitale Systemen

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 ?

Page 25: EE1410: Digitale Systemen

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

Page 26: EE1410: Digitale 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 ?

Page 27: EE1410: Digitale Systemen

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

Page 28: EE1410: Digitale Systemen

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 ....

Page 29: EE1410: Digitale Systemen

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

Page 30: EE1410: Digitale Systemen

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

Page 31: EE1410: Digitale Systemen

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

Page 32: EE1410: Digitale Systemen

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?

Page 33: EE1410: Digitale Systemen

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)?

Page 34: EE1410: Digitale Systemen

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?

Page 35: EE1410: Digitale Systemen

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

Page 36: EE1410: Digitale Systemen

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

Page 37: EE1410: Digitale Systemen

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