我需要在SystemVerilog中创建一个函数,并将返回值作为参数化位向量。 我的代码如下:
class my_class #(parameter ADDR_WIDTH = 32);
bit [ADDR_WIDTH-1:0] address;
function bit [ADDR_WIDTH-1:0] get_address();
return address;
endfunction : get_address
endclass : my_class
我在函数声明中得到一个编译时错误,说明没有定义参数ADDR_WIDTH
。任何人都可以解释为什么会这样吗?没有参数也是如此(即如果我有一个像bit [31:0]
这样的已知值。
答案 0 :(得分:1)
您在原始示例中显示的代码没有任何问题,我在早期版本的Questa上尝试过。通常,当您在看起来非常精细的代码上遇到无法解释的错误时,您要么使用的版本太旧,要么真正的错误位于相关代码之上的一行上。