Flip-flop adalah susunan gerbang logika yang menjaga keluaran tetap sta-bil walaupun masukan sudah tidak aktif. Keluaran flip-flop ditentukan oleh nilai masukan dan juga nilai keluaran sebelumnya, sehingga unit logika kom-binasional tidak cukup untuk menangani hal ini. Flip-flop dapat digunakan untuk menyimpan informasi bit tunggal, dan berlaku sebagai pembangun memori komputer.

Model klasik dari FSM
Jika kedua masukan pada gerbang NOR dua masukan bernilai 1, maka keluarannya akan 0, selain itu keluarannya akan 1. Seperti dibahas pada bab sebelumnya, waktu yang diperlukan untuk menghasilkan keluaran dari masukan gerbang logika tidaklah seketika tetapi sebesar yang merupakan waktu perambatan melalui gerbang logika. Waktu tunda ini kadang-kadang dimunculkan sebagai rangkaian tunda untuk keperluan analisis seperti gambar di bawah ini. Waktu tunda ini secara normal tidak dimunculkan tetapi tetap ada.

Gerbang NOR dengan rangkaian tunda
Waktu perambatan melalui gerbang NOR mempengaruhi operasi flip- flop. Perhatikan flip-flop set-reset (S-R) pada Gambar 4.3, yang berisi ger-bang NOR yang saling silang. Jika kita isikan 1 pad S, maka Q^ akan bernilai 0 setelah waktu tunda Δt , yang menyebabkan Q bernilai 1 (dianggap R bernilai 0) setelah waktu tunda 2Δ t . Akibatnya adalah selama penggalan waktu tertentu ada waktu singkat sebesar Δt yang Q dan Q^ bernilai 0, yang secara logis tidak dibenarkan, tetapi kondisi ini dapat diperbaiki dengan konfigurasi tuan-hamba (master-slave) yang akan kita bahas nanti. Jika kemudian S diisi dengan 0, maka Q tetap, sampai nilai R beranjak menjadi 1. Dengan demikian flip-flop S-R dapat menyimpan nilai bit tunggal dan dapat berlaku sebagai elemen memori paling dasar.

Gambar 4.3: Flip-flop S-R dengan NOR
Ada banyak cara untuk menyusun rangkaian sebuah flip-flop S-R. Penggunaan gerbang NOR yang saling silang untuk flip-flop S-R adalah hanya salah satu cara. Dua gerbang NAND yang dihubungkan saling silang juga dapat menghasilkan flip-flop S-R, dengan nilai S = R = 1 mengakibatkan keluaran tidak berubah. Dengan menggunakan teorema DeMorgan kita dapat mengubah gerbang NOR dalam flip-flop S-R menjadi gerbang AND seperti dalam Gambar 4.4. Dengan penggeseran gelembung, maka gerbang AND dapat diubah menjadi gerbang NAND. Penggeseran gelembung pada S dan R mengakibatkan pertukaran label S dan R.

Gambar 4.4: Flip-flop S-R dengan NAND
SR Flip-Flop Berdetak
Perlu diketahui bahwa masukan ke flip-flop S-R dapat berasal dari keluaran rangkaian lain, dalam bentuk rangkaian logika berjenjang. Hal ini biasa terjadi pada rangkaian logika konvensional. Masalahnya adalah transisi dapat terjadi pada waktu yang tidak diinginkan.
Perhatikan rangkaian pada Gambar 4.5. Jika sinyal A,B, dan C semuanya berubah dari keadaan 0 menjadi 1, maka sinyal C akan mencapai gerbang XOR sebelum A dan B keluar dari gerbang AND. Akibatnya nilai S akan 1 walaupun sebentar sampai keluaran dari gerbang AND sudah mantap dan dioperasian XOR dengan C. Jika nilai 1 pada S bertahan cukup lama maka akan mengakibatkan nilai yang tersimpan dalam flip-flop bisa berubah.

Gambar 4.5 Rangkaian yang mengandung hazard
Jika keadaan akhir dari flip-flop sensitif terhadap kedatangan sinyal maka dapat menimbulkan glitch, yang sebenarnya merupakan keadaan atau keluran yang tidak diinginkan. Rangkaian yang dapat menghasilkan glitch disebut rangkaian yang mengandung hazard.
Untuk menyelaraskan pengendalian terhadap rangkaian yang tergantung pada keadaan (misalnya flip-flop) maka digunakanlah detak (clock) yang akan mengaktifkan rangkaian dalam selang waktu tertentu secara serentak. Rangkaian detak menghasilkan sinyal 1 dan 0 bergantian terus menerus dengan periode waktu yang tetap sehingga membentuk gelombang kotak seperti Gambar 4.6. Waktu yang diperlukan detak untuk naik, turun dan kemudian mulai naik lagi disebut waktu siklus atau periode. Gelombang kotak yang ditampilkan pada gambar tersebut adalah bentuk gelombang detak ideal. Dalam kenyataannya, gelombang tersebut tidak berbentuk persegi tetapi membulat karena perlu waktu untuk menjadi tinggi dan rendah, tidak berlangsung seketika.

Gambar 4.6 Detak yang berupa gelombang kotak
Kecepatan detak berkebalikan dengan waktu siklus. Untuk waktu siklus sebesar 25 ns/siklus berarti kecepatannya adalah 1/25 siklus/ns, yang sama dengan 40.000.000 siklus per detik atau 40 MHz.
Kita dapat menggunakan sinyal detak untuk menghilangkan hazard dengan membuat flip-flop S-R berdetak, yang dapat dilihat pada Gambar 4.7. Simbol CLK berarti clock atau detak. Sekarang S dan R tidak dapat mengubah keadaan hingga detak bernilai tinggi. Dengan demikian S dan R dibuat mantap dahulu pada posisi detak rendah, baru kemudian detak menjadi tinggi dan nilai yang stabil akan tersimpan dalam flip-flop.

Gambar 4.7 Flip-flop S-R berdetaka