Testbench
Termasuk bagian Dasar-Dasar dalam perjalanan Verilog di Coddy. Pelajaran 90 dari 90.
Tantangan
testbench memberikan input ke desainmu dan membuat file waveform. testbench tidak memiliki port sendiri.
Tugasmu
Buat testbench yang:
- Mendeklarasikan
reguntukclk,start, dandata_in(8 bit) - Mendeklarasikan
wireuntuktxdanwire [3:0]untukcnt - Membuat instance module
uart_tx, dengan menghubungkan semua port:.clk,.start,.data_in,.tx,.cnt - Membuat clock (berubah setiap 5 unit waktu)
- Di dalam blok
initial:- Membuat file waveform bernama
uart.vcdmenggunakan$dumpfiledan$dumpvars - Mengatur
clk = 0,start = 1,data_in = 8'b01000001pada waktu 0 - Menonaktifkan
startsetelah 10 unit waktu (start = 0) - Lalu menunggu 200 unit waktu lagi dan memanggil
$finish(sehingga simulasi berakhir pada waktu 210)
- Membuat file waveform bernama
Setelah menjalankan testbench, buka waveform untuk memeriksa sinyal tx.
Coba sendiri
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
endmoduleSemua pelajaran di Dasar-Dasar
1Pengantar
Apa Itu VerilogPerangkat Keras vs Perangkat LunakModul PertamamuKomentarTingkat Abstraksi Desain4Operator Bagian 1
Operator AritmetikaOperator ModuloOperator PerbandinganUlasan, Matematika SederhanaOperator Bitwise7Penugasan dan Gerbang
Penugasan KontinuPenugasan dengan OperatorPrimitif Gerbang BawaanGerbang AND, OR, NOTGerbang XOR, XNORUlasan: Rangkaian Gerbang Logika10Pengambilan Keputusan
Pernyataan IfIf - ElseRangkuman: Komparator SederhanaPernyataan CaseCasex dan CasezRangkuman: Desain ALU5Operator Bagian 2
Operator LogikaOperator ReduksiOperator GeserOperator PenggabunganOperator KondisionalRangkuman, Tantangan Operator3Sistem Bilangan
Representasi BinerBilangan BerukuranBilangan Tanpa UkuranBilangan NegatifNilai Khusus X dan ZRingkasan: Format Bilangan6Modul
Struktur ModulPort Input dan OutputPort InoutInstansiasi ModulPemetaan Port Berdasarkan NamaPemetaan Port Berdasarkan UrutanRangkuman: Bangun Modul9Blok Prosedural
Blok alwaysBlok initialDaftar SensitivitasPenugasan BlockingPenugasan Non-BlockingRangkuman: always vs initial15Pengendali Lampu Lalu Lintas
Menentukan StatusLogika Mesin StatusLatihan sendiri: Compiler Verilog online