igitalteknik F2 Några speciella automater: register räknare Synkronisering av insignaler igitalteknik F2 bild
Register Ett register är en degenererad automat som i allt väsentligt används för att lagra data. Register Nästa tillstånd för ett register bestäms av de data som skall lagras i registret. Analys med tillståndstabeller och -diagram är därför inte meningsfull. Styrsignaler kan användas för att initiera laddning av nya data, låsning av gammal data, clear (nollställning) etc. Skiftregister kan också användas för databearbetning (skifta ett lagrat ord ett eller flera steg vänster eller höger). igitalteknik F2 bild 2
Register Ett 4-bitars register uppbyggt med fyra -vippor med delade klock- och clearsignaler Vi får en grupp minneselement som kan läsas/ skrivas som en enhet. 2 3 5 4 4 CLK CLR 3 2 7 Q3 Q3 Q2 Q2 Q Q Q Q 9 7 6 2 3 5 TTL 747 Quad -type FF with Clear igitalteknik F2 bild 3
Varianter av register Selektiv datalagring 8 7 4 3 8 7 4 3 CLK EN 7 6 5 4 3 2 377 Q7 Q6 Q5 Q4 Q3 Q2 Q Q 9 6 5 2 9 6 5 2 8 7 4 3 8 7 4 3 H G F E C B A 374 CLK Three-stateutgångar QH QG QF QE Q QC QB QA OE 9 6 5 2 9 6 5 2 74377 Octal -type FFs with input enable EN = "" och clk = "uppflank" för att skriva nya data i registret 74374 Octal -type FFs with output enable OE = "" placerar vippornas innehåll på utgångarna OE = "" --> hög impedans igitalteknik F2 bild 4
Registerfil: 4 5 2 3 4 3 2 5 RE RB RA WE WB WA 4 3 2 67 Q4 Q3 Q2 Q 6 7 9 Tvådimensionell array av vippor Adress används för att indeera ett visst ord Ordinnehållet kan läsas eller skrivas 7467: Kretsen innehåller 6 -vippor organiserade som fyra st fyrabitars ord. Separata enablesignaler för att styra läsning och skrivning Separata adresser för läsning och skrivning Gemensam in- respektive utgång för data 7467 44 Register File with Tri-state Outputs igitalteknik F2 bild 5
Skiftregister Minne och förmåga att skifta data mellan minneselementen \Reset Skiftriktning Q Q 2 Q 3 Q 4 Klock CLK CLK CLK CLK \Reset Shift Shift Shift Skifta från vänster minneselement till den högra grannen på varje uppflank i klocksignalen Koppla tillbaka utsignalen från minneselementet längst till höger till elementet längst till vänster igitalteknik F2 bild 6
Skiftregister En riktig komponent: Seriella och Parallella insignaler Seriella och Parallella utsignaler Valbar skiftriktning Seriell Indata: LSI, RSI Parallell Indata:, C, B, A Parallell Utdata: Q, QC, QB, QA Clearsignal Positivt flanktriggad komponent S,S väljer skiftfunktion: SS = : Parallell laddning synkront på uppflank SS = : Vänsterskift på uppflank. LSI ersätter element SS = : Högerskift på uppflank. RSI ersätter element A SS = : Låst tillstånd 7494 4-bit Universal Shift Register Implementeras med en multipleer på varje minneselement. igitalteknik F2 bild 7
Parallell --> seriell --> parallell Eempel: Synkron seriedatalänk - ett sätt att överföra information: 7 6 5 4 Clock Sändare S S LSI C B A RSI CLK CLR Q QC QB QA Mottagare S S 94 94 LSI C B A RSI CLK CLR Q QC QB QA 7 6 5 4 Parallell Indata 3 2 S S LSI C B A RSI CLK CLR 94 Q QC QB QA S S LSI C B A RSI CLK CLR 94 Q QC QB QA 3 2 Parallell Utdata Gemensam synkronisering Seriell överföring igitalteknik F2 bild 8
Räknare En räknare är en "degenererad" automat där tillståndet är den enda utsignalen Räknare: Genomlöper en förutbestämd sekvens av tillstånd där välingarna initieras av klocksignalen. Eempel: 3 bitars uppräknare:,,,,,,,,,... 3 bitars nedräknare:,,,,,,,,,... Alternativa sekvenser förekommer liksom möjlighet att väla mellan upp- och nedräkning, olika sekvenser etc. igitalteknik F2 bild 9
esign av räknare Vi använder samma procedur som kan användas för att konstruera godtyckliga automater. Räknare är enkla - vi har inget problem att bestämma vilket tillstånd som är nästa tillstånd. Eempel: 3-bitars binär uppräknare Q2 Q Q + + + Q2 Q Q igitalteknik F2 bild
esign av räknare Vi använder samma procedur som kan användas för att konstruera godtyckliga automater. Räknare är enkla - vi har inget problem att bestämma vilket tillstånd som är nästa tillstånd. Eempel: 3-bitars binär uppräknare Vi väljer T-vippor: Q2 Q Q + + + Q2 Q Q T2 T T igitalteknik F2 bild
esign av räknare K-diagram för T-funktionerna CB A T = Klockning på fallande flank! \Reset + T S Q CLK Q R QA T S Q CLK Q R QB T S Q CLK Q R QC CB A Count T = A Timingdiagram: CB A T2= AB \Reset Q C Q B Q A Count igitalteknik F2 bild 2
En mer komple räknarsekvens:,,,,,... Steg : Tag fram tillståndsdiagram och -tabell: esign av räknare Q2 Q Q Q2 + Q + Q + Observera don't caretillstånden! igitalteknik F2 bild 3
igitalteknik F2 bild 4 K Q2 Q Q Q2 Q Q + + + J2 K2 J J K esign av räknare En mer komple räknarsekvens:,,,,,... Steg : Tag fram tillståndsdiagram Steg 2: Vi väljer JK-vippor och -tabell:
Minimera nästa tillståndsfunktionerna: esign av räknare Q2Q Q Q2Q Q Q2Q Q J2= Q J= J=Q2'Q Q2Q Q Q2Q Q Q2Q Q K2= Q' K= Q + Q2 K= Q2 igitalteknik F2 bild 5
esign av räknare Logikschema: Count S J2 Q2 J S Q S J Q CLK Q2 CLK Q CLK Q K2R K R K R Timingdiagram: Count Q2 Q Q igitalteknik F2 bild 6
esign av räknare Problem: Vid start kan räknaren börja i vilket tillstånd som helst, även don't caretillstånden. Vad händer då?? Vi måste analysera implementationen...... dvs ta reda på vad som händer i don't caretillstånden. igitalteknik F2 bild 7
esign av räknare Problem: Vid start kan räknaren börja i vilket tillstånd som helst, även don't caretillstånden. Vad händer då? Analys av implementationen ger: Q2 Q Q + + + Q2 Q Q Slutsats: Räknaren genomlöper eventuellt något/några don't caretillstånd innan den följer avsedd sekvens. Allvarligt? et beror på... igitalteknik F2 bild 8
esign av räknare Några tips:. För att säkert få räknaren att fungera måste don't caretillstånden förr eller senare leda in i räknarsekvensen. 2. Preset och clear kan användas för att ställa en räknare i önskat tillstånd 3. Om räknaren inte får visa fel utsignaler om den startar i ett don't caretillstånd måste utsignalen kodas så att det ser ut som om räknaren räknar rätt. igitalteknik F2 bild 9
Asynkrona räknare...... ett till synes attraktivt alternativ till de synkrona räknarna Klock T Q T Q T Q A B C CLKQ CLKQ CLK Q Klocksignalen "ripplar" från vänster till höger En kombinatorisk krets som avkodar räknaren kan få glitchar på utsignalen Vipporna slår inte om samtidigt! igitalteknik F2 bild 2
Johnsonräknare S J Q CLK K Q R Q Q 2 Q 3 S S S J Q J Q J CLK CLK CLK K Q K Q K R R R Q Q Q 4 Shift 6 möjliga tillstånd, 8 av dem används. Shift en bit välar vid varje klockning. et ger glitchfri utsignal. Q Q 2 Q 3 Q 4 igitalteknik F2 bild 2
Räknare - 7463 7 9 2 6 5 4 3 P T C B A 63 CLK LOA CLR RCO Q QC QB QA 5 2 3 4 7463 Synkron 4-Bit Uppräknare Synkrona load- och clearingångar Positivt flanktriggade vippor Parallell laddning av data från, C, B, A P, T Enableingångar: båda måste vara aktiva (=) för att räknaren skall räkna. RCO: "Ripple Carry Output", aktiverad när räknaren nått "". Används för att kaskadkoppla flera räknare. 746: likartad funktion men asynkron load och clear igitalteknik F2 bild 22
Timing - 7463 CLR LOA A B C CLK P T Q A Q B Q C Q RCO 2 3 4 5 2 Clear Load Count Inhibit igitalteknik F2 bild 23
Kaskadkoppling av räknare Kaskadkoppling: RCO aktiveras när räknaren nått tillståndet Klock P RCO T 63 P 63 T Klock C B A H G FE P och T enable aktiveras av RCO och räknaren kan räkna upp ett steg. Nedströms räknare slår om från till Räknarens högsta klockfrekvens reduceras av detta (2) RCO = (3) Högra räknaren räknar upp () Vänstra räknaren = igitalteknik F2 bild 24
Att utnyttja synkron load Räknare med startoffset, räknarsekvens t e:,,,,,,,,,,... C B A Clock 6 3 P T R C O C L K Q Q Q Q C B A C B A L O A C L R Load C B A + + Load laddas när load = Använd RCO' för att initiera laddning av data å 7463 Load är synkron sker laddningen på klockans nästa uppflank. igitalteknik F2 bild 25
Att nyttja synkron clear Nollställning av räknaren: räknarsekvens t e:,,,...,,, CLR Avkoda ett tillstånd för att fastställa när räknaren skall nollställas C B A 6 3 P T R C C O L K Q Q Q Q C B A C B A L O A C L R Clearsignalen nollställer räknaren på klocksignalens uppflank igitalteknik F2 bild 26
Asynkron clear då? Byt ut räknaren mot en 746 med asynkron clear, i övrigt samma koppling: CLR Avkoda ett tillstånd för att fastställa när räknaren skall nollställas C B A 6 3 P T R C C O L K Q Q Q Q C B A C B A L O A C L R Clear nollställer räknaren omedelbart! igitalteknik F2 bild 27
Metastabilitet och asynkrona ingångar Termer och definitioner: Klockade synkrona kretsar: gemensam referenssignal, vanligen kallad klocka kretsen välar tillstånd på en bestämd klockflank Asynkrona kretsar: ingångar, tillstånd och utgångar välar oberoende av någon gemensam referenssignal RS-latchen är asynkron, - och J-vippor är synkrona Synkrona insignaler välar nivå endast på klockflanken Asynkrona insignaler påverkar kretsen omedelbart utan hänsyn till klockan igitalteknik F2 bild 28
Asynkrona insignaler......är farliga: å de påverkar kretsen omedelbart kan glitchar bli förödande, t e genom att vippornas setuptider inte kan hållas. Synkrona insignaler är därför att föredra! Ibland går det inte att undvika asynkrona insignaler, t e de som kommer från omgivande kretsar, clearsignaler etc. Vi måste kunna hantera dessa... igitalteknik F2 bild 29
Asynkrona insignaler Vad kan hända? In Q Q Clk Här håller vi inte setuptiden: In är en asynkron insignal kopplad till och (två -vippor). In välar nivå omedelbart före klockningen. En - vippa läser av In korrekt, den andra inte. etta kan leda till att en automat välar tillstånd längs pilar som inte finns i tillståndsdiagrammet! igitalteknik F2 bild 3
Metastabilitet När vippans insignal välar nivå omedelbart före klocksignalen kan vippan hamna i ett metastabilt tillstånd: varken eller Vippan kan i princip stanna i detta tillstånd hur länge som helst, även om detta är ytterst osannolikt i en verklig krets Logic et är sannolikt att vippan kommer att lämna det metastabila tillståndet och bli antingen eller Logic Time Ett minnesoscilloskop kan visa en bild av det metastabila tillståndets övergång till ett stabilt tillstånd igitalteknik F2 bild 3
Synkronisering av insignaler Sannolikheten för synkroniseringsfel kan aldrig minskas till men den kan reduceras: En krets med två -vippor är en standardlösning Minska klockfrekvensen detta ger synkroniseringskretsen mer tid att lämna ett metastabilt tillstånd använd snabbast möjliga kretsar till synkroniseringen detta minskar väntevärdet på tiden i metastabilt tillstånd (vipporna faller snabbare ned i ett stabilt tillstånd) Asynkron Insignal Q Q Clk Synkroniserad Insignal Synkront System igitalteknik F2 bild 32
Synkronisering av insignalen Hur fungerar kretsen? A B Q Q Clk Insignalen möter vippa A vid en godtycklig tidpunkt. Vi kan därför inte garantera något om setuptid för denna vippa. en kan komma i metastabilt tillstånd efter klockning. et metastabila tillståndet kan vara en klockperiod minus setuptiden för vippa B innan det blir problem med denna vippa: t r = t clk - t setup Sannolikheten för att vippa B skall komma i metastabilt tillstånd har därför reducerats. et var det som var meningen. igitalteknik F2 bild 33
Synkronisering av insignalen Varför räcker det inte med en vippa? (en andra sitter ju ändå i efterföljande automat). Vi kopplar samman synkroniseringskretsen med en automat: In Clk Q Q Net State ecoder State flip-flop t comb t setup en tid som atuomaten "tål" metastabilt tillstånd på ingången kan uttryckas som t = t - t - t, dvs nästa tillståndsavkodaren reducerar t r clk comb setup r I synkroniseringskretsen (mellan -vipporna) är t =! comb igitalteknik F2 bild 34
Synkronisering av insignalen Hur bra är kretsen? parametrar:. et beror på klockfrekvensen f [Hz], t r [ns] 2. et beror på hur snabbt insignalen välar a [cps] (changes per sec.) 3. et beror på vika vippor vi använder T [s], τ [ns] Vi kan beräkna ett värde på MTBF (Mean Time Between Failure): MTBF = (t r / τ) e T f a igitalteknik F2 bild 35
Synkronisering av insignalen Eempel: Vi har en automat som klockas med 2,5 MHz. En asynkron insignal välar nivå gånger per sekund. Signalen skall synkroniseras med standardkretsen uppbyggd med två -vippor (t comb = ). Beräkna MTBF. MTBF = A. Synkroniseringen sker med två 74LS74: t = 2 ns setup T =,4 s τ =,5 ns t r e = 8-2 = 6 ns (6 /,5) 6 6,4*2,5* ** (ca gång/2 tim) 3 = 47* s B. Synkroniseringen sker med två 74ALS74: t = 8 ns setup T = 6,5 µs τ =,34 ns t = 8-8 = 72 ns r (72 /,34) e MTBF = -6 6 6 6,5* *2,5* ** 76 (ca gång/ år) 83 = * s igitalteknik F2 bild 36
Synkronisering av insignalen Vad händer om frekvenserna ökar? Eempel: Vi har en automat som klockas med 5 MHz. En asynkron insignal välar nivå gånger per sekund. Signalen skall synkroniseras med standardkretsen uppbyggd med två -vippor (t = ). Beräkna MTBF. comb Synkroniseringen sker med två 74ALS74: t = ns setup T = 6,5 µs τ =,34 ns t = 2 - = ns r ( /,34) e MTBF = -6 6 6 6,5* *5* ** (ca var 5:e timme) 4 =,8* s igitalteknik F2 bild 37
Synkronisering av insignaler Förbättringar? Sänk klockfrekvensen i synkroniseringskretsen: Samma förutsättningar som föregående eempel men synkroniseringskretsen klockas nu med 25 MHz: Q Q t = ns setup T = 6,5 µs τ =,34 ns Q f/2 Hz t r = 4 - = 3 ns Clk f Hz (3 /,34) e MTBF = -6 6 6 6,5* *25* ** 3 =,3* s 2 (ca gång / år) igitalteknik F2 bild 38