在VHDL中,有许多预定义的属性可以帮助使代码更通用,例如:
signal sig : std_logic_vector(7 downto 0);
-- ...
for i in sig'range loop ...
是否有类似的方式来访问Verilog wire
或reg
的尺寸?
当然,可以将每个wire
或reg
的边界定义为参数,如下所示:
parameter w_upper = 7;
parameter w_lower = 0;
wire [w_upper:w_lower] w;
但这似乎是很多开销,远不如VHDL那么优雅。
我已经看到SystemVerilog有$bits
,$size
,$high
和$low
之类的内容,但是Verilog-2005或更早版本呢?
答案 0 :(得分:0)
Verilog-2005没有VHDL属性的等价物('size
,'left
,'right
,'high
,'low
等。
正如您在问题中提到的那样,该功能是在SystemVerilog中引入的,您可以在其中使用以下属性:
$dimensions
,$unpacked_dimensions
,$left
,$right
,$low
,$high
,$increment
,$size
。