REGISTER DAN COUNTER
www.st3telkom.ac.id
Register • Register adalah rangkaian yang tersusun dari satu atau beberapa flip-flop yang digabungkan menjadi satu. • Flip-Flop disebut juga sebagai register 1 bit. • Jadi untuk menyimpan 4 bit data, register harus terdiri dari 4 buah flip-flop. • Register selain digunakan sebagai penyimpan data, juga sering digunakan sebagai Counter dan operasi bilangan.
Untuk menyimpan data pada register, dapat dilakukan dengan dua cara : 1.
Disimpan secara sejajar (Parallel In) : Pada cara ini semua bagian register atau masing-masing flip-flop di isi (dipicu) pada saat yang bersamaan.
2.
Disimpan secara seri (Serial In) : Pada cara ini, data dimasukkan bit demi bit mulai dari flipflop yang paling ujung (dapat dari kiri atau dari kanan), dan digeser sampai semuanya terisi. Bila data digeser dari kanan kekiri disebut “Register geser kiri” (Shift Left Register), sebaliknya bila data digeser dari kiri kekanan disebut “Register geser kanan” (Shift Right Register).
Seperti pada penyimpanan data, untuk mengeluarkan data juga dapat dilakukan dengan dua cara : 1. Dikeluarkan secara sejajar (Parallel Out) 2. Dikeluarkan secara seri (Serial Out)
Sehingga Register dapat dibagi atas: 1. 2. 3. 4.
Parallel In – Parallel Out (PIPO) Serial In – Serial Out (SISO) Parallel In – Serial Out (PISO) Serial In – Parallel Out (SIPO)
Parallel In - Parallel Out (PIPO) Perhatikan gambar berikut:
A, B, C, dan D adalah sinyal masukan. Saat clock (pemicu) diaktifkan (Logika 1),maka data yang ada akan dikeluarkan secara bersamasama ke Q3, Q2, Q1, dan Q0. Saat clock kembali tidak dipicu (Logika 0), maka apapun masukannya, keluaran Q akan tetap.
Serial In – Serial Out (SISO) Perhatikan Gambar berikut :
Saat sinyal clock diberikan pertama kali, data dari Si masuk ke flip-flop A, pada saat clock kedua, data dari flip-flop A masuk ke flip- flop B, demikian seterusnya, sampai keluar ke So. Jadi pada register SISO untuk membaca data pertama kali dibutuhkan jumlah clock yang sama banyak dengan jumlah flip-flop yang ada pada register (dalam hal ini adalah empat).
Parallel In – Serial Out (PISO)
Serial In – Parallel Out (SIPO)
Counter • Counter (pencacah) merupakan register yang mampu menghitung jumlah pulsa detak yang masuk melalui masukan detakannya. • Pencacah terdiri dari flip-flop yang diserikan dimana keadaan arus keluaranya ditahan sampai ada clock . • Pencacah dapat dibagi menjadi dua tipe, yaitu : Synchronous dan Asynchonous, dimana keduanya dibedakan dengan bagaimana cara diclock.
• Pencacah Asynchonous didisain dengan menggunakan flip-flop pada keadaan toggle. • Flip-flop JK atau D dapat dibuat kedalam keadaan toggle. • Flip-flop JK dapat dibuat dalam keadaan toggle dengan menghubungkan kedua input J dan K pada logika 1(high). • Sedangkan untuk flip-flop tipe D, dapat dibuat dalam keadaan toggle dengan menghubungkan keluaran Q’ kembali ke input.
• Pencacah asynchonous bekerja dengan mengkaskade seri flip-flop dalam keadaan toggle secara bersamaan. Keluaran tiap-tiap flip-flop digunakan sebagai clock untuk flip-flop berikutnya secara berurutan. Hal ini menyebabkan flip-flop berubah secara asynchonous, seperti gelombang. • Pencacah asynchonous lebih dikenal sebagai pencacah ripple.
Ripple Counter High
Q3
J3
Q2
J2
Q1
J1
Q0
J0
Q3
K3
Q2
K2
Q1
K1
Q0
K0 CLR
Gambar di atas memperlihatkan sebuah ripple counter (pencacah riak) yang dibangun dengan flip-flop JK. Karena masukan J dan K terpasang pada tingkat tegangan tinggi, maka setiap flip-flop akan mengalami toggle ketika masukan detak menerima tepi negatif pulsa.
Cara Kerja Ripple Counter CLK Q0 Jika CLR rendah, semua flip-flop akan direset dan menghasilkan kata digital Q3Q2Q1Q0 = 0000. Jika CLR kembali pada logika tinggi, pencacah telah siap melaksanakan operasi. Karena flip-flop paling kanan menerima pulsa detak secara langsung, maka Q0 akan mengalami toggle sekali setiap tepi negatif pulsa detak.
Selanjutnya CLK Q0 Q1 Q2 Q3
Jika Q0 berubah dari 1 menjadi 0, maka flip-flop Q1 akan menerima sebuah tepi negatif pulsa dan menimbulkan toggle pada keluaran Q1. Demikian selanjutnya jika sebuah flip-flop mengalami reset menjadi nol, maka akan menimbulkan toggle pada flip-flop berikutnya.
Controlled Ripple Counter COUNT
Q3
J3
Q2
J2
Q1
J1
Q0
J0
Q3
K3
Q2
K2
Q1
K1
Q0
K0
Sebuah pencacah riak terkendali hanya akan mencacah pulsa-pulsa detak. Sinyal COUNT mengendalikan operasi pencacah.
Cara Kerja Controlled Ripple Counter • Jika COUNT rendah, masukan J dan K akan menjadi rendah. Ini menyebabkan semua flip-flop tertahan dalam keadaan sebelumnya meskipun pulsa-pulsa detak terus memasuki pencacah. • Bila COUNT tinggi, masukan J dan K ikut menjadi tinggi. Dalam hal ini pencacah akan bekerja sebagaimana telah dibahas sebelumnya, yakni setiap tepi negatif dari pulsa detak akan menambah 1 hitungan pada pencacah.
Synchronous Counter Q3
J3
Q2
J2
Q1
J1
Q0
J0
Q3
K3
Q2
K2
Q1
K1
Q0
K0
Tinggi
CLR
Pada pencacah riak, waktu tunda propagasi total adalah ntp. Ini menyebabkan pencacah riak terlalu lambat untuk beberapa pemakaian tertentu. Guna mengatasi masalah tersebut, dapat menggunakan sebuah synchronous counter (pencacah sinkron).
Cara Kerja Synchronous Counter • CLR yang rendah akan mereset pencacah menjadi Q = 0000. • Ketika sinyal CLR kembali pada keadaan tinggi, pencacah siap beroperasi. • Tepi positif dari pulsa detak yang pertama akan mengisi Q0 untuk menghasilkan Q = 0001. • Pada saat tibanya tepi positif yang kedua, Q1 dan Q0 secara serempak mengalami toggle dan kata keluaran menjadi Q = 0010. • Tepi positif ketiga menaikkan cacahan menjadi Q = 0011, dst. Keuntungan dari pencacah sinkron terletak pada kecepatannya. • Pencacah ini hanya membutuhkan satu kali waktu tunda propagasi dalam menghasilkan cacahan biner yang tepat sesudah tibanya tepi sinyal detak.
Controlled Synchronous Counter COUNT
Q3
J3
Q2
J2
Q1
J1
Q0
J0
Q3
K3
Q2
K2
Q1
K1
Q0
K0
CLR
Pada pencacah sinkron terkendali, sinyal COUNT yang rendah membuat semua flip-flop menjadi tidak aktif. Bila COUNT dijadikan tinggi, rangkaian akan berfungsi sebagai pencacah sinkron. Artinya, setiap tepi positif dari detak akan menaikkan satu angka cacahan.
Ring Counter Q3
D3
CLR
Q2
D2
CLR
Q1
D1
Q0
PR
D0
CLR CLR
Sebuah pencacah lingkar (putar) tidak mencacah dengan bilangan biner tapi bekerja dengan kata-kata yang hanya memiliki satu bit tinggi. Pencacah ini berguna untuk mengendalikan suatu deretan operasi, karena kita dapat mengaktifkan pada setiap saat hanya satu di antara beberapa piranti yang ada.
Cara Kerja Ring Counter • Jika CLR rendah dan kemudian menjadi tinggi lagi, maka kata keluaran pertama adalah Q = 0001. • Tepi pulsa detak yang pertama menggeser bit paling kiri (MSB) ke dalam posisi paling kanan (LSB). Bit-bit yang lain bergeser ke kiri satu posisi sehingga keluaran menjadi Q = 0010. • Tepi positif yang kedua menyebabkan operasi pemutaran ke kiri berikutnya, sehingga keluaran menjadi Q = 0100. • Demikian seterusnya hingga tepi positif ke empat memulai siklus yang sama, karena pemutaran ke kiri menghasilkan 0001.
Mod-10 Counter Tinggi Q3
J3
Q2
J2
Q1
J1
Q0
J0 CLK
Q3
K3
Q2
K2
Q1
K1
Q0
K0 CLR
Sebuah pencacah modulus-10 mencacah dari 0000 hingga 1001. Pada pulsa detak ke sepuluh, pencacah membangkitkan sinyal CLR-nya sendiri dan angka pencacahan melompat kembali ke 0000. Pencacah mod-10 dikenal juga sebagai rangkaian pembagi-10.
Down Counter PRE Tinggi Q3
J3
Q2
J2
Q1
J1
Q0
J0 CLK
Q3
K3
Q2
K2
Q1
K1
Q0
K0
Sebuah pencacah turun dapat mencacah dari 1111 sampai 0000. Setiap flip-flop mengalami toggle ketika bila masukan sinyal detak berubah dari 1 menjadi 0. Masukan ini ekivalen dengan perubahan dari 0 ke 1 pada keluaran yang tidak dikomplemen kan. Misalnya, q1 mengalami toggle bila Q0 berubah dari dari 1 menjadi 0; dan ini ekivalen dengan Q0 yang berubah dari 0 menjadi 1.
Cara Kerja Down Counter • Mula-mula preset PRE berupa sinyal rendah dan menghasilkan kata keluaran Q = 1111. • Pada waktu PRE menjadi tinggi, operasi akan dimulai. Perhatikan bahwa Q0 mengalami satu kali toggle pada setiap pulsa detak. • Pulsa detak yang pertama hanya menghasilkan satu toggle negatif (perubahan dari 1 ke 0) dalam Q0 sehingga kata keluaran menjadi Q = 1110. • Pulsa detak yang kedua menghasilkan satu toggle positif dalam Q0, dan mengakibatkan toggle satu toggle negatif pada Q1. Hasilnya adalah Q = 1101.
Selanjutnya • Pada pulsa detak yang ketiga, Q0 mengalami toggle negatif, dan Q = 1100. Pada pulsa detak yang ke-empat, Q0 mengalami toggle positif, Q1 mengalami toggle positif dan Q2 mengalami toggle negatif. Hasilnya adalah Q = 1011. Demikian seterusnya hingga Q = 0000. • Pada pulsa detak berikutnya, seluruh flip-flop mengalami poggle positif dan menghasilkan angka cacahan Q = 1111. Selanjutnya siklus yang sama akan berulang kembali.
Up-Down Counter ATAS Q2
Q1
Q2
Q0
Q1
Q0
Tinggi Q3
J3
Q2
J2
Q1
J1
Q0
J0 CLK
Q3
K3
Q2
K2
Q1
K1
Q0
K0 CLR
Keluaran-keluaran flip-flop dihubungkan dengan jaringan pengarah pengemudi (steering network) Sebuah sinyal kendali UP menghasilkan baik pencacahan turun maupun pencacahan naik.
Cara Kerja Up-Down Counter Jika sinyal UP merupakan tingkat logika rendah, Q2, Q1 dan Q0 akan disalurkan ke masukanmasukan detak, dan ini akan menghasilkan pencacahan turun. Di pihak lain, apabila UP tinggi, Q2, Q1 dan Q0 akan menggerakkan masukan-masukan detak dan rangkaian menjadi sebuah pencacah naik.
Presetable Counter P3
P2
P1
P0
LOAD
Tinggi Q3
J3
Q2
J2
Q1
J1
Q0
J0 CLK
Q3
K3
Q2
K2
Q1
K1
Q0
K0 CLR
Dalam sebuah presetable counter, pencacahan dapat dimulai dari bilangan yang lebih besar daripada nol. Pencacahan dimulai dari bilangan P3P2P1P0, sebuah bilangan antara 0000 dan 1111.
Cara Kerja Presetable Counter • Bila LOAD rendah, semua gerbang NAND memiliki keluaran tinggi. Karena itu masukan preset dan clear dari semua flipflop menjadi tak-aktif. Dalam hal ini rangkaian melakukan pencacahan naik. Masukan-masukan data dari P3 sampai P1 sama sekali tidak memberikan pengaruh karena gerbanggerbang NAND tidak aktif. • Pada waktu LOAD tinggi, masukan-masukan data dan komplemennya akan lolos melaluigerbang-gerbang NAND dan melakukan preset terhadap pencacah sehingga keluarannya menjadi P3P2P1P0. • Ketika LOAD kembali rendah, rangkaian kembali berfungsi sebagai pencacah.