EDA 451 - Digital och Datorteknik 2008/09 Dagens föreläsning: ”Sekvensnät”, lärobok kap.5 Ur innehållet: Hur fungerar en SR-latch? Hur konstrueras JK-, D- och T-vippor? Funktionstabeller och excitationstabeller Register som minneselement Register och bussar Konstruktion av synkrona räknare med D- och T-vippor Analys av synkrona räknare Sekvensnät
Sekvensnät x0 Kombinatoriskt nät Varje utgång har i varje ögonblick det värde som entydigt bestäms av insignaler och tillstånd. x1 f0(x0,x1,x2,...,xm,q0,q1,...,qi) x2 f1(x0,x1,x2,...,xm,q0,q1,...,qi) x3 f2(x0,x1,x2,...,xm,q0,q1,...,qi) x4 fn(x0,x1,x2,...,xm,q0,q1,...,qi) xm q0 e0 q0 q1 e1 q1 qi ei qi Sekvensnät
Asynkront eller synkront Sekvensnät Kombinatoriskt nät f0(x0,x1,x2,...,xm,q0,q1,...,qi) f1(x0,x1,x2,...,xm,q0,q1,...,qi) f2(x0,x1,x2,...,xm,q0,q1,...,qi) fn(x0,x1,x2,...,xm,q0,q1,...,qi) x0 x1 x2 x3 x4 xm q1 qi q0 e0 e1 ei Återkoppling (”feedback”) Omedelbar (asynkron) Tidsbestämd (synkron) Sekvensnät Sekvensnät 3
Exempel: Omedelbar återkoppling u1 q1=e1 Sekvensnät
Analys... e1=[x1+(x2+q1)’]’ = x1’(x2+q1) u1=(x2+q1)’=x2’q1’ x1 x2 q1 1 e1=[x1+(x2+q1)’]’ = x1’(x2+q1) u1=(x2+q1)’=x2’q1’ Sekvensnät
..och när vi kopplar ihop e1 och q1... x1 x2 q1 e1 u1 x1 x2 e1 u1 q1=e1 x1 x2 e1 u1 q1 q1’ 1 x1 x2 q1 e1 u1 1 x1 x2 q1 e1 u1 q1’ 1 Vid återgång till 00 uppstår ”kapplöpning” förbjudet tillstånd (kan inte finnas...) Sekvensnät
Latch (låskrets) x1 R=Reset x2 S=Set q1 q1 kan ettställas eller nollställas för att därefter behålla värdet. Kopplingen är ett ”minneselement” och kallas SR-latch. x1 x2 e1 u1 q1=e1 x1 R=Reset x1 x2 e1 u1 q1 q1’ 1 - x2 S=Set q1 Sekvensnät
SR-latch S R Q Q Q’ Q’ S R Alternativa realiseringar Funktionstabell Symbol S R Q+ Q 1 * Asynkront minneselement Sekvensnät
Grindad SR-latch R Q CP R Q’ S S CP Q Q+=Q Symbol S R Q+ Q 1 * Q 1 * Sekvensnät
Master-Slave SR-latch Symbol R Ändringen i Q kommer alltid vid en negativ flank hos CP. Signalen fördröjs (halv klockcykel) S CP QM Q Sekvensnät
Flanktriggade SR-vippor Funktions-tabell S R Q+ Q 1 * Exitations-tabell Q Q+ S R - 1 CP Synkront minneselement Sekvensnät
Flanktriggad D-vippa D D’ CP Q D Q CP Q Q’ D CP D Q+ 1 Q Q+ D 1 Funktions-tabell D Q CP Q Q’ D CP D Q+ 1 Exitations-tabell D Q Q+ D 1 D’ CP Q Sekvensnät
D-vippa med asynkron Set/Reset Då SR=11 (Q+=Q) fungerar vippan som en ordinär D-vippa Om SR=01, ettställs Q asynkront (väntar EJ på flank...) Om SR=10, nollställs Q asynkront Vi säger att S och R ingångarna är ”aktivt låga” 1D C1 S R 1D C1 S R 1 Q4 Q4’ Q3 Q3’ Q2 Q2’ Q1 Q1’ D4 D3 D2 D1 CP Clear’ Exempel på användning: 4-bitars REGISTER med RESET-funktion Sekvensnät
D-vippa med ”Load Enable” C1 S R 2D 1C2 S R G1 G & CP Styrsignalen G (”Gate”) kan användas för att ”strypa” klockpulsen. Då G=0 behåller vippan sitt värde oavsett vad som finns på D-ingången Sekvensnät
Flanktriggad JK-vippa Flanktriggad SR-vippa & C1 1J 1K J 1S Q CP C1 K & Q’ 1R Funktions-tabell Exitations-tabell J K Q+ Q 1 Q’ Q Q+ J K - 1 Sekvensnät
Flanktriggad T-vippa (”toggle”) C1 1T CP Q Q’ T C1 1J 1K CP Q Q’ T Funktions-tabell Exitations-tabell Funktions-tabell J K Q+ Q 1 Q’ T Q+ Q 1 Q’ Q Q+ T 1 Sekvensnät
Sammanfattning av vippor Funktions-tabell Exitations-tabell Funktions-tabell Exitations-tabell CP S R Q Q’ S R Q+ Q 1 * Q Q+ S R - 1 Q Q’ D CP D Q+ 1 Q Q+ D 1 Funktions-tabell Exitations-tabell Funktions-tabell Exitations-tabell C1 1J 1K J K Q+ Q 1 Q’ Q Q+ J K - 1 C1 1T CP Q Q’ T J Q T Q+ Q 1 Q’ Q Q+ T 1 CP Q’ K Sekvensnät
Sammanfattning Vi har klarat av: Hur fungerar en SR-latch? Hur konstrueras JK-, D- och T-vippor? Funktionstabeller och excitationstabeller ..och ska nu titta närmre på några viktiga tillämpningar Register som minneselement Konstruktion av synkrona räknare med D- och T-vippor Analys av synkrona räknare Sekvensnät
8-bitars minnesregister D0-7, Din Q0-7, Dut 2D 1C2 G1 CP LD D0 D1 D2 D3 D4 D5 D6 D7 Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7 2D 1C2 S R G1 2D 1C2 G1 Utgå från känd D-vippa, ta bort asynkrona ingångar och Q’... Packa ihop 8 likadana med gemensam CP resp G... Sekvensnät
Dataöverföring, register och bussar En överföring åt gången... Sekvensnät
Snabbare, dyrare... Samtidiga överföringar till samtliga register... Sekvensnät
Kan utgångarna kopplas samman? Sekvensnät
Kortslutning... Sekvensnät
Transmissionsgrind (”three-state”) x e f Z 1 Sekvensnät
Register med ”three-state” utgång Tre beteckningar: CP: Clock Pulse, kretsens klockingång. LDR: Load Enable R, styrsignal för att kunna ladda register R OER: Output Enable R, styrsignal för att överföra innehållet i R till utgången. Sekvensnät
Register med gemensam buss Sekvensnät
Exempel: (R)→A OER 1 LDA 2 CP 3 buss regA 4 regR Sekvensnät
Konstruktion av Räknare Vi använder vippor för att konstruera räknare Maximalt antal tillstånd (”räknarvärden”) bestäms av antalet vippor T0 1T T1 Tn Q0 1T 1T Q1 Qn CP C1 CP C1 CP C1 Q0’ Q1’ Qn’ Qi utgör nätets utsignaler, ”räknarvärdet” Maximal räknarsekvens blir 0 .. (2n-1) Kallas ”modulo 2n-räknare” Sekvensnät
Exempel, 2-bitars räknare, ”0,1,2,3,1,2,3...” med T-vippor Metod: Q är utsignal, hur bestämma T? C1 1T CP Q1 Q1’ T1 Q0 Q0’ T0 Q1Q0 00 01 10 11 Exitations-tabell Q1 Q0 T1 T0 Q1+ Q0+ ? 1 Q Q+ T 1 Q1 Q0 T1 T0 Q1+ Q0+ 1 Sekvensnät
Q och T bestämmer Q+... Q0 Q0 T1 T0 1 1 Q1 Q1 Q1 Q0 T1 T0 Q1+ Q0+ 1 T1 CP Q1 Q1’ T1 Q0 Q0’ T0 Q1 Q0 T1 T0 Q1+ Q0+ 1 Q och T bestämmer Q+... 1 Q1 Q0 T1 1 Q1 Q0 T0 Sekvensnät
Q0 T1 T0 1 Q1 T1 = Q0 T0 = Q0’ +Q1’ 1 T1 T0 Q1 Q0 1T C1 Q1’ Q0’ CP Q1 Q0 T1 T0 T1 = Q0 T0 = Q0’ +Q1’ C1 1T Q1 Q1’ T1 CP Q0 Q0’ T0 1 Sekvensnät
Analys av räknare Givet en ”räknarkoppling” bestäm dess räknesekvens Vi illustrerar metoden genom att analysera den räknare vi nyss konstruerat. 1. Bestäm vippornas insignaler... C1 1T Q1 Q1’ T1 CP Q0 Q0’ T0 1 T1 = Q0 T0 = Q0’ +Q1’ Sekvensnät
2. För varje möjligt tillstånd, dvs 2n, där n är antalet vippor, bestäm Q+, med ledning av Q och T.... C1 1T Q1 Q1’ T1 CP Q0 Q0’ T0 1 T1 = Q0 T0 = Q0’ +Q1’ Q1 Q0 1 T1 1 T0 1 Q1+ Q0+ 1 Sekvensnät
3. Redovisa resultatet i form av en tillståndsgraf... Q1 Q0 T1 T0 Q1+ Q0+ 1 Q Q+ 1 2 3 Q1Q0 00 01 10 11 Sekvensnät