Basamaklı D-Flip Floplar neden metastabiliteyi önler?


15

Metastabilitenin ne olduğunu anlıyorum ama flip flopları birbirine bağlamanın bunu nasıl azalttığını anlamıyor musunuz?

İlk iki durakın çıktısı yarılabilir ise, ikincisi için girdi olarak kullanılır. Ancak 2. flip flop'un bu girişle nasıl bir şey yapabileceğini ve kararlı hale getireceğini görmüyorum.

Şimdiden teşekkürler!


2
Her zaman Buridan'ın kıçından bahsetmek için bir fırsat arıyor: en.wikipedia.org/wiki/…
copper.hat

Yanıtlar:


11

Metastabilite 'iyileştirilemez', ancak yeterince beklerseniz , meydana gelme olasılığı keyfi olarak küçük olabilir. Bunu evren çağında bir kereye indirdikten sonra, muhtemelen başınızı belaya sokmanız olası değildir.

Bu noktada bir kalemi dengelemek gibi. Düşmesi muhtemeldir ve ne kadar uzun süre beklerseniz, ayakta kalma olasılığı o kadar az olur.

Uzun süre beklemede iki sorun vardır ve bunlardan biri esastır.

Temel sorun, zaman uyumsuz bir harici sistemden çıktı alan saatli bir sistemde tek bir bellek öğeniz (mandal veya flip-flop varsa, her ikisinin de metastabilite sorunu varsa), o zaman fiziksel olarak bekleme süresinin alt sınırını tanımlayamazsınız. , bazen harici sinyal mandallı kontrol kenarının yakınında bir geçiş yapar. Orada beklemesine izin vermek için sinyali başka bir flip-flop'a bağlamanız gerekir. Bu, garantili bir saat döngüsü minimum bekleme süresi sağlar.

İkinci sorun, genellikle bir sistemi olabildiğince hızlı çalıştırmaya çalışmanızdır ve ikinci saat flopunda yeterli zaman vermek için sistem saat hızı yavaşlatılamaz. Verimi azaltmadan, sinyal gecikmesini gerekli olana kadar artırmanın tek yolu, daha fazla aşamayı beklemek için boru hattı oluşturmaktır.

Bazı insanlar parmak arası terlik arasında neler olduğunu hayal etmekte zorlanıyor. Metastabiliteyi indüklemenin iki yolu vardır ve her ikisi de flip-flop kurallarını ihlal etmeyi içerir. Bunun bir yolu, giriş ayarı ve tutma sürelerini ihlal etmek, flip-flop girişin kararlı olmasını beklediğinde bir geçiş yapmaktır. Diğeri, flip-flop veri girişinin bir ara voltaj seviyesinde oturmasını sağlamak için giriş mantığı seviyelerini ihlal etmektir. Metastabil bir flip-flop, bir sonraki flip-flopta kademeli olarak yükselmek için çıktısında her iki tür ihlale neden olabilir.


6
Örnek olarak, yonga tasarımı yaparken, 'sahip olduğum' metastabilite, tüm saat geçişleri, matematiği yaptık, her flopta senkronizasyon hatası şansını, flop grubunu vb. olmak ... çoğunlukla ekranda bir piksel patlayabilir, sonunda çip boyunca her iki yılda bir kez aşağı indi - bu Win95 için bir grafik kartıydı ve bu da o zamandan fazla kalamazdı. yaklaşık bir gün hiç kimsenin 2 yıl MTBF senkronizör bile fark etmeyeceğine karar verdik.
Taniwha

7
Ayrıca, hiç kimsenin bahsetmediği bir şey, mutlak en kötü durum metastabilite arızası ile olan şeydir ... bazen senkronizasyon arızası, normal dijital yüksekler ve alçaklar arasındaki seviyelerde belki de aptalca yüksek bir frekansta dahili olarak salınan bir flop ile sonuçlanır. gürültülü buzzy felaketinin tüm aşağı akım floplarını (malzeme fanları dışarıda) enfekte edebileceği anti-metastabilite senkronizörü flopları elde etmek, büyük akım çekimlerine ve hatta potansiyel olarak aşırı ısınma ve talaş ölümüne neden olur - bu yüzden bir sorun olarak buna dikkat edin
Taniwha

@Neil_UK Kafa karıştırıcı olduğunu düşündüğüm mandal sözcüğünü kullanıyorsunuz. Çevrelerimde, mandal eşzamansız bir öğedir. Netlik için onlara parmak arası terlik diyorum.
jalalipop

1
@jalalipop Flip-flop demek için mandal kullanıyordum, ama belki de anlamı kullanmaya başladığımdan beri on yıllar içinde değişti. "Mandal" ın genellikle eşzamansız saydam tipe atıfta bulunduğunu kabul etsem de, veri etkinleştirme girdisinin "mandallama" kenarında değişirse bunlar da metastabilite sorunu yaşarlar. Bir ana slave flip-flop tipik olarak saat tarafından antifazda tahrik edilen bir çift mandaldan dahili olarak inşa edilir. Bahsettiğiniz için teşekkürler, cevabı açıklığa kavuşturmak için değiştireceğim.
Neil_UK

@ Tamiwha Mandalları çözmeye çalıştıkça iç davranışlarını netleştirmek için diyagramlar ve zaman sabitleri ve matematik ile bir cevap verebilir misiniz? Döngünün kazancını ve rejenerasyon zaman sabitini ve gürültü tabanını (termal ve VDD) çözme yeteneğini nasıl etkilediğini (kesinlikle bildiğiniz gibi) göstermeniz gerekir.
analogsystemsrf

9

Sinyal gerçekten kullanılana kadar daha fazla zaman vererek devreyi etkileyen metastabilite olasılığını azaltır. İki parmak arası terlikle, sinyalin yerleşmesi için ekstra bir saat döngüsüne izin verir. Üç ile iki ekstra saat döngüsüne izin verir.


2
İyi cevap. Önemli olan nokta metastability olmamasıdır engelledi , biz sadece kabul edilebilir bir seviyeye olasılığını azaltır.
Elliot Alderson

1
Basamaklı flipfloplar sinyalin 0 ile 1 arasında yerleşmesi için zaman verir, ancak yanlış bir değeri çözmez mi? çünkü metastabil bir sinyal her iki yöne de düşebilir?
Wouter A

2
@WouterA Metastable ise her iki değer de doğrudur.
user253751

4
Bunun iyi bir cevap olduğunu düşünmüyorum, sadece ilk flop bu durumda giriş sinyalini örnekliyor. Yukarıda belirtildiği gibi, belirli bir flopta metastabilite olasılığı (flopun iç geri besleme döngülerindeki kazanıma, saat hızına ve örneklenen şeyin giriş eşikleri arasında geçiş hızına bağlı olarak) olasılığı vardır (umarım) küçük sayı <1 = p - iki flop bize MS 2 flop, 3 p ^ 3 vb. geçmek için p ^ 2 şansı verir
Taniwha

4

Metastabilitenin çıktıyı etkilemesini engellemezler, ancak metastabilitenin nispeten uzun bir süre olması gerekeceğinden, olaylar arasındaki ortalama süreyi büyük ölçüde artırabilirler.

Üç (veya daha fazla) iyi tasarlanmış parmak arası terlik basamaklı olması, olaylar arasındaki süreyi dünyanın yaşı gibi bir şeye artırabilir.


Saat hızınıza ve proses teknolojinize bağlıdır. Gevşekliği yüksek tuttuğunuz sürece, MTBF'nizin sonsuz olması için bir parmak arası terlik yeterli olabilir.
jalalipop

@jalalipop Elbette. Orijinal IEEE belgesinde bazı gerçek test bilgileri (çok eski). DOI: 10.1109 / TC.1983.1676187
Spehro Pefhany

@jalalipop: bu, gevşek zamanı garanti edemediğinizde daha ilgili olan bir sorundur… diğer saatler, ilgili saatler faz kilitlenmediğinde CPU çekirdeği ile SOC arasında iletişim kuran FIFO gibi asenkron tasarım. Aksi takdirde, sert bir kurulum süresi ayarlarsınız ve metastabilitenin gerçekleşmeyeceğini garanti edersiniz.
jbord39

Evet, Metastabilite, zaman uyumsuz bir arayüzde endişe vericidir. Bahsettiğim gevşeklik, flip floptan sonra senkron mantığın gevşekliğidir. Gevşekliğiniz yüksekse, Metastability olayı tasarımınızın geri kalanını etkilemeden önce ölecektir.
jalalipop

2

Çünkü ilk flip-flop, metastabil olsa bile, stabilize etmek için tüm saat süresine sahip olacaktır. İkinci flip-flop ilk flip-flopu örneklediğinde, çıkışı zaten kararlı olabilir.


1

Metastabilite heyecanını istiyorsanız, İKİ ÇOK YAVAŞ İNVERTÖRÜ uygulayın, arka arkaya bağlayın ve VDD / 2'de (bir simülasyonda) saplayın. Ardından önyargıyı kaldırın ve mantık1 ve mantık0 seviyelerine çözüm hızını izleyin. VDD / 2 dışında bir başlangıç ​​sapması voltajı seçmeniz gerekebilir.

2 veya 3 flipflop'unuz saat süresine kıyasla YAVAŞ ise, yaşam sorunlarla dolu olabilir.


1

Metastabilite, saate atıfta bulunulan belirli bir zaman aralığında veri geçişiniz varsa, çıkışın saat kenarından sonraki belirli bir süre için kötü davranacağı anlamına gelir. Ancak, pencere sabit bir aralık değildir. Aksine, kötü bir değerin (salınım veya ara gerilim seviyesi) olasılığı zamanla katlanarak azalır. Bu nedenle, sinyali bir saatle örneklerseniz ve saati ikinci flip-flop'a uygulamadan önce biraz beklerseniz, kötü bir bit olasılığını istediğiniz (ancak sıfır olmayan) olasılığa azaltabilirsiniz. Gereken süre çok uzunsa, seri olarak 3 veya daha fazla parmak arası terlik kullanabilirsiniz.

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.