Mengapa kita clock Flip Flops?


19

Saya mencoba memahami Flip Flops & Latches. Saya membaca dari buku Digital Logic oleh Morris Mano. Satu hal yang saya tidak bisa mengerti adalah mengapa kita menggunakan sandal jepit?

Saya mengerti mengapa kita perlu 'diaktifkan' atau kait berpagar. Tapi apa gunanya jam? Saya tidak bisa mengerti ini. Mengapa kita tidak bisa mengaktifkan sandal jepit yang diperlukan & memberi mereka masukan? Saat kami mengubah input, output berubah. Mengapa kita harus mengubah output dengan naik atau turunnya clock edge (jika flipflop dipicu edge)?

Setiap bantuan mengenai hal ini sangat kami hargai.

Jawaban:


18

Salah satu alasan kami menggunakan sandal jepit sehingga tidak ada kekacauan ketika output dari sandal jepit dimasukkan melalui beberapa fungsi logika dan kembali ke input mereka sendiri.

Jika output flip-flop digunakan untuk menghitung inputnya, maka diperlukan kita untuk memiliki perilaku tertib: untuk mencegah keadaan flip-flop berubah hingga output (dan karenanya input) stabil.

Pencatatan waktu ini memungkinkan kita untuk membangun komputer, yang merupakan mesin status: mereka memiliki status saat ini, dan menghitung status berikutnya berdasarkan kondisi saat ini dan beberapa input.

Sebagai contoh, misalkan kita ingin membangun sebuah mesin yang "menghitung" jumlah 4 bit yang meningkat dari 0000 hingga 1111, dan kemudian membungkus sekitar hingga 0000 dan terus berjalan. Kita dapat melakukan ini dengan menggunakan register 4 bit (yang merupakan bank dari empat sandal jepit D). Output dari register diletakkan melalui fungsi logika kombinatorial yang menambahkan 1 (penambah empat bit) untuk menghasilkan nilai yang bertambah. Nilai ini kemudian diumpankan kembali ke register. Sekarang, kapan pun ujung jam tiba, register akan menerima nilai baru yang satu plus nilai sebelumnya. Kami memiliki perilaku tertib dan dapat diprediksi yang melangkah melalui angka-angka biner tanpa kesalahan.

Perilaku clocking juga berguna dalam situasi lain. Terkadang sebuah sirkuit memiliki banyak input, yang tidak stabil pada saat bersamaan. Jika output dihasilkan secara instan dari input, maka akan kacau sampai input stabil. Jika kita tidak ingin sirkuit lain yang bergantung pada output untuk melihat kekacauan, kita membuat sirkuit itu clock. Kami mengizinkan sejumlah besar waktu untuk input untuk menyelesaikan dan kemudian kami menunjukkan ke sirkuit untuk menerima nilai.

Clocking juga secara inheren merupakan bagian dari semantik dari beberapa jenis sandal jepit. Flip flop tidak dapat ditentukan tanpa input jam. Tanpa input jam, ia akan mengabaikan input D-nya (tidak berguna!), Atau cukup menyalin input setiap saat (bukan flip-flop!) RS flip-flop tidak memiliki jam, tetapi menggunakan dua input untuk mengontrol keadaan yang memungkinkan input untuk menjadi "self clocking": yaitu menjadi input, serta pemicu untuk perubahan negara. Semua sandal jepit memerlukan beberapa kombinasi input yang memprogram status mereka, dan beberapa kombinasi input memungkinkan mereka mempertahankan statusnya. Jika semua kombinasi input memicu pemrograman, atau jika semua kombinasi input diabaikan (status dipertahankan), itu tidak berguna. Sekarang apa itu jam? Jam adalah spesial, input khusus yang membedakan apakah input lain diabaikan, atau apakah mereka memprogram perangkat. Ini berguna untuk memiliki ini sebagai input terpisah, daripada untuk dikodekan di antara beberapa input.


Masuk akal ketika Anda menjelaskan kebutuhan pencatatan jam kerja untuk counter atau mesin negara. Jika tidak ada jam sama sekali, maka penghitung hanya terus mengubah nilainya (& reset) & mulai tanpa batas? dan sama dengan mesin negara. (Dari apa yang saya baca dari wiki, counter hanya jenis mesin negara, karena negara sedang diubah). Tetapi bahkan dengan register juga kita menggunakan jam, dalam hal itu mengapa? Saya juga ingin tahu apakah ada flipflops (dapat) digunakan dalam aplikasi apa pun tanpa jam?
avi

Sekarang datang ke titik stabilitas, jika output terus berubah maka perangkat lain yang membutuhkan output flipflops tidak akan dapat menerimanya dengan benar dan mungkin ada perilaku yang tidak menentu. Jadi, apakah masalah stabilitas ini? Sekarang saya mencoba memahami konsep stabilitas. Terutama dua paragraf ini yang Anda jelaskan: "untuk mencegah kondisi flip-flop berubah hingga output (dan karenanya input) stabil." "Kadang-kadang sirkuit memiliki banyak input, yang tidak menstabilkan pada saat yang sama"
avi

7

Flip flop tepi-naik dapat dibayangkan sebagai dua kait kembali ke belakang, salah satunya diaktifkan segera setelah sinyal clock menjadi rendah dan tetap diaktifkan sampai menjadi tinggi; yang kedua diaktifkan segera setelah jam menjadi tinggi dan tetap diaktifkan sampai jam rendah. Memiliki momen singkat di mana flip flop tidak diaktifkan berarti bahwa output flip flop dapat dengan aman diumpankan kembali ke inputnya melalui logika kombinatorial. Perubahan output pada satu siklus clock dapat menyebabkan input berubah, tetapi perubahan input tidak akan berpengaruh apa pun sampai siklus clock berikutnya.

Secara historis, dulu cukup umum bagi perangkat digital untuk menggunakan apa yang disebut "jam dua fase", yang memiliki dua kabel jam yang tinggi untuk interval yang tidak tumpang tindih selama setiap siklus. Semua kait dibagi menjadi dua kelompok, dengan satu jam mengendalikan kelompok kait pertama dan jam lainnya mengendalikan yang kedua; dalam kebanyakan kasus, output dari masing-masing kelompok hanya digunakan untuk menghitung input dari yang lain. Setiap siklus clock terdiri dari satu atau lebih pulsa pada jam pertama, setidaknya satu di antaranya harus memenuhi spesifikasi panjang minimum, dan satu atau lebih pulsa pada yang kedua (persyaratan yang sama). Satu keuntungan dari desain semacam itu adalah bahwa ia bisa sangat toleran terhadap kemiringan jam asalkan waktu mati antara fase jam melebihi jumlah kemiringan jam.

Pendekatan yang lebih "modern" adalah membuat setiap elemen kait (register) menerima kawat jam tunggal dan pada dasarnya menghasilkan jam internal non-tumpang tindih sendiri. Ini mensyaratkan bahwa kemiringan jam maksimum tidak melebihi waktu propagasi minimum antara register, tetapi alat modern memungkinkan untuk mengontrol kemiringan jam lebih tepat daripada yang mungkin terjadi dalam beberapa dekade terakhir. Lebih lanjut, dalam banyak kasus, pencatatan clock satu fase membuat desain lebih sederhana dengan menghilangkan kebutuhan untuk mempartisi logika menjadi dua kelompok.


2

Kita semua tahu bahwa sirkuit nyata digital akan mengandung BANYAK gerbang. Sinyal mungkin harus mengambil beberapa jalur untuk sampai ke gerbang terakhir yang memberikan output. Sinyal membutuhkan sejumlah waktu untuk "merambat" di jalur berbeda yang mencapai gerbang terakhir. Waktu yang diperlukan untuk menyebarkan tidak sama pada jalur yang berbeda. Ini mengarah pada apa yang kita sebut gangguan. Gangguan terjadi karena beberapa jalur lebih pendek dari yang lain dan ketika sinyal mencapai gerbang terakhir lebih awal mengambil jalur pendek itu efeknya segera sebelum sinyal lain di jalur yang lebih panjang mencapai gerbang. Output yang dihasilkan untuk sementara ini adalah salah dan dapat menjadi berbahaya dalam sirkuit digital yang mengarah ke penyebaran kesalahan.

Sekarang saya sampai pada mengapa kita membutuhkan jam. Jam pada dasarnya "menyinkronkan" sirkuit ke sinyal eksternal tunggal. Anggap itu sebagai irama bahwa sirkuit disetel untuk menyukai musik. Hal-hal terjadi selaras dengan jam ini, tidak ada jam = sirkuit dinonaktifkan. Dengan menggunakan jam, kami memastikan bahwa berbagai bagian sirkuit bekerja secara serempak pada saat yang bersamaan . Dengan cara ini perilaku sirkuit lebih dapat diprediksi. Ini juga kurang dipengaruhi oleh perubahan keterlambatan propagasi oleh suhu dan variasi pembuatan. Ini mencakup jam.

Flip Flops adalah elemen rangkaian digital yang mengambil tindakan (mengubah outputnya sebagai respons terhadap input di port input) ketika "CLOCK EDGE" muncul. Clock edge adalah ketika sinyal jam bergerak dari 0 ke 1 atau dari 1 menjadi 0. Cukup gambar gelombang jam dan Anda akan tahu apa yang saya maksud. Ada kelompok elemen lain yang disebut kait, output kait berubah untuk mencerminkan input ketika sinyal kontrol tertentu berada pada LEVEL logika tertentu dan jangan menunggu tepi, sinyal kontrol ini disebut ENABLE in latch. Kait dapat bekerja ketika aktif adalah 1 dan mengubah outputnya atau ketika diaktifkan adalah 0. Itu tergantung pada jenis kait. Sebaliknya Flips flops sebenarnya hanya melakukan sesuatuketika mereka diberi makan oleh EDGE jam. Harap perhatikan perbedaan antara kait dan sandal jepit, dan ingat bahwa kait terhubung bersama-sama untuk membuat flip flop sehingga memungkinkan hanya menyebabkan flip flop untuk melakukan sesuatu ketika tepi jam terjadi. Dalam hal ini kami menamai sinyal Aktifkan ke Jam, dan itu lebih masuk akal juga. Jam untuk manusia berjalan tick tick tick, flip flop melakukan sesuatu hanya pada tick dan NOTHING di antara ticks.

Jika masih belum jelas, Anda akan mendapat manfaat dengan menonton kuliah nptelhrd di youtube dari Indian Institute of Technology on Digital Circuits.


"Dengan menggunakan jam, kami memastikan bahwa bagian-bagian berbeda dari sirkuit bekerja secara serempak pada saat yang sama." - bagaimana kita melakukan ini? Saya akan memeriksa videonya.
avi

Harap dicatat bahwa sandal jepit adalah perangkat yang mengubah outputnya untuk mencerminkan input di tepi naik (atau tepi jatuh jika itu adalah tepi negatif yang dipicu flip flop) dari sinyal kontrol untuk tepi positif dipicu flip flop. Sinyal kontrol ini disebut jam karena sifatnya yang periodik, lebih mirip detak-detak jam dinding kita. Jika ada sinyal clock, flip flop akan melakukan sesuatu, jika tidak input tidak akan membuat apa pun terjadi pada output. Harap ketahui perbedaan dan kesamaan antara kait dan sandal jepit dari tahap awal juga agar tidak bingung.
quantum231

1

Ada hal-hal seperti penghitung asinkron. Ini dia: - masukkan deskripsi gambar di sini

Ini juga dikenal sebagai penghitung riak karena ketika pulsa input tiba di input (mengubah keadaan flip-flop ke-1), perubahan status membutuhkan waktu yang lama untuk beriak melalui sisa-sisa flip-flop. Selama jangka waktu yang kecil tapi terbatas output ABCD akan memiliki nilai transien yang tidak dapat diprediksi sampai flip-flop akhir telah diselesaikan.

Jika output ABCD kemudian dimasukkan melalui flip-flop tipe D dan di-clock bersama-sama, beberapa saat setelah periode penyelesaian, versi ABCD "yang lebih baik" ini tidak akan pernah "menampilkan" perilaku sementara ini.

Untuk menghindari hal ini, insinyur terkadang menggunakan sirkuit jam sinkronisasi. Maaf input dari kiri yang satu ini dan peta Q0 ke Q3 ke ABC dan D pada diagram sebelumnya: -

masukkan deskripsi gambar di sini

Ini sedikit lebih kompleks tetapi lebih cepat dan memiliki bagian lebih sedikit dibandingkan dengan penghitung asynch dengan sekelompok tipe D pada output.


Nah, dengan penghitung itu masuk akal. Tetapi apakah ada aplikasi di mana sandal jepit digunakan tanpa jam? atau flipflops tidak pernah bisa digunakan tanpa jam?
avi

@ Iavi Contoh pertama (penghitung async) tidak harus dianggap mengambil input dari "jam". Bisa jadi pulsa yang berasal dari sensor magnetik mencari untuk melihat seberapa cepat poros berputar. Akan ada "master" jam pada sistem yang "gerbang" hitungan setiap detik tetapi "sinyal" masuk ke konter belum tentu jam. Output dari komparator analog dapat "clock" a "1" ke output dari tipe D dan output dari komparator analog lain dapat mengatur ulang tipe D - ini dapat digunakan untuk menghasilkan sinyal yang berasal dari bentuk gelombang analog - tidak ada jam karena itu
Andy alias

Saya akan menganggap perilaku penghitung riak sebagai yang kuantitatif dan bukan secara kualitatif berbeda dari penghitung sinkron. Output dari kedua penghitung akan menjadi tidak valid beberapa periode waktu setelah pulsa clock tiba, dan akan menjadi valid lagi beberapa periode waktu setelah itu. Penghitung sinkron akan memiliki jendela yang lebih kecil di mana outputnya tidak valid, tetapi dalam hal apa pun jendela tidak akan nol. Perlu juga dicatat bahwa kecepatan penghitungan maksimum dengan penghitung seperti yang ditarik akan dibatasi oleh panjang penghitung. Orang bisa menghindari batasan itu ...
supercat

... dengan memiliki rantai pembawa mulai dari misalnya bit keempat, menghasilkan "dan" dari tiga bit pertama, dan kemudian memiliki setiap bit hanya membalik jika input dari rantai pembawa tinggi, bit 2 tinggi, bit 1 tinggi, dan bit 0 tinggi. Bahkan jika tujuh pulsa hitung tiba pada waktu yang diperlukan untuk sinyal untuk merambat melalui rantai pembawa, itu tidak menjadi masalah karena rantai pembawa akan mulai merambatkan carry ketika menghitung xxx111 ... 111000 tercapai tetapi outputnya tidak masalah sampai pulsa jam setelah xxx111 ... 111111 tercapai.
supercat

Penghitung riak mereka sederhana namun membenci di dunia nyata sirkuit digital tempat saya bekerja. Senang mengetahui bahwa mereka ada tetapi sangat kecil kemungkinannya Anda akan diizinkan menggunakannya untuk proyek-proyek nyata. Itu selalu dapat digunakan dalam latihan sepele di mana sifat "asinkron" mereka tidak menjadi masalah.
quantum231

0

Karena lebih mudah untuk merancang sistem sinkron (sistem sinkron berarti kumpulan logika kombinatorial dan sandal jepit clocked) daripada sistem asinkron, dan sistem sinkron lebih dapat diandalkan. Namun, desain mesin asinkron layak untuk dipelajari karena dapat menghitung output lebih cepat dan dengan daya lebih rendah daripada sistem sinkron.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.