nandbench logosunandbench

Ardışıl Devreler — Dersler

Ardışıl Devreler ünitesindeki 7 ders. Her ders kısa bir anlatım ve adım adım bir yürüyüştür; çoğu nandbench'te açıp denemek için bir şablonla gelir.

4.1 SR mandalı

En basit bellek hücresi — iki çapraz bağlı NOR kapısı.

  1. Birbirine geri besleme yapan iki NOR kapısı SR mandalını oluşturur. Girişler S (set) ve R (reset); çıkışlar Q ve ¬Q.
  2. S=1, R=0 → Q 1'e kilitlenir. S=0, R=1 → Q 0'a kilitlenir. S=0, R=0 → Q önceki değerini korur. İşte bellek.
  3. S=R=1 yasak durumdur — her iki çıkış da 0'a iner, Q/¬Q değişmezliği bozulur. Gerçek tasarımlar bundan kaçınır.
  4. SR mandalı temeldir: bir çipteki her flip-flop ve yazmaç sonunda buna benzer geri besleme döngülerine indirgenir.
  5. SR-mandalı şablonunu aç. S=1 darbele → Q=1. R=1 darbele → Q=0. Girişler 0'a döndüğünde değerin nasıl korunduğunu gözle.

4.2 D mandalı

D'yi etkinken kopyalayan saatli SR mandalı.

  1. C clock girişi ekle ve S=D·C, R=¬D·C'yi SR mandalına bağla. C=1 iken mandal D'yi takip eder; C=0 iken tutar.
  2. Bu, SR'nin yasak durumunu ortadan kaldırır — bir anda yalnız S veya R'den birini sürmüş olursun.
  3. D mandalı "seviyeye duyarlıdır": C yüksek olduğu süre boyunca D'yi kopyalar, sadece saat kenarında değil.
  4. Çoğu tasarım kenar tetiklemeli D flip-flop tercih eder — saat çevriminde bir kez yakalama zamanlama analizini kolaylaştırır.

4.3 D flip-flop

Kenar-tetiklemeli depolama — senkron tasarımın iş gören parçası.

  1. D flip-flop, D'yi saatin yükselen kenarında örnekler ve sonraki yükselen kenara kadar tutar.
  2. İç yapı: birbiri ardına iki D mandalı (master-slave), biri C=0'da şeffaf, biri C=1'de. Sonuç "kenar-tetiklemeli"dir.
  3. Setup süresi: D, kenardan önce stabil olmalı. Hold süresi: D kenardan sonra biraz daha stabil kalmalı. İhlalleri metastabil çıkış verir.
  4. W bit genişliğinde bir yazmaç, ortak saatli W D flip-floptan ibarettir.
  5. Bir D-flip-flop yerleştir, D'yi bir girişe, CLK'yı Clock ilkeline, Q'yu bir LED'e bağla. Q'nun yalnız saat kenarlarında değiştiğini gör.

4.4 JK flip-flop

SR gibi ama yasak durum yerine toggle.

  1. J, S gibi; K, R gibi davranır. Bonus: J=K=1 her saat kenarında çıkışı toggle eder (yasak durum yok).
  2. Saat kenarında doğruluk tablosu: J=0 K=0 tut; J=0 K=1 sıfırla; J=1 K=0 bir yap; J=1 K=1 toggle.
  3. JK sayıcılar için elverişlidir — J=K=1 bağla, her saatte ücretsiz toggle alırsın.
  4. Modern FPGA kütüphaneleri çoğunlukla yalnız D flip-flop sunar; JK'yı bir D + küçük bir MUX'tan kolayca kurarsın.

4.5 T flip-flop

T=1 iken her saat kenarında toggle, T=0 iken tut.

  1. Tek giriş T artı bir saat. T=1 → Q kenarda dönüyor; T=0 → Q tutuyor.
  2. T flip-flop ripple sayıcı için en doğal yapı taşıdır: her Q sonraki saatı besler şekilde zincirle.
  3. Eşdeğer devre: D flip-flop'a D = Q XOR T, veya JK'ya J=K=T.
  4. İki T flip-flop ile 2-bit ripple sayıcı kur: ikisi de T=1, ilkinin saatı sistem saati, ikincisi ilkinin Q'su.

5. Saat ve yazmaç — belleği eklemek

Saat, kombinasyonel mantığı durum makinesine çevirir.

  1. Yazmaç değer saklar. Her saat kenarında, enable yüksekse, veri girişini saklı değere kilitler.
  2. Saat ilkelesi her tick'te 0/1 arasında değişir. Yazmaca takınca bir-bit yanıp sönen yapı oluşur.
  3. Saat yanıp sönmesi şablonunu aç, Play'e bas, LED'in her tick'te değiştiğini izle. Hz kaydırıcısını yavaşlat.
  4. D flip-flop'lu yazmaç + saat, her senkron tasarımın temelidir. Buradan sonra her şey bunun üstüne kurulur.

4.7 Zamanlama — setup, hold ve saat periyodu

Flip-floplar ile kombinasyonel mantık arasındaki sayısal sözleşme.

  1. Setup (t_su): D, saat kenarından t_su önce stabil olmalı. Hold (t_h): D kenardan sonra t_h boyunca stabil kalmalı.
  2. Clock-to-Q (t_cq): kenardan sonra Q'nun yeni değeri yansıtması ne kadar sürer.
  3. İki flop arası kombinasyonel yol (T_clock − t_cq − t_su)'dan kısa bitmeli. İhlal ederse tasarım hızda çalışmaz.
  4. Gerçek çiplerde STA (static timing analysis) aracı her yolu yürür ve slack'i raporlar. Sıfır altı slack = saat çok hızlı.
  5. nandbench'ın motoru olay tabanlıdır, gecikme doğru değil — yani gerçek zamanlama ihlalleri görmezsin. Ama kavramsal model hâlâ geçerli.

← Tüm üniteler

nandbench'i ücretsiz aç →