Testbench
Coddy'nin Verilog Journey'sinin Temel Bilgiler bölümünün bir parçası. Ders 90 / 90.
Görev
Bir test düzeneği, tasarımınıza girişler sağlar ve bir dalga biçimi dosyası oluşturur. Kendi bağlantı noktaları yoktur.
Görevin
Şunları yapan bir test düzeneği oluştur:
clk,startvedata_in(8 bit) içinregtanımlatxiçinwirevecntiçinwire [3:0]tanımlauart_txmodülünün bir örneğini oluştur ve tüm bağlantı noktalarını bağla:.clk,.start,.data_in,.tx,.cnt- Bir saat sinyali oluştur (her 5 zaman biriminde bir değiştir)
initialbloğunun içinde:$dumpfileve$dumpvarskullanarakuart.vcdadlı bir dalga biçimi dosyası oluştur- Zaman 0'da
clk = 0,start = 1,data_in = 8'b01000001değerlerini ata - 10 zaman birimi sonra
startsinyalini serbest bırak (start = 0) - Ardından 200 zaman birimi daha bekle ve
$finishçağrısını yap (böylece simülasyon 210. zamanda sona erer)
Test düzeneğini çalıştırdıktan sonra tx sinyalini doğrulamak için dalga biçimini aç.
Kendin dene
module uart_tx (
input clk,
input start,
input [7:0] data_in,
output reg tx,
output reg [3:0] cnt
);
reg [9:0] shift_reg;
initial begin
cnt = 0;
tx = 1;
shift_reg = 0;
end
always @(posedge clk) begin
if (cnt == 0 && start) begin
shift_reg <= {1'b1, data_in, 1'b0};
cnt <= 1;
end
else if (cnt > 0 && cnt < 9) begin
tx <= shift_reg[0];
shift_reg <= shift_reg >> 1;
cnt <= cnt + 1;
end
else if (cnt == 9) begin
tx <= shift_reg[0];
shift_reg <= shift_reg >> 1;
cnt <= 0;
end
end
endmoduleTemel Bilgiler bölümündeki tüm dersler
4Operatörler Bölüm 1
Aritmetik OperatörlerMod Alma OperatörüKarşılaştırma OperatörleriTekrar - Basit MatematikBit Düzeyi Operatörleri7Atama ve Kapılar
Sürekli AtamaOperatörlerle AtamaYerleşik Kapı PrimitifleriAND, OR ve NOT KapılarıXOR ve XNOR KapılarıÖzet - Mantık Kapısı Devresi10Karar Verme
If İfadesiIf - ElseTekrar - Basit KarşılaştırıcıCase İfadesiCasex ve CasezTekrar - ALU Tasarımı2Veri Türleri
Wire TürüReg TürüTamsayı ve GerçelVektörlerDizilerParametrelerÖzet - Sinyalleri Tanımlama5Operatörler Bölüm 2
Mantıksal Operatörlerİndirgeme OperatörleriKaydırma OperatörleriBirleştirme OperatörüKoşullu OperatörTekrar - Operatör Meydan Okuması11Döngüler
For DöngüsüWhile DöngüsüTekrar DöngüsüSonsuz DöngüDevre Dışı Bırakma İfadesiTekrar - Döngü Kalıpları3Sayı Sistemi
İkili GösterimBoyutlu SayılarBoyutsuz SayılarNegatif SayılarÖzel X ve Z DeğerleriTekrar - Sayı Biçimleri6Modüller
Modül YapısıGiriş ve Çıkış PortlarıÇift Yönlü PortlarModül ÖrneklendirmeAda Göre Port EşlemeSıraya Göre Port EşlemeTekrar - Bir Modül Oluşturma9Prosedürel Bloklar
Always BloğuInitial BloğuDuyarlılık ListesiBloklayıcı AtamaBloklamayan AtamaTekrar - Always ve Initial Karşılaştırması15Trafik Işığı Denetleyicisi
Durumları TanımlamaDurum Makinesi MantığıKendi başına pratik yap: Online Verilog derleyicisi