虚拟机使用的是安装好工具的,默认环境安装好。
两个模块,一个tb.v,一个led.v
tb.v如下:
`timescale 1ns/1ps
module tb();
reg clk;
reg arst;
wire led_out;
initial begin
clk = 1'b0;
forever #(5.000/2) clk = ~clk;
end
initial begin
arst = 1'b0;
#100
arst = 1'b1;
repeat(10) @(posedge clk);
arst = 1'b0;
#10000
$finish;
end
initial
begin
$fsdbDumpfile("tb.fsdb");
$fsdbDumpvars(0,tb);
end
led dut(clk,arst,led_out);
endmodule
led.v如下:
module led(
input wire clk,
input wire arst,
output wire led_out
);
reg [7:0] led_cnt;
always@(posedge clk or posedge arst)begin
if(arst)
led_cnt <= 'd0;
else
led_cnt <= led_cnt + 1'b1;
end
assign led_out = led_cnt[7];
endmodule
makefile编写如下
all:\
vcs \
sim \
verdi
vcs:
vcs -full64 -kdb -debug_access tb.v led.v
sim:
simv
verdi:
verdi -ssf tb.fsdb &
clean:
rm -rf AN.DB DVEfiles csrc simv *.simv simv.daidir *.simv.daidir ucli.key
rm -rf *.log* *.vpd *.fsdb
rm -rf verdiLog novas.conf novas.rc
参考:VCS ® User Guide P-2019.06-SP1, September 2019