View Single Post
  #3 (permalink)  
Old 12-31-2003, 08:40 AM
jussi l
Guest
 
Posts: n/a
Default Re: parallel scrambler implementation

Hi,

Just wanted to show, how to do these LFSRs in somewhat more readable. I dont
remember what was the polynominal for the register below, but I think you
get the picture...

Regards and happy new year,
juza

process (CLK1, Reset)
begin
if Reset = '1' then
LFSR_1 <= S1;
elsif CLK1'event and CLK1 = '1' then
if ena_falling = '1' then
LFSR_1(0) <= LFSR_1(1) xor LFSR_1(2) xor LFSR_1(4) xor
LFSR_1(15);
LFSR_1(15 downto 1) <= LFSR_1(14 downto 0);
end if;
end if;
end process;

"T. Irmen" <[email protected]> wrote in message news:bsrlq7$7du$[email protected]..
> Hi,
>
> my poly is G(x)= 1 + x^39 + x^58
> and my databuswith ist 64bit.
>
> And thatīs my implementation:
> ( scramble_1s is the history of the scrambler, data_0 the data input, and
> scrambled_s is current scrambling result )
>
> scramble: process(scrambled_s,data_0,scrambled1_s)
> variable scrambled_v : std_logic_vector(63 downto 0);
> begin
> if CLK'event and CLK = '1' then
> for i in 0 to 17 loop
> scrambled_v(i) := scrambled_v(7+i) XOR scrambled_v(46+i) XOR data_0(i);
> end loop;
> for i in 18 to 56 loop
> scrambled_v(i) := scrambled_v(7+i) XOR scrambled1_s(i-18) XOR

data_0(i);
> end loop;
> for i in 57 to 63 loop
> scrambled_v(i) := scrambled1_s(i-57) XOR scrambled1_s(i-18) XOR
> data_0(i);
> end loop;
> scrambled_s <= scrambled_v;
> end if;
> end process scramble;
>
> Something goes wrong here, donīt know what :-)
>
> any suggestions?
>
> thanks,
> thomas
>
>



Reply With Quote