|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
卤煮最近在做OVL断言仿真,参考了前段时间论坛上大神指导,写了个测试小程序:`define OVL_ASSERT_ON
module assert_always() ;
reg reset_n,clk;
reg [7:0] count;
wire clr;
wire[2:0] fire;
always@(posedge clk)
count<=(~reset_n||clr )?8'b0count+8'd1);
assign clr=(count>=8'd143)?1'b1:1'b0;
initial
begin
clk = 0;
reset_n=0;
#200
reset_n= 1;
end
always begin
#10 clk=~clk;
end
initial begin
$fsdbDumpfile("wave.fsdb");
$fsdbDumpvars;
end
`ifdef OVL_ASSERT_ON
ovl_always
#(
`OVL_FATAL,
`OVL_ASSERT,
"ERROT:count>15,simulation finished!!!!!!!!!!!!!",
`OVL_POSEDGE,
`OVL_ACTIVE_LOW,
`OVL_GATE_CLOCK)
check_count(
clk,
reset_n,
1'b1,
count<=8'b1111,
fire);
`endif
endmodule
文件列表中包含了+incdir+OVL头文件路径。
仿真脚本
vlib work
vlog +define +OVL_ASSERT_ON -f rtl.f
vsim work.assert_always -pli D:/program/debussy/share/PLI/modelsim_pli/WINNT/novas.dll
run 5000ns
#quit -sim
仿真完毕后发现波形信号中的fire信号始终为高组态,也并没有按照断言介绍的那样违背期望就停止仿真。
modelsim的仿真报告如下。
看情况貌似关于断言的部分并没有执行,我用的modelsim版本是10.c貌似这个版本不太支持systemverilog,OVL还是支持的,请问坛子里的大神们,这个到底是为什莫?是否我的仿真设置有问题?
在modelsim中观察波形:
|
|