Testbench
Coddy'nin Verilog Journey'sinin Temeller bölümünün bir parçası — ders 90 / 90.
Görev
Bir testbench, tasarımınıza girişler sağlar ve bir dalga formu dosyası oluşturur. Kendine ait portları yoktur.
Göreviniz
Şunları yapan bir testbench oluşturun:
clk,startvedata_in(8 bit) içinregtanımlartxiçinwirevecntiçinwire [3:0]tanımlaruart_txmodülünü örnekler (instantiate) ve tüm portları bağlar:.clk,.start,.data_in,.tx,.cnt- Bir saat sinyali (clock) üretir (her 5 zaman biriminde bir konum değiştirir)
- Bir
initialbloğu içinde:$dumpfileve$dumpvarskullanarak"uart.vcd"adında bir dalga formu dosyası oluşturur- 0 anında
clk = 0,start = 1,data_in = 8'b01000001değerlerini atar - 10 zaman birimi sonra
startsinyalini bırakır (start = 0) - 200 zaman birimi boyunca çalışır
Testbench'i çalıştırdıktan sonra, tx sinyalini doğrulamak için dalga formunu açın.
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
endmoduleTemeller bölümündeki tüm dersler
4Operatörler Bölüm 1
Aritmetik OperatörlerModül OperatörüKarşılaştırma OperatörleriÖzet - Basit MatematikBitsel Operatörler7Atama ve Kapılar
Sürekli AtamaOperatörlerle AtamaYerleşik Kapı PrimitifleriAND OR NOT KapılarıXOR XNOR KapılarıÖzet - Mantık Kapısı Devresi10Karar Yapıları
If İfadesiIf - ElseÖzet - Basit KarşılaştırıcıCase İfadesiCasex ve CasezÖzet - ALU Tasarımı5Operatörler Bölüm 2
Mantıksal Operatörlerİndirgeme OperatörleriKaydırma OperatörleriBirleştirme OperatörüKoşullu OperatörÖzet - Operatör Meydan Okuması11Döngüler
For DöngüsüWhile DöngüsüRepeat DöngüsüSonsuz DöngüDevre Dışı Bırakma İfadesiÖzet - Döngü Kalıpları3Sayı Sistemleri
İkilik GösterimBoyutlandırılmış SayılarBoyutlandırılmamış SayılarNegatif SayılarÖzel Değerler X ve ZÖzet - Sayı Formatları6Modüller
Modül YapısıGiriş ve Çıkış PortlarıInout PortlarıModül Örneklendirmeİsme Göre Port EşlemeSıraya Göre Port EşlemeÖzet - Bir Modül Oluşturun9Prosedürel Bloklar
Always BloğuInitial BloğuDuyarlılık ListesiEngelleyici AtamaEngelleyici Olmayan AtamaÖzet - Always vs Initial15Trafik Işığı Kontrolcüsü
Durumları TanımlamaDurum Makinesi Mantığı