我正在为随机数发生器设计一个带有可变多项式的简单LFSR。 lfsr长度被定义为通用。我需要将起始值常量初始化为除零/ 1之外的其他内容。我之前找到了答案,但我似乎无法再找到答案。这是我正在尝试做的事情:
entity GaloisLfsr is
generic
(
g_LFSR_LENGTH : integer := 5
);
...
end entity GaloisLfsr;
architecture zGaloisLfsr of GaloisLfsr is
constant c_INITIAL : std_logic_vector((g_LFSR_LENGTH - 1) downto 0) := ((others => '0'), '1');
将不同大小的常量定义为纯'(其他=>'0')无法捕获的常量的正确语法是什么?
答案 0 :(得分:1)
假设有人想将5位常量c_INITIAL
初始化为"00001"
,那么常量的声明将是:
constant c_INITIAL : std_logic_vector((g_LFSR_LENGTH - 1) downto 1) := ((others => '0'), 0 => '1');
答案 1 :(得分:0)
您可以将自然/整数转换为矢量
use IEEE.NUMERIC_STD.ALL;
...
constant c_INITIAL : std_logic_vector((g_LFSR_LENGTH - 1) downto 0) := std_logic_vector(to_unsigned(g_polynomial , g_LFSR_LENGTH));