如何在modelsim中进行基于OVL库断言语句的设计和验证
有谁做过相关的工作,给点帮助吧,不胜感激!
没人用过吗?自己顶一下
testbench文件如下:
module tb_assert_always();
reg reset_n, clk;
reg[7:0] count;
wire clr;
wire[2:0] fire;
always @(posedge clk)
count <= (~reset_n || clr) ? 8'b0 : (count + 8'd1);
assign clr = (count >= 8'd143) ? 1'b1 : 1'b0;
`ifdef OVL_ASSERT_ON
ovl_always #(
`OVL_ERROR,
`OVL_ASSERT,
"ERROR: count > 15",
`OVL_COVER_CORNER,
`OVL_POSEDGE,
`OVL_ACTIVE_LOW,
`OVL_GATE_CLOCK)
chk_cnt(
clk,
reset_n,
1'b1,
count <= 8'd15,
fire);
`endif
initial begin
clk = 0;
reset_n = 0;
#7 reset_n = 1;
end
always begin
#5 clk = ~clk;
end
always @(posedge clk)
$monitor("At time %t, count = %d", $time, count);
endmodule
modelsim命令运行文件run.do文件内容如下:
# All Rights Reserved.
#
# THIS WORK CONTAINS TRADE SECRET AND PROPRIETARY INFORMATION
# WHICH IS THE PROPERTY OF MENTOR GRAPHICS CORPORATION
# OR ITS LICENSORS AND IS SUBJECT TO LICENSE TERMS.
# Use this run.do file to run this example.
# Either bring up ModelSim and type the following at the "ModelSim>" prompt:
#do run.do
# or, to run from a shell, type the following at the shell prompt:
#vsim -do run.do -c
# (omit the "-c" to see the GUI while running from the shell)
onbreak {resume}
# create library
if [file exists work] {
vdel -all
}
vlib work
# compile and link C source files
#sccom -g count.cpp
#sccom -link
# compile Verilog/VHDL source files
#vlog -f filelist.ovl
vlog +define+OVL_ASSERT_ON ovl_always.v tb_assert_always.v
# open debugging windows
quietly view *
# start and run simulation
vsim tb_assert_always
run 200 ns
注意红体字,就是OVL断言库涉及内容。这样就可以在modelsim中进行《基于断言的RTL设计》了,哥们我半年前就开始做这方面的尝试了,而且是软硬协同仿真。
请问一下count.cpp,filelist.ovl
是什么文件?
filelist.ovl
是不是OVL库文件的列表?
count.cpp是我用systemC写的一个加法器的行为级模型,如果你的设计中没有包含systemC/C++模型,那么可以把
count.cpp是我用systemC写的加法器的行为级模型,如果你的仿真中没有systemC/C++模型模块,那么可以把sccom -g count.cpp和sccom -link注销掉 。
谢谢你呀,网上只能搜到问问题的,但是没有像你这样回答问题的。
还有问题:
1、你的ovl_always.vtb_assert_always.vcount.cpp 是放在同一个PROJECT里面的吗?那MODELSIM怎么能区分哪个是断言呢?
2、为什么我的ASSERTIONWINDOW没有反应?一直是空的
1. ovl_always.v是用verilog写的断言文件 ,放在project下
vlog +define+OVL_ASSERT_ON ovl_always.v tb_assert_always.v
以上编译命令中的红色字体部分可以使modelsim对断言语句进行辨认,如果没有+define+OVL_ASSERT_ON ,则在仿真时忽略断言,这个和verilog语法是一致的
在项目中好好琢磨有些问题吧,modelsim的功能是非常强大的,特别是在软硬协同仿真和验证方面
学学学学学
感觉还行
参观中!~
请问LZ这个OVL库别的仿真工具支持不?比如说VCS或者是NCSIM?
库已经下下来了,但是还是没明白怎么加到modelsim中,可不可以详细点啊,
真的不懂咧,真正学断言啦
请问modelsim6.5中能运行systemverilog的断言吗
duo xie lou zhu
可以用用formal
xuexi xuexi le
我想请教一下,OVL库可以测试功能覆盖率么?
ovl is very useful in RTL.
学习了。
谢谢小编分享