有没有办法disable一个module
时间:12-12
整理:3721RD
点击:
因为所有case和env都是一次compile的,然后用$uvm_test指定run哪个case,
checker封装在module里面,但对于有些case,某些checker的module不能打开,需
要disable掉。所以ifdef在这种情况下是不能用的
module里面类似这样呼叫自定义pli的code,这code在某些case下不希望被执行到
always(...)begin
aaa = 1;
$mydefine_pli_func_aaa(aaa,bbb);// 在某些case下不希望执行
end
现在做法,每个always加多个check_en,但是checker很多,owner也多,觉得还是
比较麻烦,即使写script
always(... && check_en)begin
aaa = 1;
$mydefine_pli_func_aaa(aaa,bbb);// 在某些case下不希望执行
end
如果能这样就更好了 disable module_check1; 但是disable不能disable一个
module
想过利用SVA来处理,然后用$assertoff(),但下面这code应该不符合SVA语法
assert property(...)begin
aaa = 1;
$mydefine_pli_func_aaa(aaa,bbb);// 在某些case下不希望执行
end
大家有没有更好做法,谢谢~
checker封装在module里面,但对于有些case,某些checker的module不能打开,需
要disable掉。所以ifdef在这种情况下是不能用的
module里面类似这样呼叫自定义pli的code,这code在某些case下不希望被执行到
always(...)begin
aaa = 1;
$mydefine_pli_func_aaa(aaa,bbb);// 在某些case下不希望执行
end
现在做法,每个always加多个check_en,但是checker很多,owner也多,觉得还是
比较麻烦,即使写script
always(... && check_en)begin
aaa = 1;
$mydefine_pli_func_aaa(aaa,bbb);// 在某些case下不希望执行
end
如果能这样就更好了 disable module_check1; 但是disable不能disable一个
module
想过利用SVA来处理,然后用$assertoff(),但下面这code应该不符合SVA语法
assert property(...)begin
aaa = 1;
$mydefine_pli_func_aaa(aaa,bbb);// 在某些case下不希望执行
end
大家有没有更好做法,谢谢~
做2个模块,一个真实的,一个虚拟的,接口一样
外面用mux选择信号