|
|
-- LF_FRAME_PLACER.vhd
|
|
|
library IEEE;
|
|
|
use IEEE.std_logic_1164.all;
|
|
|
use IEEE.numeric_std.all;
|
|
|
|
|
|
|
|
|
|
|
|
entity LF_FRAME_PLACER is
|
|
|
generic(WordSize :integer := 8;WordCnt : integer := 144;MinFCount : integer := 64);
|
|
|
port(
|
|
|
clk : in std_logic;
|
|
|
Wcount : in integer range 0 to WordCnt-1;
|
|
|
Flag : out std_logic;
|
|
|
LF1 : in std_logic_vector(15 downto 0);
|
|
|
LF2 : in std_logic_vector(15 downto 0);
|
|
|
LF3 : in std_logic_vector(15 downto 0);
|
|
|
WordOut : out std_logic_vector(WordSize-1 downto 0)
|
|
|
|
|
|
);
|
|
|
end entity;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
architecture ar_LF_FRAME_PLACER of LF_FRAME_PLACER is
|
|
|
|
|
|
|
|
|
begin
|
|
|
|
|
|
process(clk)
|
|
|
begin
|
|
|
if clk'event and clk ='1' then
|
|
|
case Wcount is
|
|
|
when 5 =>
|
|
|
WordOut <= LF1(15 downto 8);
|
|
|
Flag <= '1';
|
|
|
when 6 =>
|
|
|
WordOut <= LF1(7 downto 0);
|
|
|
Flag <= '1';
|
|
|
when 13 =>
|
|
|
WordOut <= LF2(15 downto 8);
|
|
|
Flag <= '1';
|
|
|
when 14 =>
|
|
|
WordOut <= LF2(7 downto 0);
|
|
|
Flag <= '1';
|
|
|
when 21 =>
|
|
|
WordOut <= LF3(15 downto 8);
|
|
|
Flag <= '1';
|
|
|
when 22 =>
|
|
|
WordOut <= LF3(7 downto 0);
|
|
|
Flag <= '1';
|
|
|
|
|
|
when 29 =>
|
|
|
WordOut <= LF1(15 downto 8);
|
|
|
Flag <= '1';
|
|
|
when 30 =>
|
|
|
WordOut <= LF1(7 downto 0);
|
|
|
Flag <= '1';
|
|
|
when 37 =>
|
|
|
WordOut <= LF2(15 downto 8);
|
|
|
Flag <= '1';
|
|
|
when 38 =>
|
|
|
WordOut <= LF2(7 downto 0);
|
|
|
Flag <= '1';
|
|
|
when 45 =>
|
|
|
WordOut <= LF3(15 downto 8);
|
|
|
Flag <= '1';
|
|
|
when 46 =>
|
|
|
WordOut <= LF3(7 downto 0);
|
|
|
Flag <= '1';
|
|
|
|
|
|
when 53 =>
|
|
|
WordOut <= LF1(15 downto 8);
|
|
|
Flag <= '1';
|
|
|
when 54 =>
|
|
|
WordOut <= LF1(7 downto 0);
|
|
|
Flag <= '1';
|
|
|
when 61 =>
|
|
|
WordOut <= LF2(15 downto 8);
|
|
|
Flag <= '1';
|
|
|
when 62 =>
|
|
|
WordOut <= LF2(7 downto 0);
|
|
|
Flag <= '1';
|
|
|
when 69 =>
|
|
|
WordOut <= LF3(15 downto 8);
|
|
|
Flag <= '1';
|
|
|
when 70 =>
|
|
|
WordOut <= LF3(7 downto 0);
|
|
|
Flag <= '1';
|
|
|
|
|
|
when 77 =>
|
|
|
WordOut <= LF1(15 downto 8);
|
|
|
Flag <= '1';
|
|
|
when 78 =>
|
|
|
WordOut <= LF1(7 downto 0);
|
|
|
Flag <= '1';
|
|
|
when 85 =>
|
|
|
WordOut <= LF2(15 downto 8);
|
|
|
Flag <= '1';
|
|
|
when 86 =>
|
|
|
WordOut <= LF2(7 downto 0);
|
|
|
Flag <= '1';
|
|
|
when 93 =>
|
|
|
WordOut <= LF3(15 downto 8);
|
|
|
Flag <= '1';
|
|
|
when 94 =>
|
|
|
WordOut <= LF3(7 downto 0);
|
|
|
Flag <= '1';
|
|
|
|
|
|
when 101 =>
|
|
|
WordOut <= LF1(15 downto 8);
|
|
|
Flag <= '1';
|
|
|
when 102 =>
|
|
|
WordOut <= LF1(7 downto 0);
|
|
|
Flag <= '1';
|
|
|
when 109 =>
|
|
|
WordOut <= LF2(15 downto 8);
|
|
|
Flag <= '1';
|
|
|
when 110 =>
|
|
|
WordOut <= LF2(7 downto 0);
|
|
|
Flag <= '1';
|
|
|
when 117 =>
|
|
|
WordOut <= LF3(15 downto 8);
|
|
|
Flag <= '1';
|
|
|
when 118 =>
|
|
|
WordOut <= LF3(7 downto 0);
|
|
|
Flag <= '1';
|
|
|
|
|
|
when 125 =>
|
|
|
WordOut <= LF1(15 downto 8);
|
|
|
Flag <= '1';
|
|
|
when 126 =>
|
|
|
WordOut <= LF1(7 downto 0);
|
|
|
Flag <= '1';
|
|
|
when 133 =>
|
|
|
WordOut <= LF2(15 downto 8);
|
|
|
Flag <= '1';
|
|
|
when 134 =>
|
|
|
WordOut <= LF2(7 downto 0);
|
|
|
Flag <= '1';
|
|
|
when 141 =>
|
|
|
WordOut <= LF3(15 downto 8);
|
|
|
Flag <= '1';
|
|
|
when 142 =>
|
|
|
WordOut <= LF3(7 downto 0);
|
|
|
Flag <= '1';
|
|
|
|
|
|
|
|
|
when others =>
|
|
|
WordOut <= X"A5";
|
|
|
Flag <= '0';
|
|
|
end case;
|
|
|
end if;
|
|
|
end process;
|
|
|
|
|
|
|
|
|
|
|
|
end ar_LF_FRAME_PLACER;
|