我有以下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编译器不兼容
答案 0 :(得分:1)
It Verilog,您很少需要指定无符号常量的宽度。但如果你确实需要,那就是:
parameter WIDTH = 16
parameter bit [WIDTH-1:0] X = 'd1231413412
请注意,一旦使用数据类型定义参数,您只能覆盖其值,而不是其类型。
答案 1 :(得分:0)
它应该类似于以下内容:
parameter WIDTH = 16;
parameter [WIDTH-1:0] X = 0;
自2001年起,它将与SystemVerilog(IEEE1800)和Verilog一起使用(IEEE1364-2001)。如果您遇到仅支持Verilog 1995(IEEE1364-1995)的古老模拟器,它将无法工作。