İleri Konular — Dersler
İleri Konular ünitesindeki 3 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.
9.1 Statik ve dinamik tehlikeler
Kombinasyonel çıkışın giriş değişiminde neden titrediği.
- Statik tehlike: giriş değişirken çıkışın stabil kalması gerekirken anlık olarak yanlış değere düşmesi.
- Eşitsiz kapı gecikmelerinden kaynaklanır — iki yol farklı zamanlarda sonuçlanır, aradaki fark glitch'tir.
- Çözüm: geçişte çıkışı stabilize eden "consensus" / artıklı terim ekle. K-haritalarında bunlar üst üste binen gruplar olarak görünür.
- Senkron tasarım çoğunlukla glitch'i yutar — çıkış yalnız saat kenarında örneklendiği için anlık glitch'ler etkilemez.
9.2 Pipeline temelleri
Komutları üst üste bindir; saat hızını artırmadan throughput'u yükselt.
- Tek-çevrim veri yolunu aşamalara böl (IF, ID, EX, MEM, WB) ve aralara yazmaç koy. Her çevrimde her aşama farklı bir komutla uğraşır.
- Komut başına gecikme aynı, ama eş zamanlı beş komut sırada olduğu için throughput ~5× yükselir.
- Yeni sorunlar: veri tehlikeleri (sonraki komut, önceki henüz yazmadığı bir yazmacı okur), kontrol tehlikeleri (branch yönü fetch'te bilinmiyor).
- Çözümler: forwarding, branch tahmin, pipeline stall. Bu dersin kapsamı dışı ama FSM/datapath temeli üstüne kurulur.
9.3 Buradan sonra nereye?
Yosys, Icarus, FPGA — nandbench basamak taşıdır.
- nandbench yapısal Verilog netlist'i ve self-checking testbench üretir (Toolbar → menü → Export). Herhangi bir Verilog simülatörüne yükle.
- Icarus Verilog (iverilog) testbench'i komut satırından derleyip çalıştırır. Yosys aynı Verilog'u FPGA'ya hazır netlist'e sentezler.
- Gerçek FPGA akışı için Lattice iCE40 + açık kaynak Yosys → nextpnr → icestorm zincirini dene. Ücretsiz, uçtan uca.
- Büyük resim: sayısal mantık mikromimarinin, sonra işletim sistemlerinin, sonra her gün kullandığın her şeyin temelidir. İşte zemin burada.
nandbench