语法是正确的,当我希望断言时,我混淆了两个循环,导致没有正确输出任何内容。
我试图编写一个内存调度测试台,并验证我是否在正确的时间访问了正确的地址并写入了正确的值,我想将信号内部我最重要的模块以及制定的时间表。
我尝试查找“点表示法”并使用模拟器(ModelSim)访问信号(可以在波形上很好地完成此操作),但是我希望能够使用SVA来检查我是否具有正确的值
module top(input d, output q)
//wires
wire sub1_output
// Instantiate submodule
sub_module1 sub1(.sub1_output(sub1_output));
always begin
// logic
end
endmodule
module tb_top();
reg d;
wire q;
DUT top(.*);
initial begin
// This is where I want to access something within my DUT
assert(DUT.sub1_output == 1'b1)
end
endmodule
尝试此方法时,我的代码可以编译并运行,但是如果编写断言以使其失败并停止我的代码,则不会发生任何事情。
答案 0 :(得分:0)
DUT.sub1_output
是在顶级实例内对信号使用断言的正确格式。