Mengapa saya tidak bisa membuat sandal jepit di simulator logika?
Saya telah bermain dengan beberapa simulator logika dan tidak mengerti mengapa sandal jepit tidak berfungsi. Saya mencoba menerapkan T flip-flop dengan gerbang NAND:
Semua simulator yang saya coba memberikan hasil yang sama. Baik Q atau Q 'mengambil status jam daripada beralih ke tepi naik, tergantung pada waktu pembaruan internal. Mengingat simetri rangkaian, saya tidak terlalu terkejut, tetapi bertanya-tanya bagaimana itu dimaksudkan untuk bekerja dalam praktik.
Apakah ini mungkin, atau apakah imulator ini menyediakan komponen flip-flop karena tidak mungkin dilakukan dengan bagian dasar? Jika ya, mengapa dan apa yang hilang?
Simulator:
- https://logic.ly/demo
- https://circuitverse.org/simulator
- https://academo.org/demos/logic-gate-simulator/
- https://simulator.io/board
Sirkuit gerbang NAND dibandingkan dengan T flip-flop yang disediakan (circuitverse.org):
Hal yang sama di simulator.io (menggunakan AND + NOT karena tidak ada NAND):
Jawaban
Karena dari halaman ini , gaya yang Anda tampilkan hanya berfungsi jika lebar pulsa clock disetel agar cukup panjang agar tahap keluaran bereaksi, namun cukup pendek agar benda itu tidak berosilasi. Simulator logika yang tidak memodelkan waktu propagasi mungkin tidak dapat mengatasinya.
Untuk mensimulasikan rangkaian Anda, Anda memerlukan simulator rangkaian yang 'memahami' penundaan propagasi, atau Anda perlu mensimulasikan rangkaian Anda pada level transistor.
Halaman yang sama menunjukkan sirkuit ini untuk J-Kflip-flop yang sepenuhnya sinkron (cukup hubungkan J & K bersama untuk T ff):
Anda mungkin ingin mencobanya di simulator Anda, lihat apa yang terjadi.
Sirkuit yang Anda tunjukkan adalah kait JK yang diberi gerbang, bukan flip-flop. Ia menderita cacat: dengan T tinggi dan clock tinggi, gerbang NAND berpasangan silang membentuk osilator cincin. Ini terkadang disebut masalah 'balapan berkeliling'. Output tidak pernah berhenti sampai jam kembali rendah.
Sirkuit ini menggambarkan bagaimana tidak membuat clocked flop. Kalau tidak, itu tidak berguna. Toggle flop yang sebenarnya akan menggunakan sepasang kait dalam dua tahap, dengan clock pada level yang berlawanan. Ini kadang-kadang disebut flip-flop 'edge-triggered' atau 'master-slave'.
Selengkapnya di sini: Bagaimana Q dan Q 'ditentukan pertama kali di JK flip flop?
Dan di sini: JK latch, kemungkinan kesalahan Ben Eater?
Untuk menerapkan T Flip-Flop yang dipicu oleh tepi yang tidak bergantung pada waktu penundaan gerbang, saya percaya, memerlukan minimal 6 gerbang Nand. Sirkuit di bawah ini mensimulasikan dengan baik di CircuitLab.
mensimulasikan sirkuit ini - Skema dibuat menggunakan CircuitLab
Edit:
Seseorang telah berkomentar bahwa rangkaian ini bukan T flip-flop karena rangkaian bergantung pada clock saja, dan tidak memiliki input T dan clock yang terpisah.
Namun, ketika saya google "T flip-flop", klik pertama yang muncul untuk saya adalah ini yang menyatakan:
T atau "toggle" flip-flop mengubah outputnya pada setiap tepi jam, memberikan output yang merupakan setengah frekuensi sinyal ke input T.
Ini berguna untuk membangun penghitung biner, pembagi frekuensi, dan perangkat penjumlahan biner umum. Itu dapat dibuat dari flip-flop JK dengan mengikat kedua inputnya tinggi.
dan yang berisi grafik:
Saya tidak mengklaim bahwa ini selalu merupakan sanggahan otoritatif dari klaim bahwa T flip-flop harus memiliki input T dan clock yang terpisah. (Tentu ada banyak informasi yang salah tentang sandal jepit di interwebs. Misalnya, rangkaian OP, muncul di semua tempat yang diberi label sebagai sandal jepit T meskipun faktanya ada masalah yang dijelaskan dalam jawaban lain.) , Saya menawarkan informasi di atas sebagai sudut pandang alternatif dari pemberi komentar.
Sunting2: Seorang pemberi komentar telah meminta diagram keadaan untuk sirkuit. Saya akan memberikan informasi ini, tetapi bukan sebagai diagram.
Ada 4 keadaan stabil dan 12 keadaan yang merupakan transisi antara keadaan stabil dalam operasi normal.
Status stabil adalah:
Status: Vin N1 N2 N3 N4 N5 N6
S1: 0 1 1 0 1 1 0
S2: 1 0 1 0 1 0 1
S3: 0 1 1 1 0 0 1
S4: 1 1 0 1 1 1 0
Transisinya berjalan sebagai berikut
S1 Dalam \$\uparrow\$N1 \$\downarrow\$N6 \$\uparrow\$N5 \$\downarrow\$ S2
S2 Dalam \$\downarrow\$N1 \$\uparrow\$N4 \$\downarrow\$N3 \$\uparrow\$ S3
S3 Dalam \$\uparrow\$N2 \$\downarrow\$N5 \$\uparrow\$N6 \$\downarrow\$N4 \$\uparrow\$ S4
S4 Dalam \$\downarrow\$N2 \$\uparrow\$N3 \$\downarrow\$ S1
Masalah lain yang mungkin (tetapi harus ) Anda hadapi adalah : Bagaimana Q dan Q 'ditentukan pertama kali di JK flip flop? .
Hal ini terutama berlaku untuk T Flip-Flop.
Untuk T Flip-Flop dengan hanya 2 input, T dan Clock, tidak ada cara agar output menjadi keadaan yang diketahui dalam simulasi yang mendukung 'X'.
Sebuah baik simulator akan menunjukkan 'X' pada kedua output, yang menunjukkan bahwa nilai tidak diketahui.
Seperti yang telah saya sebutkan dalam jawaban saya , seseorang dapat menggunakan input sinkron atau asinkron untuk mengatur output ke keadaan yang diketahui.
Sebagai referensi, saya telah membuat T Flip-Flop dengan input asinkron menggunakan Master Slave JK Flip-Flop, yang dapat Anda simulasikan di browser Anda: