访问Verilog中的wire / reg尺寸

时间:2015-06-04 16:25:43

标签: verilog hdl

在VHDL中,有许多预定义的属性可以帮助使代码更通用,例如:

signal sig : std_logic_vector(7 downto 0);  
-- ...  
for i in sig'range loop ...

是否有类似的方式来访问Verilog wirereg的尺寸?

当然,可以将每个wirereg的边界定义为参数,如下所示:

parameter w_upper = 7;  
parameter w_lower = 0;  
wire [w_upper:w_lower] w; 

但这似乎是很多开销,远不如VHDL那么优雅。

我已经看到SystemVerilog有$bits$size$high$low之类的内容,但是Verilog-2005或更早版本呢?

1 个答案:

答案 0 :(得分:0)

Verilog-2005没有VHDL属性的等价物('size'left'right'high'low等。

正如您在问题中提到的那样,该功能是在SystemVerilog中引入的,您可以在其中使用以下属性: $dimensions$unpacked_dimensions$left$right$low$high$increment$size