Genişlik Uyumlu Parametreler
Coddy'nin Verilog Journey'sinin RTL Tasarımı ve Doğrulama bölümünün bir parçası. Ders 12 / 38.
Temeller, yapılandırılabilir genişlikleri tanıttı. Yeniden kullanılabilir RTL, yasal en küçük genişliği de ele almalı, ara ifadeleri bilinçli olarak boyutlandırmalı ve sabit kodlanmış bit konumlarından kaçınmalıdır. Çoğaltma {WIDTH{1'b1}}, genişlikle eşleşen bir maske oluşturur. Parametreler çalışma zamanı denetimleri değil, ayrıştırma sabitleridir.
İlgili alıntı; çevreleyen bildirimler ve bağlantılar görevde sağlanmıştır.
wire [WIDTH:0] sum;
assign sum = {1'b0,a} + {1'b0,b};
assign y = sum[WIDTH] ? {WIDTH{1'b1}} : sum[WIDTH-1:0];Hem taşıma konumu hem de doyma değeri, yapılandırılan genişliğe uyum sağlar.
Yasal minimum genişliği test edin ve genişliğe bağlı her dilimi ve sabiti parametrelerden türetin.
Görev
OrtaDüşük WIDTH bitlik a+1 değerini döndüren bir WIDTH-bit artırıcı oluşturun. b girdisi kullanılmaz. Aynı modül hem WIDTH=1 hem de daha geniş bit genişlikleriyle çalışmalıdır. WIDTH pozitiftir. Kilitli testbench, dar örneklemeler için a ve b'nin düşük bitlerini kullanarak WIDTH değerlerini 1, 4 ve 8 olarak örnekler. Çı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 çıktılar kararlı hâle geldikten sonra bunları yazdırır. +CASE=1 gibi bir simülatör bağımsız değişkeni kullanarak bir senaryo seçer; standart girdiye gerek yoktur. Tasarıma yazdırma, gecikme veya simülasyonu sonlandırma eklemeyin. Beklenen çıktı, her gözlem için bir satır ondalık değer olmalı; 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