具有定义宽度的 SystemVerilog 参数
SystemVerilog Parameters with defined width
我有以下定义特定宽度常量的 VHDL 代码。
constant WIDTH : natural := 16
constant X : std_logic_vector(WIDTH - 1 downto 0) := std_logic_vector(to_unsigned(16#0#, WIDTH));
如何在 SystemVerilog 中定义这样的东西?
我假设这样的东西对应于
parameter WIDTH = 16
parameter X = WIDTH'd1231413412
但这似乎不适用于我的 Verilog 编译器
应该是这样的:
parameter WIDTH = 16;
parameter [WIDTH-1:0] X = 0;
它将与 SystemVerilog (IEEE1800) 和自 2001 年以来的 Verilog (IEEE1364-2001) 一起工作。如果您受困于仅支持 Verilog 1995 (IEEE1364-1995) 的陈旧模拟器,它将无法工作。
它是 Verilog,很少需要指定无符号常量的宽度。但如果你确实需要,那就是:
parameter WIDTH = 16
parameter bit [WIDTH-1:0] X = 'd1231413412
请注意,一旦您定义了具有数据类型的参数,您只能覆盖其值,而不能覆盖其类型。
我有以下定义特定宽度常量的 VHDL 代码。
constant WIDTH : natural := 16
constant X : std_logic_vector(WIDTH - 1 downto 0) := std_logic_vector(to_unsigned(16#0#, WIDTH));
如何在 SystemVerilog 中定义这样的东西?
我假设这样的东西对应于
parameter WIDTH = 16
parameter X = WIDTH'd1231413412
但这似乎不适用于我的 Verilog 编译器
应该是这样的:
parameter WIDTH = 16;
parameter [WIDTH-1:0] X = 0;
它将与 SystemVerilog (IEEE1800) 和自 2001 年以来的 Verilog (IEEE1364-2001) 一起工作。如果您受困于仅支持 Verilog 1995 (IEEE1364-1995) 的陈旧模拟器,它将无法工作。
它是 Verilog,很少需要指定无符号常量的宽度。但如果你确实需要,那就是:
parameter WIDTH = 16
parameter bit [WIDTH-1:0] X = 'd1231413412
请注意,一旦您定义了具有数据类型的参数,您只能覆盖其值,而不能覆盖其类型。