【发布时间】:2016-02-16 23:08:51
【问题描述】:
我有以下 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 编译器
【问题讨论】:
-
16#0#是什么意思?我知道 SystemVerilog,但我对 VHDL 不是很熟悉 -
没有。 16#0# 是基于文字(IEEE Std 1075-2008 15.5.3 Based literals)。该表达式的含义是基数为 16 (0) 的 0。如果您尝试定义一个 16 '0' 的数组值,它将沿着 16d"0" 的行。 (0 不是字符枚举,这是位字符串文字 (15.8)。
-
那可能是
constant X: std_logic_vector (WIDTH -1 downto 0) := (others => '0');
标签: vhdl constants system-verilog