[an error occurred while processing this directive]
|
scrambler : process(reset, clk8x)
begin
if reset = '0' then
scr_reg <= (others => '0');
nrz_l <= '0';
elsif clk8x'event and clk8x = '1' then
if rclock = '1' then
scr_reg(0) <= xor_func;
scr_reg(1) <= scr_reg(0);
scr_reg(2) <= scr_reg(1);
scr_reg(3) <= scr_reg(2);
scr_reg(4) <= scr_reg(3);
scr_reg(5) <= scr_reg(4);
scr_reg(6) <= scr_reg(5);
scr_reg(7) <= scr_reg(6);
nrz_l <= xor_func;
end if;
end if;
xor_func <= rdata_trig xor (zero_flag xor (scr_reg(5) xor scr_reg(6) ));case scr_reg is
when "00000000" => zero_flag <= '1';
when others => zero_flag <= '0';
end case;
end process scrambler;
descrambler : process(reset, clk8x, nrz_l, zero_flag, descr_reg)
begin
if reset = '0' then
descr_reg <= (others => '0');
nrz_l_descr <= '0';
elsif clk8x'event and clk8x = '1' then
if clk_event_2 = '1' then
descr_reg(0) <= nrz_l;
descr_reg(1) <= descr_reg(0);
descr_reg(2) <= descr_reg(1);
descr_reg(3) <= descr_reg(2);
descr_reg(4) <= descr_reg(3);
descr_reg(5) <= descr_reg(4);
descr_reg(6) <= descr_reg(5);
descr_reg(7) <= descr_reg(6);
nrz_l_descr <= xor_func;
end if;
end if;
xor_func <= nrz_l xor (zero_flag xor (descr_reg(5) xor descr_reg(6) ));case descr_reg is
when "00000000" => zero_flag <= '1';
when others => zero_flag <= '0';
end case;
end process descrambler;
E-mail: info@telesys.ru