Is it correct to build a LFSR?

Joined
Aug 30, 2008
Messages
2
Reaction score
0
I'm intend to build a LFSR, and assign the first 576 states to an array. The taps I choose is [16, 14, 13, 11]

There's the warning:
Register <rom<1>> equivalent to <rom<0>> has been removed
Register <rom<2>> equivalent to <rom<0>> has been removed
...
Register <rom<576>> equivalent to <rom<0>> has been removed

I guess there's something wrong with my code?




type rom_type is array(0 to 576) of bit_vector(15 downto 0);

constant allzero : bit_vector(15 downto 0) := (others => '0');
signal q : bit_vector(15 downto 0) := (others => '1');
signal reset : std_logic;

signal rom : rom_type;

begin

reset <= '1' when q = allzero else '0';

process (reset) is

variable tmp : rom_type;

begin
if (reset='1') then
q <= (others => '1'); ----seed of the LFSR
else
for i in rom_type'range loop
q(0) <= q(15) xor q(13) xor q(12) xor q(10);
q(15 downto 1) <= q(14 downto 0);
tmp(i) := q;
end loop;
rom <= tmp;
end if;
end process;
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,733
Messages
2,569,440
Members
44,830
Latest member
ZADIva7383

Latest Threads

Top