--STAT(0): Busy reading from media
--STAT(1): Busy writing to media
--STAT(31 downto 24): Datain(63 downto 56
+ --STAT(11 downto 8): INT2MED state
+ --STAT(15 downto 12): MED2INT state
+
CTRL: in STD_LOGIC_VECTOR (31 downto 0)
--CTRL(24..31) -> lvds-data(63 downto 56) via lvds
--once for each packet
if MED_TRANSMISSION_CLK_IN = '1' and MED_CARRIER_IN = '1' then
next_MED2INT_state <= "1010";
next_DAT_MED2INT(25 downto 13) <= MED_DATA_IN(12 downto 0);
+ else
+ next_MED2INT_state <= "0001";
end if;
when "1010" =>
if MED_TRANSMISSION_CLK_IN = '0' then
if MED_TRANSMISSION_CLK_IN = '1' and MED_CARRIER_IN = '1' then
next_MED2INT_state <= "1011";
next_DAT_MED2INT(38 downto 26) <= MED_DATA_IN(12 downto 0);
+ else
+ next_MED2INT_state <= "0010";
end if;
when "1011" =>
if MED_TRANSMISSION_CLK_IN = '0' then
if MED_TRANSMISSION_CLK_IN = '1' and MED_CARRIER_IN = '1' then
next_MED2INT_state <= "1100";
next_DAT_MED2INT(51 downto 39) <= MED_DATA_IN(12 downto 0);
+ else
+ next_MED2INT_state <= "0011";
end if;
when "1100" =>
if MED_TRANSMISSION_CLK_IN = '0' then
if MED_TRANSMISSION_CLK_IN = '1' and MED_CARRIER_IN = '1' then
next_MED2INT_state <= "0110";
next_DAT_MED2INT(64 downto 52) <= MED_DATA_IN(12 downto 0);
+ else
+ next_MED2INT_state <= "0100";
end if;
when "0110" =>
next_INT_DATA_OUT <= DAT_MED2INT(55 downto 0);