Generate Döngüleri
Coddy'nin Verilog Journey'sinin RTL Tasarımı ve Doğrulama bölümünün bir parçası. Ders 13 / 38.
Bir generate-for döngüsü, elaborasyon sırasında tekrarlanan donanım oluşturur. genvar dizini, çalışma zamanında değişen bir yazmaç değildir. Adlandırılmış generate blokları, oluşturulan örnekler veya atamalar için öngörülebilir hiyerarşik adlar sağlar. Döngü sınırları elaborasyon zamanı sabitleri olmalıdır.
İlgili alıntı; çevreleyen bildirimler ve bağlantılar görevde sağlanmıştır.
genvar i;
generate
for(i=0;i<WIDTH;i=i+1) begin: bitcell
assign y[i] = a[i] ^ b[i];
end
endgenerateHer yineleme, bir saat çevrimi tüketmek yerine ayrı bir bit düzeyi işlemi açımlar.
Elaborasyon sırasında tekrarlanan yapıyı tanımlamak için sabit sınırlarla genvar kullanın.
Görev
OrtaAdlandırılmış bir generate-for döngüsüyle ve genvar i kullanarak her bit için bir sürekli atama oluşturun; böylece y[i] = a[i] XOR b[i] üretilir. WIDTH pozitiftir. Kilitli testbench, daha dar örnekler için a ve b'nin düşük bitlerini kullanarak WIDTH değerleri 1, 4 ve 8 olan örnekler oluşturur. Çıktı sütunları ondalık biçimde y1, y4 ve y8'dir.
design.v dosyasını tamamlayın ve modül adlarını ve portlarını koruyun. Kilitli testbench.v, giriş değişikliklerini sağlar ve kararlı hâle geldikten sonra çıktıları yazdırır. +CASE=1 gibi bir simülatör bağımsız değişkenini kullanarak bir senaryo seçer; standart girdi gerekmez. Tasarıma yazdırma, gecikme veya simülasyon sonlandırma eklemeyin. Beklenen çıktı, her gözlem için bir satır ondalık değer olup değerler tek bir boşlukla ayrılmalı ve satır yeni satır karakteriyle bitmelidir.
Kendin dene
module dut #(parameter WIDTH=4) (input [WIDTH-1:0] a,b, output [WIDTH-1:0] y);
// Parametreli devreyi uygulayın.
assign y = 0;
endmoduleBu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
RTL Tasarımı ve Doğrulama bölümündeki tüm dersler
1Güvenilir Kombinasyonel RTL
Varsayılanlar Latch'leri ÖnlerÖncelikli KodlayıcılarOne-Hot DoğrulamaGüvenli Case Kod ÇözmeÖzet - İstek Yönlendirici2Bit Genişlikleri ve İşaretli Aritmetik
Taşıma Bitlerini Korumakİşaretli KarşılaştırmalarAritmetik Sağa KaydırmalarTaşma ve DoygunlukÖzet - İşaretli Fark3Yeniden Kullanılabilir RTL
Kombinasyonel FonksiyonlarGenişlik Uyumlu ParametrelerGenerate DöngüleriKoşullu GenerateÖzet - Yeniden Kullanılabilir Bit Maskesi6Kendi Kendini Denetleyen Testbench'ler
Dört Durumlu DenetimlerYeniden Kullanılabilir Denetleyici GörevleriReferans Modelleri ve SkorlarSınır ve Kontrol KapsamıÖzet - Toplayıcı DenetimiKendi başına pratik yap: Online Verilog derleyicisi