1
0
Files
palladium_z2_demo/testbench/testbench.v_SystemVerilog
T
Wang Xuejin f5bf2e30fc maste
2025-09-22 15:30:52 +08:00

47 rindas
1.1 KiB
Plaintext

`timescale 1ns/1ps
module testbench;
// 1. 声明所有变量
reg clk;
reg reset_n;
wire [31:0] pc_out;
integer fd;
string dump_path = "/tmp/wave.vcd"; // SystemVerilog 支持直接赋值
// 实例化被测设计
top uut (
.clk(clk),
.reset_n(reset_n),
.pc_out(pc_out)
);
// 2. 生成时钟
initial begin
clk = 0;
forever #5 clk = ~clk;
end
// 3. 波形生成和错误处理
initial begin
// 尝试创建文件
fd = $fopen(dump_path, "w");
if (fd == 0) begin
string err_msg = $sformatf("ERROR: Cannot open %s for writing!", dump_path); // SystemVerilog 格式化
$display("%s", err_msg);
$finish;
end
$fclose(fd);
// 初始化波形记录
$dumpfile(dump_path);
$dumpvars(0, testbench);
$display("Waveform will be saved to %s", dump_path); // 部分工具支持 %s
// 复位和仿真控制
reset_n = 0;
#100 reset_n = 1;
#1000 $finish;
end
endmodule