Apa itu flip flop?

25

Tampaknya ada sejumlah definisi yang berbeda dari sandal jepit dan kait di sana, beberapa di antaranya bertentangan.

Buku teks Ilmu Komputer untuk kursus yang saya ajarkan mungkin adalah yang paling membingungkan (pada kenyataannya saya kurang percaya pada buku itu karena memang salah di beberapa tempat).

Saya merasa nyaman dengan cara kerja latch (SR, gated SR, gated D), dan perbedaan antara level triggered dan edge triggered devices, setidaknya dalam hal gerbang logika dan diagram timing. Namun, saya masih mencari definisi singkat dari flip flop dan kait.

Inilah yang saya yakini sejauh ini:

"Flip flop adalah perangkat bi-stable yang dipicu tepi yang dapat menyimpan 1 bit".

"Sebuah kait adalah perangkat bi-stable yang dipicu level yang dapat menyimpan 1 bit."

Saya telah melihat posting sebelumnya di situs web ini tentang hal ini dan, meskipun mencerahkan, saya masih mencari sesuatu yang pasti.

Pemahaman saya saat ini, yang ingin saya periksa, ada di diagram di bawah ini ...

Berdampingan adalah apa yang saya pahami adalah dua implementasi dari level yang dipicu latch D berpagar.

Di bawah ini adalah detektor tepi positif, pada saat singkat ketika gerbang NOT belum menanggapi input perubahan dari rendah ke tinggi, yaitu tepi naik (merah adalah 1 biru adalah 0).

Pada diagram terakhir, pendeteksi tepi telah dipasang pada kait D yang bertanggal dan inilah yang menjadikannya flip-flop.

masukkan deskripsi gambar di sini

Apakah diagram terakhir benar-benar flip flop, atau apakah itu hanya selot?

Dan mengapa kita perlu versi master slave yang diberikan, bahwa perangkat ini jauh lebih sederhana?

Drummy
sumber
1
@DanielTork mengapa tidak menjawabnya?
Es
10
Di Australia dan Selandia Baru, mereka adalah bentuk sepatu beratap terbuka yang sering dipakai di pantai atau di luar di cuaca cerah. ;)
KyranF
3
Di AS juga. Tapi kami dulu menyebutnya thong, tapi itu merujuk pada sesuatu yang berbeda sekarang ;-)
Dijeda sampai pemberitahuan lebih lanjut.
1
Sekarang saya ingin melihat diagram rangkaian yang digambar dengan sandal yang dikenal sebagai sandal jepit ...
keshlam
1
@ Imibis keluar dari sini ya kiwi busuk!
KyranF

Jawaban:

11

Saya telah banyak memikirkan definisi ini hari ini.

Seperti yang ditunjukkan orang lain, arti tepatnya akan bervariasi. Selain itu, Anda mungkin akan melihat lebih banyak orang yang salah, bahkan di situs ini, daripada benar. Saya tidak peduli apa kata wikipedia!

Namun secara umum:

  • Flip flop akan mengubah status outputnya paling banyak sekali per siklus clock.
  • Kait akan mengubah statusnya sebanyak transisi data selama jendela transparansi.

Selain itu,

  • Flip flop sangat aman. Hampir-bukti bodoh. Untuk alasan ini alat sintesis biasanya menggunakan sandal jepit. Tapi, mereka lebih lambat dari kait (dan menggunakan lebih banyak daya).
  • Kait lebih sulit digunakan dengan benar. Tapi, mereka lebih cepat daripada sandal jepit (dan lebih kecil). Jadi, perancang sirkuit kustom akan sering "menyebarkan flip flop" di blok digital mereka (kait di kedua ujung dengan fase berlawanan) untuk memeras beberapa picoseconds keluar dari busur waktu yang buruk. Ini ditunjukkan di bagian bawah posting.

Flip flop biasanya ditandai oleh topologi master-slave. Ini adalah dua digabungkan (mungkin ada logika di antara), fase yang berlawanan kait kembali ke belakang (kadang-kadang dalam industri disebut L1 / L2).

Ini berarti flip flop secara inheren terdiri dari dua elemen memori: satu untuk menahan selama siklus rendah dan satu untuk menahan selama siklus tinggi.

Kait hanya elemen memori tunggal (kait SR, kait D, kait JK). Hanya karena Anda memperkenalkan jam ke gerbang aliran data ke dalam elemen memori tidak membuatnya menjadi flip flop, menurut saya (meskipun itu dapat membuatnya bertindak seperti: yaitu semakin banyak tepi yang dipicu). Itu hanya membuatnya transparan untuk jumlah waktu tertentu.

Yang ditunjukkan di bawah ini adalah pembuatan flip flop sejati dari dua kait SR (perhatikan jam fase berlawanan).

benar d ff

Dan flip-flop sejati lainnya (ini adalah gaya yang paling umum di VLSI) dari dua D-latch (gaya gerbang transmisi). Sekali lagi perhatikan jam fase berlawanan :

benar flip flop gaya tg

Jika Anda menggerakkan jam ke kait cukup cepat, itu mulai menyerupai perilaku flip flop (kait pulsa). Hal ini biasa terjadi pada desain datapath kecepatan tinggi karena penundaan yang lebih kecil dari D-> Out dan Clk-> Out, selain waktu setup yang lebih baik yang diberikan (waktu penahanan juga harus meningkat, harga yang harus dibayar rendah) dengan transparansi melalui durasi denyut nadi. Apakah ini membuatnya gagal? Tidak juga, tapi itu pasti terlihat seperti satu!

Namun, ini jauh lebih sulit untuk dijamin bekerja. Anda harus memeriksa semua sudut proses (NMOS cepat, PMOS lambat, tutup kawat tinggi, r kawat rendah; sebagai contoh satu) dan semua tegangan (tegangan rendah menyebabkan masalah) bahwa pulsa dari detektor tepi Anda tetap cukup lebar untuk benar-benar terbuka kait dan izinkan data masuk.

Untuk pertanyaan spesifik Anda, mengapa ini dianggap sebagai pengait pulsa alih-alih flip flop, itu karena Anda benar-benar hanya memiliki elemen penyimpanan bit sensitif tingkat tunggal. Meskipun nadi sempit, ia tidak membentuk sistem kunci-dan-bendungan yang menciptakan kegagalan.

Berikut adalah artikel yang menggambarkan kait pulsa yang sangat mirip dengan pertanyaan Anda. Kutipan terkait: "Jika gelombang jam pulsa memicu kait, kait disinkronkan dengan jam yang mirip dengan flip-flop yang dipicu tepi karena tepi naik dan turun dari jam pulsa hampir identik dalam hal waktu."

EDIT Untuk beberapa kejelasan, saya menyertakan grafik desain berbasis latch. Ada kait L1 dan kait L2 dengan logika di antaranya. Ini adalah teknik yang dapat mengurangi penundaan, karena kait memiliki waktu tunda yang lebih rendah daripada flip flop. Flip flop "tersebar terpisah" dan logika diletakkan di tengah. Sekarang, Anda menyimpan penundaan gerbang pasangan (dibandingkan dengan kegagalan di kedua ujung)!

desain berbasis latch

jbord39
sumber
"Dicirikan oleh topologi master-slave" - ​​yang terdengar lebih seperti detail implementasi, daripada karakteristik perilaku yang menentukan. Biasanya, flip-flop (menurut definisi Anda) adalah memori bit tunggal yang kebetulan dipicu oleh edge. Dalam praktiknya, sihir implementasi yang diperlukan untuk memperkirakan pemicu tepi membutuhkan elemen penyimpanan kedua!
Oliver Charlesworth
1
@OliverCharlesworth: Ya, ini adalah detail implementasi. Serta detail fisik, perilaku, struktural, dan topologi. Anda tidak bisa hanya memanggil kait flip flop karena sepertinya ada kait. Anda mungkin bisa lolos begitu saja, tetapi untuk menggunakannya seutuhnya Anda perlu tahu bedanya. Jika Anda merentangkan flip flop, Anda memiliki dua kait terpisah dari fase berlawanan. Anda dapat memasukkan logika di tengah. Ini lebih cepat daripada memiliki flip flop di kedua ujungnya. Ini juga memungkinkan "peminjaman waktu" melalui batas siklus yang merupakan konsep yang sangat penting untuk desain kecepatan tinggi.
jbord39
Berikut adalah beberapa gambar DFF yang lebih berguna yang mungkin membantu, lihat yang terakhir. DFF yang diposting di atas membingungkan karena menempel pada fase yang berlawanan dari jam (yaitu kait induk di tepi naik, kait budak di jatuh). electronics.stackexchange.com/a/84247/42957
mrbean
Akan menyenangkan untuk melihat contoh dari flip-flop flip-flop ("TSPC" DFF) fase tunggal yang dipicu di sini.
mrbean
Berikut ini adalah powerpoint yang bagus: bwrcs.eecs.berkeley.edu/Classes/icdesign/ee241_s07/Lectures/…
mrbean
1

Banyak orang akan menyebut perangkat jam sebagai "sandal jepit" dan perangkat non-jam sebagai kait. Kembali ketika saya mempelajarinya, itu "sandal jepit clocked" dan "sandal jepit". Entah dapat dipicu tepi.

Ada ambiguitas yang cukup bahwa ketika itu penting, bergantung pada lembar data number part m, dan diagram waktu, dan bukan deskripsi kata.

Scott Seidman
sumber
Lalu GTO-SCR juga flip-flop?
Bradman175
1

Terima kasih untuk semua orang yang telah menjawab pertanyaan saya. Seperti yang diharapkan, ada beberapa ketidaksepakatan. Sayangnya semantik seringkali lebih penting daripada memahami ketika datang ke ujian. Jika saya perlu berdebat dengan papan ujian karena salah menandai kertas ujian siswa Ilmu Komputer A Level (dan saya telah melakukannya di masa lalu), saya ingin berada di posisi yang kuat. Saya pikir saya akan berbagi dengan Anda beberapa halaman buku teks kursus A Level resmi.

Diagram pertama adalah kait SR rendah aktif. Buku itu menyebutnya flip-flop.

Dalam teks, buku itu mengatakan "Dengan menggunakan dua flip-flop kita dapat membuat sirkuit yang disebut flip-flop D-Type yang menggunakan sirkuit yang dikendalikan jam untuk mengontrol output, menunda dengan satu pulsa clock. D berarti penundaan . " Teks ini tampaknya merujuk pada konfigurasi master / slave. Diagram kedua (gambar 14.2) diberi label sebagai flip-flop tipe-D. Ini sebenarnya adalah kait D aktif berpagar tinggi.

Tidak sangat membantu!

Saya akan puas dengan "Flip flop biasanya ditandai oleh topologi master-slave." seperti yang disarankan jbord39, dengan peringatan bahwa istilah flip-flop sering digunakan untuk mengartikan latch yang dipicu edge, dan terkadang hanya sembarang latch. Saya pikir ini adalah dari mana buku datang, meskipun tidak sampai di sana dengan meyakinkan.

Sekali lagi terima kasih untuk semuanya.

masukkan deskripsi gambar di sini masukkan deskripsi gambar di sini

Drummy
sumber
2
Ya buku itu menyesatkan. Plus, D singkatan Data, bukan delay ... lol Bagian terpenting adalah memahami cara kerjanya dan tidak terlalu terjebak dalam semantik. Saya menjelaskan semantiknya seperti yang dijelaskan kepada saya di perusahaan tempat saya bekerja. Itu bisa bervariasi dengan area dan tingkat pengalaman (terutama relatif terhadap internal gerbang logika, yang saya kerjakan).
jbord39
Saya harus setuju dengan jbord39. Seperti yang saya tunjukkan dalam jawaban saya, bahwa input E hanya memungkinkan data memengaruhi output. Namun Anda memiliki buku teks yang berisi informasi yang salah. Sebenarnya cukup menyebalkan.
Bradman175
1

Flip flop berbeda dari kait. Keduanya adalah sirkuit bi-stable, tetapi mereka sebenarnya adalah dua hal yang berbeda.

The latch memiliki mengaktifkan pin dan mendengarkan dengan input data / input hanya ketika pin ini tinggi. Ketika rendah, kait membeku dan menghafal keadaannya. Sekarang bahkan Anda memanipulasi input, itu tidak akan bereaksi.

The flip flop berisi pin jam sebaliknya, yang bereaksi hanya pada mengubah pulsa (level shift). Pikirkan gelombang persegi. Waktu transien antara mati dan hidup; mati dan hidup adalah waktu di mana sirkuit bereaksi terhadap sinyal input. Hanya saat itulah tersedia untuk berubah, bukan ketika pin stabil dan sepenuhnya aktif.

Flip flop bereaksi waktu

Perhatikan bahwa garis hijau menunjukkan periode yang didengarkannya dan garis merah periode saat tidak. Kait memungkinkan input hanya selama periode yang ditunjukkan oleh garis merah paling atas.

SR yang berdiri sendiri bukanlah sirkuit yang layak dalam praktiknya.

Kredit ke jbord39 untuk menunjukkan kesalahan. Gambar diambil dari radio-elctronics.com dan diedit.

Daniel Tork
sumber
Flip flop bukanlah kait, tetapi dapat dibangun dari dua kait fase yang berlawanan dari belakang ke belakang.
jbord39
Saya mengedit jawaban @ jbord39
Daniel Tork
Terima kasih, @ Peter Mortensen. Saya tidak melihat itu.
Daniel Tork
0

Istilah yang Anda gunakan dalam pertanyaan Anda adalah 100% sesuai dengan apa yang saya dengar digunakan dalam konteks desain IC analog. Kait memiliki sinyal aktif level-sensitif, sedangkan sandal jepit memiliki sinyal aktif sensitif-tepi yang disebut 'jam'. Saya perhatikan beberapa tempat online atau di beberapa buku yang tampaknya menggunakan istilah flip flop untuk kedua jenis, yang bisa masuk akal jika Anda hanya berpikir tentang keadaan sirkuit "flip flopping" antara dua titik stabil, tetapi setiap kali desainer berbicara tentang Di sirkuit tempat saya bekerja, kaitnya peka terhadap level dan sandal jepit (atau biasanya juga "jepit") peka terhadap tepi.

Tentang pertanyaan Anda yang lain tentang apakah akan merancang flip flop sebagai kait dengan detektor tepi vs sepasang kait master-slave. Either way dapat bekerja, dengan asumsi ada cukup banyak keterlambatan pendeteksi tepi Anda. Kait akan memiliki sejumlah waktu aktif minimum. Saya menduga itu hanya lebih sulit untuk membuat flip flop kecepatan tinggi menggunakan teknik detektor tepi, dan waktu setup / tahan mungkin lebih bervariasi selama proses / tegangan / suhu.

Pasang kembali Monica
sumber
Saya bertanya-tanya mengapa saya jarang melihat jepit diimplementasikan dengan pasangan master / slave dengan ambang logika non-tumpang tindih (sehingga tegangan input di bawah VDD / 4 akan memungkinkan master, dan tegangan di atas VDD / 2 akan memungkinkan budak. Jika beberapa jepit bertingkat adalah makan perlahan-naik atau sinyal input berisik, perilaku akan diandalkan disediakan hanya itu, pada sisi kenaikan, tidak satupun dari mereka melihat tegangan di bawah Vdd / 4 setelah setiap telah melihat tegangan di atas VDD / 2.
supercat
@supercat Anda berbicara tentang histeresis?
Cort Ammon - Reinstate Monica
@CortAmmon: Tidak - sesuatu yang lebih baik. Jika dua sandal jepit dengan pemicu Schmidt independen mengalir, operasi yang salah dapat terjadi jika kegagalan pertama mengenali tepi jam dan menyebarkan input melalui ke output sebelum kegagalan kedua mengenali tepi jamnya. Jika sandal jepit menggunakan ambang input terpisah, kegagalan kedua akan menangkap inputnya ketika jam naik di atas ambang bawah, tetapi output kegagalan pertama tidak akan berubah sampai jam mencapai ambang atas.
supercat
0

(Lewati sampai akhir jika Anda ingin tahu apakah sirkuit terakhir OP adalah flip-flop atau latch.)

Dalam istilah dasar, Flip-Flop adalah susunan gerbang logika (atau komponen) yang memungkinkan penguncian 2 status bersama dengan pin jam yang memungkinkan perubahan status ini.

Sekarang di sini adalah perbedaan antara Flip-flop dan kait. Kait tidak sinkron sedangkan Flip-flop sinkron.

  • Kait asinkron tidak memerlukan pin pembaruan, yang biasanya disebut CLKpin (kependekan dari jam) di flip-flop. Yang mereka pedulikan adalah jika inputnya dalam kondisi tertentu, baik HIGHatauLOW . Ketika kombinasi tertentu dari HIGHs dan LOWs dihasut dalam input, saat itulah sirkuit memutuskan untuk melakukan suatu tindakan, dan hasil yang Anda inginkan dikembalikan "segera". Ada 4 tindakan yang mungkin dalam kait.

    1. Tidak melakukan apapun
    2. Setel QkeHIGH
    3. Setel QkeLOW
    4. Keadaan tidak valid (seharusnya membalikkan nilai Q)

    Catatan yang Q'tergantung pada Q.

Contohnya adalah kait SR yang menunjukkan semua 4 tindakan yang mungkin dilakukan kait: Kait RS

  1. Ketika Sadalah LOWdan Radalah LOW, tidak ada perubahan.
  2. Ketika Sadalah HIGHdan Radalah LOW, Qdiatur untuk HIGH.
  3. Ketika Sadalah LOWdan Radalah HIGH, Qdiatur untuk LOW.
  4. Ketika Sadalah HIGHdan Radalah HIGH, Qterbalik, di sebuah "tak terduga" tingkat yang cepat. Status ini tidak valid.
  • Flip-flop sinkron memungkinkan Anda mengatur nilai ke pin data. Ini berarti bahwa itu hanya peduli tentang keadaan pin ini. Namun sirkuit belum memutuskan untuk melakukan tindakan apa pun terhadap output. Anda memiliki CLKpin seperti yang disebutkan di atas. Ketika CLKpin berubah status (baik dari LOWke HIGH, sebaliknya atau bahkan keduanya), pin data "ditangkap" dan flip-flop melakukan tindakan berdasarkan kombinasi HIGHs dan LOWs dari data yang diambil dari pin data. Ada dua tindakan untuk CLKpin.
  1. Tidak melakukan apapun
  2. "Tangkap" data dari pin data dan lakukan tindakan pada output berdasarkan pada nilai pin data pada saat tertentu.

Sekali lagi ada 4 tindakan yang mungkin dilakukan sirkuit pada output.

  1. Tidak melakukan apapun
  2. Set QkeHIGH
  3. Set QkeLOW
  4. Balikkan nilai Q(sekarang valid karena hanya dilakukan sekali)

INI BUKAN FLIP-FLOP:

masukkan deskripsi gambar di sini

Tapi mengapa Anda bertanya? BahwaE pin bukanlah pin jam. Pin jam membiarkan sirkuit menganalisis informasi dari pin data SEKALI tempat informasi itu dikirim sebagai instruksi untuk melakukan tindakan spesifik pada output. Namun, aktifkan pin seperti ini memungkinkan rangkaian menganalisis informasi dari pin data selama itu tetap tinggi dan terus-menerus mengatur nilai-nilai output. Jadi itu adalah gerendel. (Thx to jbord39 untuk menunjukkan kesalahan saya).

Jadi Flip-flop seperti kait, kecuali Anda memerlukan langkah "konfirmasi" tambahan, yaitu CLK pin.

Jadi, apakah sirkuit terakhir dari pertanyaan OP itu flip-flop? Coba tahan C pada posisi tinggi dan lihat apakah output berubah ketika Anda mengubah nilai D. Jika output berubah, itu seharusnya disebut mengaktifkan dan sebagai gantinya. Tetapi jika output tidak berubah (dalam hal ini masalahnya), maka itu adalah flip-flop.

Gambar diambil dari Wikipedia.

Bradman175
sumber
Tidak, banyak kait memiliki pin jam. nxp.com/documents/data_sheet/74HC_HCT373.pdf sebenarnya sirkuit yang Anda tunjukkan adalah kait bukan flip flop ...
jbord39
@ jbord39? Pin jam apa? Dan mengaktifkan pin berbeda dengan pin jam.
Bradman175
@ jbord39 dan whoops Anda benar. Dua sirkuit terbawah adalah kait. Harap pertimbangkan kembali jawaban saya.
Bradman175
Biarkan saya melihat apakah saya mengerti. Flip flop memeriksa setiap input dan mengaktifkan output dan latch memeriksa jam dan bertindak jika itu adalah 1, mengeluarkan nilai D. Jadi SR latch adalah flip-flop karena tidak clock, tetapi kait D adalah kait yang benar.
Daniel Tork
@DanielTork Masalahnya adalah Anda punya beberapa "jam" dan jam tidak bisa berganti-ganti pin dan juga berfungsi sebagai pin data.
Bradman175