我有一个类似于这个的功能
function automatic int divide(int a, int b);
check_divides: assert(a % b == 0);
return a / b;
endfunction
我的模拟器拒绝编译它,并说这不再是一个常数函数。
有没有人知道是否应该允许这样做,或者是否有办法在常量函数中执行这样的断言?
答案 0 :(得分:0)
这在Questa中运行良好。虽然LRM部分 13.4.3常量函数中没有任何内容表明这是非法的,但也没有任何内容可以定义断言的动作块及其对编译的影响。