Register
— Register adalah rangkaian logika yang digunakan untuk menyimpan data. Dengan kata lain, 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 :
- Disimpan secara sejajar (Parallel In) :
Pada cara ini semua bagian register atau masing-masing flip-flop di isi (dipicu) pada saat yang bersamaan.
- Disimpan secara seri (Serial In) :
Pada cara ini, data dimasukkan bit demi bit mulai dari flip-flop 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 :
- Dikeluarkan secara sejajar (Parallel Out)
- Dikeluarkan secara seri (Serial Out)
Sehingga Register dapat dibagi atas:
- 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 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.

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

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.

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

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

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

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.

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.

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 flip-flop menjadi tak-aktif. Dalam hal ini rangkaian melakukan pencacahan naik. Masukan-masukan data dari P3 sampai P1 sama sekali tidak memberikan pengaruh karena gerbang-gerbang 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.
ac85.files.wordpress.com/.../sd-pertemuan-13-register-dan-counter.p...