Neden Flip Flop'ları gösteriyoruz?


19

Flip Flop ve Mandalları anlamaya çalışıyorum. Morris Mano'nun Digital Logic kitabından okuyorum. Anlayamadığım bir şey, neden parmak arası terlik kullanmamızdır?

Neden 'etkin' veya geçmeli mandallara ihtiyacımız olduğunu anlıyorum. Ama saatin ne faydası var? Bunu anlayamıyorum. Neden sadece gerekli parmak arası terlikleri etkinleştirip girdi vermiyoruz? Girişi değiştirdikçe, çıkış değişir. Çıkışı neden yükselen veya alçaltan saat kenarıyla değiştirmek zorundayız (kenar tetikli flipflop durumunda)?

Bununla ilgili herhangi bir yardım takdir edilmektedir.

Yanıtlar:


18

Flip flop'ları saatlememizin bir nedeni, flip flopların çıkışları bazı mantık fonksiyonlarından beslendiğinde ve kendi girişlerine geri döndüğünde herhangi bir kaos olmamasıdır.

Bir flip-flop çıkışı girdisini hesaplamak için kullanılırsa, düzenli bir davranışa sahip olmamızı sağlar: flip-flop durumunun çıkış (ve dolayısıyla giriş) kararlı olana kadar değişmesini önlemek için.

Bu saatleme, durum makineleri olan bilgisayarlar oluşturmamızı sağlar: geçerli bir duruma sahiptirler ve bir sonraki durumlarını geçerli duruma ve bazı girdilere göre hesaplarlar.

Örneğin, 0000'dan 1111'e kadar artan bir 4 bit sayısını "hesaplayan" ve daha sonra 0000'a sarılan ve devam eden bir makine yapmak istediğimizi varsayalım. Bunu 4 bitlik bir kayıt kullanarak yapabiliriz (ki bu dört D flip-flop bankasıdır). Kaydın çıktısı, arttırılmış değeri üretmek için 1 (dört bitlik toplayıcı) ekleyen bir kombinatoryal mantık fonksiyonu ile konulur. Bu değer daha sonra kayıt defterine geri beslenir. Şimdi, saat kenarı geldiğinde, kayıt yeni artı bir önceki değeri kabul eder. Herhangi bir aksaklık olmadan ikili sayılardan geçen düzenli, öngörülebilir bir davranışımız var.

Saatleme davranışları diğer durumlarda da yararlıdır. Bazen bir devrenin aynı anda stabilize olmayan birçok girişi vardır. Çıktı, girdilerden hemen üretilirse, girdiler dengelenene kadar kaotik olacaktır. Çıktıya bağımlı diğer devrelerin kaosu görmesini istemezsek, devreyi saatli yaparız. Girişlerin yerleşmesi için cömert bir süreye izin veriyoruz ve daha sonra devreye değerleri kabul ettiğini gösteriyoruz.

Saatleme doğal olarak bazı flip flopların anlambiliminin bir parçasıdır. AD flip flop, saat girişi olmadan tanımlanamaz. Saat girişi olmadan, D girişini yoksayar (işe yaramaz!) Veya girişi her zaman kopyalar (bir flip-flop değil!) RS flip-flopunda saat yoktur, ancak iki giriş kullanır girişlerin "kendinden saatli" olmasına izin veren durumu kontrol etmek için: yani girişler olmak ve durum değişikliği için tetikleyiciler. Tüm flip flopların durumlarını programlayan bazı girdi kombinasyonları gerekir ve bazı girdi kombinasyonları durumlarını korumalarını sağlar. Tüm giriş kombinasyonları programlamayı tetiklerse veya tüm giriş kombinasyonları yoksayılırsa (durum korunur), bu yararlı değildir. Şimdi saat nedir? Bir saat özeldir, diğer girişlerin göz ardı edilip edilmediğini veya cihazı programlayıp programlamadığını ayırt eden özel giriş. Bunu, birden çok giriş arasında kodlanması yerine, ayrı bir giriş olarak kullanmak yararlıdır.


Sayaç veya durum makinesi için saatçilik ihtiyacını açıkladığınızda mantıklıdır. Hiç saat yoksa, sayaç sadece değerini değiştirmeye devam eder (& sıfırlar) ve sonsuza kadar başlasın mı? ve durum makinesi ile aynı. (Wiki'den okuduğum kadarıyla, devletler değiştirildiği için sadece bir tür devlet makinesine karşı koyuyor). Ama kayıtlarda bile saat kullanıyoruz, bu durumda neden? Ayrıca herhangi bir uygulamada saat olmadan kullanılan herhangi bir flipflop var mı bilmek istiyorum?
avi

Şimdi stabilite noktasına geliyor, çıkışlar değişmeye devam ederse, flipflop çıkışına ihtiyaç duyan diğer cihazlar doğru şekilde alamaz ve düzensiz davranışlar olabilir. Peki bu istikrar sorunu mu? Şimdi istikrar kavramını anlamaya çalışıyorum. Özellikle açıkladığınız bu iki para: "flip-flop durumunun çıkış (ve dolayısıyla giriş) sabit olana kadar değişmesini önlemek için." "Bazen bir devre aynı anda stabil olmayan birçok girdi vardır"
avi

7

Yükselen kenarlı bir flip flop, biri arka arkaya saat sinyali düştükten kısa bir süre sonra etkinleştirilen ve yüksek olana kadar etkin kalan iki mandal olarak düşünülebilir; ikincisi, saat yükseldikten kısa bir süre sonra etkinleştirilir ve alçalıncaya kadar etkin kalır. Flip flopun etkinleştirilmediği kısa bir an olması, flip flop çıkışının kombinatoryal mantık yoluyla girişine güvenli bir şekilde geri beslenebileceği anlamına gelir. Bir saat döngüsünde çıkışta yapılan bir değişiklik, girişin değişmesine neden olabilir, ancak bu giriş değişikliğinin bir sonraki saat döngüsüne kadar herhangi bir etkisi olmaz.

Tarihsel olarak, dijital cihazların, her döngü sırasında üst üste binmeyen aralıklar için yüksek olan iki saat teline sahip olan "iki fazlı saat" olarak adlandırılan şeyi kullanması oldukça yaygındı. Tüm mandallar iki gruba ayrılır, bir saat birinci mandal grubunu ve diğer saat ikinciyi kontrol eder; çoğu durumda, her bir grubun çıktıları sadece diğerinin girdilerini hesaplamak için kullanılır. Her saat döngüsü, ilk saatte en az birinin minimum uzunluk özelliklerini karşılaması gereken bir veya daha fazla pals ve ikincisinde bir veya daha fazla palsdan oluşur (aynı gereksinim). Böyle bir tasarımın bir avantajı, saat fazları arasındaki ölü zamanın saat çarpıklığı miktarını aşması şartıyla saat çarpıklığına çok toleranslı olabilmesidir.

Daha "modern" bir yaklaşım, her mandallama elemanının (kayıt) tek bir saat teli alması ve esasen kendi iç üst üste binmeyen saatlerini üretmesidir. Bu, maksimum saat çarpıklığının kayıtlar arasındaki minimum yayılma süresini aşmamasını gerektirir, ancak modern araçlar saatin eğimini on yıllardır mümkün olandan daha hassas bir şekilde kontrol etmeyi mümkün kılar. Ayrıca, birçok durumda, tek fazlı saatleme, mantığı iki gruba bölme ihtiyacını ortadan kaldırarak tasarımları kolaylaştırır.


2

Hepimiz dijital gerçek devrelerin bir sürü kapı içereceğini biliyoruz. Bir sinyalin, çıkışı veren son kapıya ulaşmak için birden fazla yol alması gerekebilir. Bir sinyalin, son kapıya ulaşan farklı yollarda "yayılması" biraz zaman alır. Farklı yollarda yayılmak için gereken süre aynı değildir. Bu, aksaklık dediğimiz şeye yol açar. Bazı yollar diğerlerinden daha kısa olduğu için hatalar meydana gelir ve bir sinyal daha kısa yolu alarak son kapıya ulaştığında, daha uzun yoldaki diğer sinyaller kapıya ulaşmadan hemen önce etkiler. Bunun anlık olarak sonuçlandığı çıktı yanlıştır ve yayılma hatalarına yol açan bir dijital devrede tehlikeli olabilir.

Şimdi neden bir saate ihtiyacımız olduğuna geliyorum. Bir saat, devreyi tek bir harici sinyale "senkronize eder". Devrenin müzik gibi ayarlanmış bir vuruş olduğunu düşünün. Bu saat ile uyumlu olan şeyler oluyor, saat yok = devre devre dışı. Saati kullanarak, devrenin farklı bölümlerinin aynı anda uyumlu çalıştığından emin oluruz . Bu şekilde devrenin davranışı daha tahmin edilebilir. Ayrıca sıcaklık ve imalat varyasyonu ile yayılma gecikmesindeki değişikliklerden daha az etkilenir. Bu saati kapsar.

Flip floplar, bir "SAAT KENAR" meydana geldiğinde harekete geçen (giriş portlarındaki bir girişe göre çıkışlarını değiştiren) dijital devre elemanlarıdır. Saat kenarı, saat sinyalinin 0'dan 1'e veya 1'den 0'a çıkmasıdır. Sadece bir saat dalgası çizin ve ne demek istediğimi anlayacaksınız. Mandal denilen başka bir eleman grubu vardır, belirli bir kontrol sinyali belirli bir mantık SEVİYESİNDE olduğunda ve herhangi bir kenar beklemediğinde mandalların çıkışı girişi yansıtacak şekilde değişir, bu kontrol sinyaline mandallarda ENABLE denir. Sürgüler etkinleştirme 1 olduğunda ve çıktılarını değiştirdiğinde veya etkinleştirme 0 olduğunda çalışabilir. Bu, mandal tipine bağlıdır. Buna karşılık Flips flopları aslında sadece bir şeyler yaparbir saat EDGE tarafından beslendiklerinde. Lütfen mandallar ve flip floplar arasındaki bu farka dikkat edin ve mandalların bir flip flop oluşturmak için birbirine bağlandığını unutmayın, böylece enable sadece flip flop'un bir saat kenarı oluştuğunda bir şey yapmasına neden olur. Bu durumda Etkinleştir sinyalini Saat olarak adlandırırız ve daha anlamlı olur. İnsanlar için saat kene kene kene gider, flip flop sadece keneler ve keneler arasında hiçbir şey yapmaz.

Hala net değilse, Dijital Devreler Hint Teknoloji Enstitüsü'nden youtube nptelhrd ders izleyerek faydalanacaktır.


"Saati kullanarak, devrenin farklı bölümlerinin aynı anda uyum içinde çalıştığından emin oluruz." - bunu nasıl yaparız? Videoları kontrol edeceğim.
avi

Flip flopların, pozitif bir kenar tetikli flip flop için bir kontrol sinyalinin girişini (veya negatif bir kenar tetikli flip flop ise düşen kenarı) girişi yansıtacak şekilde değiştiren cihazlar olduğunu lütfen unutmayın. Bu kontrol sinyaline, daha çok duvar saatlerimizin kene-kene gibi, periyodik doğası nedeniyle bir saat denir. Saat sinyali varsa, flip flop bir şey yapar, aksi takdirde giriş çıkışa hiçbir şey yapmaz. Lütfen mandal ve parmak arası terlik arasındaki farkı ve benzerliği erken aşamadan da karıştırmayın.
quantum231

1

Asenkron sayıcılar gibi şeyler vardır. Işte bir tane: - resim açıklamasını buraya girin

Aynı zamanda bir dalgalanma sayacı olarak da bilinir, çünkü girişe bir giriş darbesi geldiğinde (1. flip-flopun durumunu değiştirir), bu durum değişikliği kalan flip-floplara dalmak için sınırlı bir zaman alır. Bu küçük fakat sonlu zaman süresi boyunca, ABCD çıkışları, son flip-flop yerleşene kadar öngörülemeyen bir geçici değere sahip olacaktır.

Eğer ABCD çıkışları daha sonra D tipi parmak arası terliklerle beslendiyse ve çöktürüldükten bir süre sonra birlikte zamanlandıysa, ABCD'nin bu "daha iyi" versiyonu asla bu geçici davranışı "göstermez".

Bu mühendislerden kaçınmak için bazen eşzamanlı saat devreleri kullanın. Maalesef giriş bu solda ve Q0 - Q3 eşlemesi önceki diyagramda ABC ve D ile: -

resim açıklamasını buraya girin

Biraz daha karmaşıktır, ancak çıktılarda bir grup D tipine sahip bir asenkron sayaca kıyasla daha hızlı ve daha az parçaya sahiptir.


Sayaçlarla mantıklı geliyor. Ancak, flipflopların saatler olmadan kullanıldığı herhangi bir uygulama var mı? veya flipflop asla saat olmadan kullanılamaz?
avi

@avi İlk örnek (zaman uyumsuz sayaç) girdisinin bir "saat" ten alındığı kabul edilmez. Bir şaftın ne kadar hızlı döndüğünü görmek isteyen manyetik bir sensörden gelen darbeler olabilir. Sistemde her saniye sayımı "kapanan" bir "ana" saat olacaktır, ancak sayaca giden "sinyal" mutlaka bir saat değildir. Bir analog karşılaştırıcıdan gelen çıktı, bir D tipinin çıkışına "1" "ve" başka bir analog karşılaştırıcıdan gelen çıktı D tipini sıfırlayabilir - bu, analog bir dalga formundan türetilmiş bir sinyal üretmek için kullanılabilir - saatler yok olduğu gibi
Andy aka

Bir dalgalanma sayacının davranışını, senkron sayacınkinden niteliksel olarak farklı olmaktan ziyade niceliksel olarak kabul ediyorum. Her iki sayacın çıkışları, saat darbesi geldikten bir süre sonra geçersiz hale gelir ve bundan bir süre sonra tekrar geçerli olur. Eşzamanlı sayaç, çıktılarının geçersiz olduğu daha küçük bir pencereye sahip olacaktır, ancak her durumda pencere sıfırdan farklı olacaktır. Sayaçla çizilen maksimum sayım hızının sayaç uzunluğu ile sınırlı olacağını da belirtmek gerekir. Bu sınırlama önlenebilir ...
supercat

... taşıma zincirinin örneğin dördüncü bitte başlaması, ilk üç bitin "ve" işaretinin oluşturulması ve daha sonra her bir bitin sadece taşıma zincirinden gelen giriş yüksekse, bit 2 yüksek, bit 1 olması durumunda yüksek ve bit 0 yüksekti. Bir sinyalin taşıma zinciri boyunca yayılması için zaman içinde yedi sayım darbesi gelse bile, bu sorun olmaz çünkü taşıma zinciri xxx111 ... 111000 sayısına ulaşıldığında taşıyı yaymaya başlayacaktır, ancak çıkışı önemli olmayacaktır. xxx111 ... 111111'den sonraki saat darbesine ulaşıldı.
supercat

Onları dalgalanma sayaçları basit ama içinde çalıştığım dijital devrelerin gerçek dünyasında yoksun. Var olduklarını bilmek güzel, ancak gerçek projeler için kullanmanıza izin verilmeyecek. Her zaman "eşzamansız" doğalarının bir sorun olmadığı önemsiz egzersizlerde kullanılabilir.
quantum231

0

Eşzamanlı sistemlerin (eşzamanlı sistem, eşzamanlı sistemlere göre herhangi bir kombinasyonel mantık ve saatli parmak arası terlik koleksiyonu) anlamına geldiğinden, eşzamanlı sistemler daha güvenilirdir. Ancak, senkronize olmayan bir sistemden daha hızlı ve daha düşük bir güçle bir çıktıyı hesaplayabildiğinden, asenkron durum makine tasarımı çalışmaya değerdir.

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.