Bir flip flop nedir?


25

Bazıları birbiriyle çelişen flip-flop ve mandalların çeşitli tanımları var gibi gözüküyor.

Öğrettiğim kurs için Bilgisayar Bilimi ders kitabı muhtemelen en kafa karıştırıcıdır (aslında kitaba çok az inancım var çünkü birkaç yerde sadece yanlış).

Mandalların (SR, girişli SR, girişli D) çalışmalarında ve tetiklenen seviye ile kenar tetiklenen cihazlar arasındaki farkı, en azından mantık geçitleri ve zamanlama diyagramları açısından rahatım. Ancak, hala bir flip flop ve bir mandal kısa bir tanımını arıyorum.

Şimdiye kadar inandığım şey bu:

“Bir flip flop, 1 bit saklayabilen bir kenarla tetiklenen çift dengeli bir cihazdır”.

“Bir mandal, 1 bit saklayabilen bir seviye tetiklemeli iki kararlı cihazdır.”

Bu web sitesinde daha önce yayınlanan yazılara bir göz attım ve onlar kadar aydınlatıcı olduğu için hala kesin bir şeyler arıyorum.

Kontrol etmek istediğim mevcut anlayışım, aşağıdaki diyagramlarda…

Yan yana anladığım şey, bir seviye tetiklemeli kapı mandalı için iki uygulama.

Bunların altında, pozitif bir kenar dedektörü, NOT kapısının henüz giriş seviyesinden alçaktan yükseğe değişikliğe yanıt vermediği, yani yükselen kenar (kırmızı 1 mavi, 0).

Son şemada, kenar detektörü tarihli bir D mandalına monte edilmiştir ve bu onu flip-flop yapan şeydir.

görüntü tanımını buraya girin

Son diyagram gerçekten bir flip flop mu, yoksa hala sadece bir mandal mı?

Ve neden bu cihazın daha basit olması için verilen ana köle versiyonuna ihtiyacımız var?


1
@DanielTork neden bir cevap yapmıyorsun?
Buzlu

10
Avustralya ve Yeni Zelanda'da, genellikle sahile ya da güzel havalarda giyilen açık uçlu bir ayakkabı türüdür. ;)
KyranF

3
ABD'de de. Ama onlara tanga derdik, ama bu şimdi farklı bir şeye atıfta bulunuyor ;-)
sonraki duyuruya kadar duraklatıldı.

1
Şimdi parmak arası terlik olarak bilinen sandaletlerle çizilmiş bir devre şeması görmek istiyorum ...
keshlam

1
@ immibis buradan defol çürük kivi!
KyranF

Yanıtlar:


11

Bugün bu tanım hakkında çok düşündüm.

Diğerlerinin de belirttiği gibi, tam anlamlar değişecektir. Bunun da ötesinde, muhtemelen bu sitede, hatta bu sitede daha fazla insanın yanlış olduğunu göreceksiniz. Wikipedia'nın ne dediği umrumda değil!

Ancak genel olarak:

  • Bir flip flop, saat başına en fazla bir kez çıkış durumunu değiştirir.
  • Bir sürgü, saydamlık penceresi boyunca veri geçişleri kadar durumunu değiştirir.

Bunlara ek olarak,

  • Bir flip flop çok güvenlidir. Neredeyse aptal. Bu nedenle sentez araçları genellikle flip flop kullanır. Ancak, mandaldan daha yavaştırlar (ve daha fazla güç kullanırlar).
  • Sürgüler düzgün kullanmak daha zordur. Ancak, flip flop'lardan (ve daha küçük) daha hızlıdırlar. Bu nedenle, özel devre tasarımcıları, kötü zamanlama yayından fazladan bazı pikosaniye sıkmak için genellikle flip flop'u dijital bloklarına (zıt faz ile her iki ucundaki bir mandal) sıkıştıracaklardır. Bu, gönderinin alt kısmında gösterilir.

Bir flip flop en tipik olarak bir master-slave topolojisi ile karakterize edilir. Bu iki eşleşmiş (arasında mantık olabilir), zıt faz arka arkaya mandallanır (bazen L1 / L2 olarak adlandırılan endüstride).

Bu, bir flip flop'un doğal olarak iki bellek elemanından oluştuğu anlamına gelir: biri düşük döngüde tutulacak, diğeri yüksek döngü sırasında tutulacak.

Bir mandal sadece tek bir hafıza elemanıdır (SR mandalı, D mandalı, JK mandalı). Sadece veri akışını bellek elemanına aktarmak için bir saat tanıtmanız, onu bir flip flop yapmaz, bence (bir tane gibi davranmasına rağmen: yani daha fazla yükselen kenar tetiklenir). Sadece belirli bir süre için şeffaf yapar.

Aşağıda , iki SR mandalından yaratılan gerçek bir flip flop görülmektedir (faz saatlerinin tersine dikkat edin).

gerçek d ff

Ve başka bir gerçek flip-flop (bu, VLSI'daki en yaygın stildir) iki D-mandalından (iletim kapısı stili). Yine ters faz saatleri dikkat edin :

gerçek flip flop tg tarzı

Saati bir mandala yeterince hızlı bir şekilde vurursanız, bir flip-flop davranışına (darbe mandalı) benzemeye başlar. Bu, D-> Out ve Clk-> Out'tan daha az gecikme nedeniyle, daha iyi kurulum süresine ek olarak (bekletme süresi de artmalıdır, küçük fiyat ödemek zorundadır) süresi boyunca şeffaflık nedeniyle, yüksek hızlı datapath tasarımında yaygındır. nabız. Bu onu flip-flop yapar mı? Pek değil, ama kesinlikle öyle görünüyor!

Ancak, çalışmayı garanti etmek çok daha zordur. Tüm işlem köşelerinde (hızlı NOS, yavaş pmos, yüksek tel kepi, düşük tel r; bunlardan birine örnek olarak) ve tüm voltajları (düşük voltaj sorunlara neden olur) kenar dedektörünüzden gelen darbenin gerçekten açılacak kadar geniş olup olmadığını kontrol etmelisiniz. mandal ve verilere izin verin.

Özel sorunuz için neden flip flop yerine nabız mandalı olarak kabul edildiğinden, gerçekten sadece tek bir seviyeye duyarlı bit depolama elemanına sahip olmanızdır. Darbe dar olsa da, flip flop oluşturan bir kilitle ve baraj sistemi oluşturmaz.

İşte sorgunuza çok benzer bir darbe mandalı açıklayan bir makale. Uygun bir alıntı: "Darbeli saat dalga biçimi bir mandalı tetiklerse, mandal, kenar tetiklemeli flip-flop'a benzer şekilde saatle senkronize edilir, çünkü darbe saatinin yükselen ve düşen kenarları zamanlama açısından neredeyse aynıdır."

EDIT Bazı netlik için, mandal tabanlı tasarım grafiğini ekledim. Aralarında mantık bulunan bir L1 mandalı ve L2 mandalı vardır. Bir mandal bir flip floptan daha az gecikmeye sahip olduğundan, gecikmeleri azaltabilen bir tekniktir. Flip flop ortada "bölünmüş" ve mantık. Şimdi, bir kaç kapı gecikmesinden tasarruf edin (her iki uçtaki flip flop ile karşılaştırıldığında)!

mandal tabanlı tasarım


"Bir ana-köle topolojisi ile karakterize" - bu, tanımlayıcı bir davranışsal karakteristikten ziyade, bir uygulama detayına daha çok benziyor. Davranışsal olarak, flip-flop (sizin tanımınıza göre) kenar tetiklemeli olan tek bitlik bir hafızadır. Uygulamada, kenar tetiklemesine yaklaşmak için gereken uygulama sihri, ikinci bir depolama elemanı gerektirir!
Oliver Charlesworth

1
@OliverCharlesworth: Bu bir uygulama detayı. Fiziksel, davranışsal, yapısal ve topolojik detayların yanı sıra. Bir mandala sadece flip flop diyemezsin çünkü öyle görünüyor. Ondan kurtulmak mümkün olabilir, ancak bunları tam olarak kullanmak için farkı bilmeniz gerekir. Bir flip flop'ı birbirinden ayırırsanız, iki ayrı zıt faz sürgüsünüz olur. Ortada mantık yapabilirsiniz. Bu, her iki ucundan bir flip flop sahip daha hızlıdır. Ayrıca, yüksek hızlı tasarımlar için çok önemli bir kavram olan bir döngü sınırından "zaman borçlanmasına" izin verir.
jbord39 22

İşte size yardımcı olabilecek DFF’lerin bazı yararlı resimleri, sonuncuyu görün. Yukarıda yayınlanan DFF, saatin zıt fazlarındaki mandallama nedeniyle kafa karıştırıcıdır (yani, yükselen kenardaki ana mandallar, köle düşen mandallar). electronics.stackexchange.com/a/84247/42957
mrbean,

Burada gerçek bir tek fazlı kenar tetiklemeli flip-flop ("TSPC" DFF) örneği görmek güzel olurdu.
mrbean


1

Pek çok insan saatli cihazları "flip flop" ve saatsiz cihazları mandal olarak adlandırır. Öğrendiğim zaman, "saatli terlikler" ve "terlikler" idi. Her ikisi de kenar tetiklenebilir.

Önemli olduğu zaman, kelime numaralarına değil, parça numaralarının veri sayfalarına ve zamanlama şemalarına dayandığına dair yeterince belirsizlik vardır.


O zaman bir GTO-SCR de flip-flop mu?
Bradman175,

1

Sorumu cevaplayan herkese teşekkürler. Beklendiği gibi bazı anlaşmazlıklar var. Ne yazık ki anlambilim, genellikle sınavlara gelince anlamaktan daha önemlidir. Bir A Seviye Bilgisayar Bilimi öğrencisinin sınav kağıdını (ve geçmişte bunu yaptım) yanlış olarak işaretlemek için sınav panosuyla tartışmam gerekiyorsa, güçlü bir konumda olmak istiyorum. Resmi A Seviye ders kitabı kitabının birkaç sayfasını paylaşacağımı düşündüm.

İlk diyagram aktif bir düşük SR mandalıdır. Kitap ona flip-flop diyor.

Kitapta "İki flip-flop kullanarak, çıkışı kontrol etmek için saat kontrollü bir devre kullanan, bir saat darbesiyle geciktiren bir D-tipi flip-flop adı verilen devre oluşturabiliriz. D gecikme anlamına gelir. ." Bu metin, master / slave konfigürasyonuna atıfta bulunuyor gibi görünüyor. İkinci diyagram (şekil 14.2) D tipi flip-flop olarak etiketlenmiştir. Aslında aktif bir yüksek kapılı D mandalı.

Çok yardımcı değil!

"Bir flip flop en tipik olarak bir ana-köle topolojisi ile karakterize edilir." jbord39'un önerdiği gibi, flip-flop teriminin sık sık bir kenarı tetiklenen mandal ve bazen sadece herhangi bir mandal anlamına gelmesi için kullanıldığı uyarısı ile. Bence oraya inandırıcı bir şekilde ulaşmasa da kitabın nereden geldiği yer burası.

Herkese tekrar teşekkürler.

görüntü tanımını buraya girin görüntü tanımını buraya girin


2
Evet bu kitap yanıltıcıdır. Artı, D, Veri anlamına gelir, gecikme değil ... lol Önemli kısım, nasıl çalıştıklarını anlamak ve anlambilimsel olarak çok fazla yakalanmamaktır. Anlambilimi, çalıştığım firmalarda bana anlatıldığı gibi açıkladım. Alan ve deneyim seviyesine göre değişebilir (özellikle üzerinde çalıştığım mantık kapılarının içindekilere göre).
jbord39 22

Jbord39 ile aynı fikirdeyim. Cevabımda belirttiğim gibi, E girişi yalnızca verilerin çıkışı etkilemesini sağlar. Yine de yanlış bilgiler içeren ders kitaplarınız var. Aslında oldukça can sıkıcı bir durum.
Bradman175,

1

Bir flip flop bir mandaldan farklıdır . İkisi de çift kararlı devrelerdir, ancak aslında iki farklı şeydir.

Mandal bir veri girişine pim ve dinler izin var / Bu pin yüksek giriş olduğu zaman. Düşük olduğunda mandal donar ve durumunu hafızaya alır. Şimdi girişleri değiştirseniz bile, tepki vermiyor.

Flip flop sadece değişen darbeler (seviye değişimleri) ile reaksiyona girerek, bunun yerine bir saat pimi içerir. Kare bir dalgayı düşünün. Kapalı ve açık, kapalı ve açık arasındaki geçici süre, devrenin giriş sinyallerine tepki verdiği zamandır. Ancak o zaman, pimin sabit ve tam olarak açık olduğu durumlarda değişiklik yapılabilir.

Flip flop reaksiyon zamanı

Yeşil çizgilerin girdiğini dinlediği süreyi, kırmızı çizgilerin girmediği süreyi temsil ettiğini unutmayın. Mandal, yalnızca en üstteki kırmızı çizgilerle gösterilen periyotlar sırasında girişe izin verir.

Bağımsız SR, pratikte uygun bir devre değildir.

Hatayı işaret ettiği için jbord39'a teşekkür ederiz. Radio-elctronics.com adresinden alınmış ve düzenlenmiş resim.


Bir flip flop bir mandal değildir, ancak arka arkaya iki zıt faz mandalından yapılabilir.
jbord39

Cevabı @ jbord39
Daniel Tork

Teşekkürler, @ Peter Mortensen. Onları görmedim.
Daniel Tork

0

Sorunuzda bunları kullandığınız terimler, analog IC tasarımı bağlamında kullandıklarım doğrultusunda% 100'dür. Mandallar seviyeye duyarlı bir etkinleştirme sinyaline sahipken, flip flop'lar 'saat' olarak adlandırılan kenara duyarlı etkinleştirme sinyallerine sahiptir. İki yerde çevrimiçi veya bazı kitaplarda flip flop terimini kullanıyor gibi göründüğümde, iki durağan nokta arasındaki "flip flop" devre durumunu düşünürseniz mantıklı gelebilir, ancak tasarımcılar hakkında konuşurken Çalıştığım devreler, mandallar seviyeye duyarlıdır ve flip flop'lar (veya genellikle sadece "floplar") kenara duyarlıdır.

Diğer bir çift master-slave mandalına karşı kenar algılayıcılı mandal olarak bir flip flop tasarlayıp tasarlamamayla ilgili diğer sorunuz hakkında. Her iki durumda da kenar dedektörünüzde yeterince gecikme olduğu varsayılarak çalışılabilir. Mandallar minimum miktarda izin verme süresine sahip olacaktır. Kenar dedektörü tekniğini kullanarak yüksek hızlı bir flip flop yapmanın daha zor olduğundan şüpheleniyorum ve kurulum / tutma süresi proses / voltaj / sıcaklıktan daha fazla değişebilir.


Neden nadiren üst üste binmeyen mantık eşikleri olan master / slave çifti ile uygulanan flopleri görüyorum? beslenen bir yavaş yükselen ya da herhangi bir VDD / 2 üzerinde bir gerilim gördükten sonra gürültülü giriş sinyali, davranış yükselen kenarı üzerinde, bunların hiçbiri VDD / 4 altında bir gerilim bakınız sadece, şu şartla ki, güvenilir olur.
SuperCat

@supercat Sen histereziden mi bahsediyorsun?
Cort Ammon - Monica,

@CortAmmon: Hayır - daha iyi bir şey. Bağımsız Schmidt tetikleyicili iki flip flop kademeli ise, birinci flop saat kenarını tanırsa ve ikinci flop saat kenarını tanımadan önce girişi çıkışa geçirirse yanlış işlem ortaya çıkabilir. Flip floplar bölünmüş giriş eşikleri kullanırsa, saat düşük eşik değerin üzerine çıktığında ikinci flop girişi yakalar, ancak ilk flop çıkışı saat üst eşiğe ulaşana kadar değişmez.
Supercat,

0

(OP'nin son devresinin flip-flop veya mandal olup olmadığını bilmek istiyorsanız sonuna kadar atlayın.)

Temel terimlerle, bir Flip-Flop, 2 durumun mandallanmasına izin veren ve bu durum değişikliklerini mümkün kılan bir saat pimi ile bir mantık kapıları (veya bileşenleri) düzenlemesidir.

Şimdi burada bir Flip-flop ve bir mandal arasındaki fark var. Parmak arası terlik eşzamanlı iken mandallar eşzamansızdır.

  • Eşzamansız mandallar CLK, bir flip-flop'ta (saat kısa) pimi olarak adlandırılan bir güncelleme pimi gerektirmez . Girişler belli bir durumdadır, ya umurlarında tek şey HIGHya LOW. Girişte belirli bir HIGHs ve LOWs kombinasyonu başlatıldığında, bu durumda devre bir işlem yapmaya karar verir ve istediğiniz sonuç "derhal" döndürülür. Bir mandalda 4 olası eylem vardır.

    1. Hiçbir şey yapma
    2. Set QiçinHIGH
    3. Set QiçinLOW
    4. Geçersiz durum (sözde değeri tersine çevirir Q)

    Buna Q'bağlı olduğuna dikkat edin Q.

Bir örnek, bir mandalın yapabileceği 4 olası eylemin tümünü gösteren SR mandalıdır: RS Mandalı

  1. Ne zaman Solduğunu LOWve Rbir LOWşey değiştirir.
  2. Ne zaman Solduğunu HIGHve Rolup LOW, Qayarlandığında HIGH.
  3. Ne zaman Solduğunu LOWve Rolup HIGH, Qayarlandığında LOW.
  4. Ne zaman Solduğunu HIGHve Rbir HIGH, Qbir "tahmin edilemez" hızlı oranda, ters. Bu durum geçersiz.
  • Senkronize parmak arası terlik, veri pinlerine bir değer ayarlamanıza izin verir. Bu, yalnızca bu pimlerin durumunun ne olduğu ile ilgilendiği anlamına gelir. Ancak devre, çıktıya henüz herhangi bir işlem yapmaya karar vermedi. Sen var CLKyukarıda belirtildiği gibi pimi. Tüm CLKpimi (dan ya da durum değiştirdiği LOWiçin HIGHtersi ya da her ikisi de), veri pimleri "tutulmuş" ve bir eylem kombinasyonuna göre flip-flop yapar HIGHs ve LOWveri pimleri tutulan verilerin s. CLKPim için iki eylem var .
  1. Hiçbir şey yapma
  2. Veri pinlerinden "yakalayın" ve bu belirli bir zamanda veri pinlerinin değerlerine dayanarak çıktı üzerinde bir işlem gerçekleştirin.

Yine devrenin çıkışta yapabileceği 4 olası eylem vardır.

  1. Hiçbir şey yapma
  2. Set QiçinHIGH
  3. Set QiçinLOW
  4. Değerini ters çevirin Q(şimdi geçerlidir, çünkü yalnızca bir kez yapar)

BU FLIP-FLOP DEĞİLDİR:

görüntü tanımını buraya girin

Ama neden isteyebilirsin? Bu Epim bir saat pimi değil. Saat pimleri devrenin ONCE veri pimlerinden gelen bilgileri analiz etmesine izin verir, bu bilginin çıktıda belirli eylemleri gerçekleştirmek için talimat olarak gönderildiği yer Bununla birlikte, bunun gibi pinleri etkinleştirmek devrenin yüksek tutulduğu sürece veri pinlerinden gelen bilgileri analiz etmesine ve sürekli olarak çıkış değerlerini ayarlamasına izin verir. Böylece bir mandal. (Benim hatamı işaret ettiği için Thb jbord39'a)

Bu yüzden Flip-flop bir mandal gibi, CLKpim olan ekstra bir "onaylama" adımına ihtiyacınız var .

Öyleyse OP'nin sorusunun son devresi flip-flop mu? C'yi yüksek tutmaya çalışın ve D değerini değiştirdiğinizde çıkışın değişip değişmediğini kontrol edin. Fakat çıktı değişmezse (ki bu durumda), o zaman flip-flop.

Görüntüler Wikipedia'dan alınmıştır.


Hayır, birçok mandalın saat pimleri vardır. nxp.com/documents/data_sheet/74HC_HCT373.pdf aslında gösterdiğiniz devre bir flip flop değil bir
mandaldır

@ jbord39? Hangi saat pimi? Ve etkinleştirme pimi bir saat piminden farklıdır.
Bradman175,

@ jbord39 ve sizi haklısın. Alttaki iki devre mandallardır. Lütfen cevabımı tekrar gözden geçir.
Bradman175,

Anladım mı göreyim. Flip floplar her girişi kontrol eder ve bir çıkışı açar ve bir mandal saati kontrol eder ve 1 olup olmadığını görür, D değerini verir. Böylece SR mandalı saatli olmadığı için flip-flop olur. ancak D mandalı gerçek bir mandaldır.
Daniel Tork,

@DanielTork Sorun şu ki, birden fazla "saatiniz" var ve bir saat pimler arasında değişemiyor ve aynı zamanda bir veri pini olarak işlev görüyor.
Bradman175,
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.