r. Oniga István IGITÁLIS TEHNIKA 9
Regiszterek A regiszterek több bites tárolók hálózata S-R, J-K,, vagy kapuzott tárolókból készülnek Fontosabb alkalmazások: adatok tárolása és adatmozgatás Funkcióik: adatok beírása Párhuzamos beírás PARALELL input soros párhuzamos adatok tárolása Soros beírás SERIAL input REGISZTER Soros kiolvasás SERIAL output adatok kiolvasása soros Párhuzamos kiolvasás párhuzamos PARALELL output
A regiszterek főbb típusai: Regiszterek típusai ata in ata in ata out ata out ata in ata out Serial in/shift right/serial out Serial in/shift left/serial out Parallel in/serial out ata in ata in ata out ata out Serial in/parallel out Parallel in/parallel out Rotate right Rotate left
Puffer regiszterek Átmeneti tárolók Párhuzamos beírás Párhuzamos kiolvasás Kapuzott vagy élvezérelt tárolókat használunk Latch - kapuzott tárolókkal 3 2 1 0 k 3 2 1 0
Puffer regiszterek module p_register (input k, input [3:0], output reg [3:0] ); always @(posedge k) begin <= ; end endmodule
Shift regiszterek Shift regiszterek vagy léptető regiszterek Soros be- és/vagy kimenet Minden órajel a bemeneti bitet a következő flip-flop-nak küldi SI 0 1 2 3 k k k k k k SI 1-1-0-1-0 1 1 0 1 0 0 1 1 0 1 0 1 1 1 0 1 2 1 1 0 3 1 1
Shift regiszterek Serial data input FF0 FF1 FF2 FF3 FF4 Serial 0 0 1 1 2 2 3 3 4 4 data output 1 1 1 1 1 1 LK 1011 Serial data input FF0 FF1 FF2 0 0 1 1 2 2 3 3 FF3 X 01 0 1 10 1 0 1 LK
Shift regiszterek module v_shift_registers_1 (input, SI, output SO); reg [3:0] tmp; always @(posedge ) begin tmp <= tmp << 1; tmp[0] <= SI; end assign SO = tmp[3]; endmodule
8 bites S-P shift regiszter Soros/párhuzamos átalakítás 74H164A MOS 8 bites S-P shift regiszter ÉS-ezet bemenetek: A és B, egyik az adat bemenet a másik lehet engedélyező bemenet V cc alacsony szinttel vezérelt aszinkron törlés LR LK Serial inputs (9) (8) A B (1) (2) R R R R R R R R S S S S S S S S (3) (4) (5) (6) (10) (11) (12) (13) 0 1 2 3 4 5 6 7
P-S shift regiszter A léptető regiszterek párhuzamos/soros adat átalakításhoz használhatok 0 1 2 3 SHIFT/LOA G 1 G 5 G 2 G 6 G 3 G 7 G 4 0 1 2 3 Serial data out LK FF0 FF1 FF2 FF3 0 1 2 3 4 5 6 7 74H165A MOS 8 bites P-S shift regiszter SH/L = LOW Aszinkron párhuzamos betöltés SH/L = HIGH Szinkron léptetés SH/L SER LK INH LK (1) (10) (15) (2) (11) (12) (13) (14) (3) (4) (5) (6) SRG 8 (9) (7) 7 7
P-S shift regiszter 0 1 2 3 SHIFT/LOA G 1 G 5 G 2 G 6 G 3 G 7 G 4 Serial 0 1 2 3 data out LK FF0 FF1 FF2 FF3 module v_shift_registers_ps (input LK, SHIFT_LOA, input [3:0], output PO); reg [3:0] always @(posedge ) begin if (SHIFT_LOA ==1'b0) <= ; else <= {[2:0], SI}; end assign SO = [3]; endmodule
Univerzális shift regiszterek Az univerzális shift regiszterek képesek az adatok soros és párhuzamos fogadására, párhuzamos megjelenítésére, az adatok két irányban léptetésére az adatok törlésére 74H194A MOS univerzális shift regiszter 0 1 2 3 LR S 0 S 1 SR SER SL SER LK (1) (9) (10) (2) (7) (11) (3) (4) (5) (6) SRG 4 (15) (14) (13) (12) S1 S2 Üzemmód 0 0 szinkron törlés 0 1 léptetés balra 1 0 léptetés jobbra 1 1 párhuzamos beírás 0 1 2 3
SN7495 univerzális shift regiszterek Léptető impulzusok Soros bement, léptetés jobbra Soros bement, léptetés balra Üzemmód M= 0 léptetés jobbra M= 1 léptetés balra Kimenetek
Univerzális shift regiszterek Verilog kódolása
Gyűrűs számlálók Egyszerű visszacsatolással ellátott shift regiszterek N-ből 1 számláló Johnson számláló FF0 FF1 FF2 FF3 3 0 0 1 1 2 2 3 3 N-ből 1 számláló utolsó kimenet visszacsatolva az első bementre Órajel ciklus 3 2 1 0 LK alaphelyzet 1 0 0 0 1 órajel 0 0 0 1 2 órajel 0 0 1 0 3 órajel 0 1 0 0 4 órajel 1 0 0 0 n tároló n-ig számol ( 2 n ) a kimenteket nem kell dekódolni szinkron számolás nagyobb számolási sebesség
Gyűrűs számlálók Verilog kódolása
Johnson számlálók utolsó kimenet negáltja visszacsatolva az első bementre n tároló 2n-ig számol ( 2 n ) a kimenteket dekódolni kell FF0 0 FF1 1 FF2 0 1 2 2 3 FF3 3 3 3 LK 0 1 2 3 0 1 2 3 4 5 6 7 0 0 0 0 1 0 0 0 1 1 0 0 1 1 1 0 1 1 1 1 0 1 1 1 0 0 1 1 0 0 0 1 LK k 1 2 3 4 5 6 7 8 0 1 2 3
Johnson számlálók utolsó kimenet negáltja visszacsatolva az első bementre n tároló 2n-ig számol ( 2 n ) a kimenteket dekódolni kell FF0 0 0 1 1 2 2 3 FF1 FF2 FF3 3 3 3 LK 0 1 2 3 0 1 2 3 4 5 6 7 0 0 0 0 1 0 0 0 1 1 0 0 1 1 1 0 1 1 1 1 0 1 1 1 0 0 1 1 0 0 0 1 LK k 1 2 3 4 5 6 7 8 0 1 2 3
Johnson számlálók Verilog kódolása FF0 FF1 FF2 FF3 0 1 2 2 3 0 1 3 3 3 LK
Johnson számlálók A B E 0 0 0 0 0 0 1 0 0 0 0 1 1 1 0 0 0 2 1 1 1 0 0 3 1 1 1 1 0 4 1 1 1 1 1 5 0 1 1 1 1 6 0 0 1 1 1 7 0 0 0 1 1 8 0 0 0 0 1 9 http://www.play-hookey.com/digital/counters/johnson_counter.html
Shift regiszter alkalmazások igitális jelek késleltetése Menyi az jel késleltetése egy 40MHz órajeles 8-bites soros be/ki menetű shift regiszteren. ata in A B SRG 8 7 ata out Egy órajel késleltetése 1/40 MHz = 25 ns LK 40 MHz 7 25 ns Összesitet késleltetés 8 x 25 ns = 200 ns LK ata in ata out t d = 200 ns Floyd, igital Fundamentals, 10 th ed
Shift regiszter alkalmazások ata bus UART (Universal Asynchronous Receiver Transmitter) Buffers - egy soros-párhuzamos átalakító - egy párhuzamos-soros átalakító Transmitter data register Receiver data register LK Transmitter shift register LK Receiver shift register Serial data out Serial data in Start Bit (0) 7 6 5 4 3 2 1 Stop Bits (1) 0 t Floyd, igital Fundamentals, 10 th ed
Billentyűzet encoder Power on LOA SH/L +V Ring counter LK (5 khz) 0 1 2 3 J K SRG 4 74H195 4 5 6 7 J K SRG 4 74H195 +V 0 1 2 3 4 5 6 7 - Gyűrűs számláló. Két 74H195 shift regiszter - 8-bit gyűrűs számláló, alaphelyzetbe egy 0 betöltve. lock inhibit 1 2 3 4 5 6 7 8 ROW encoder 74H147 1 2 4 1 2 3 4 5 6 7 8 OLUMN encoder 74H147 1 2 4 Switch closure 0 1 2 3 4 5 Key code register 74H174 0 1 2 3 4 5 Floyd, igital Fundamentals, 10 th ed One-shots To ROM