library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; library UNISIM; use UNISIM.VComponents.all; entity Data_Tx is Port ( clk : in std_logic; -- nothing_in : in std_logic; -- detect : in std_logic; Data : out std_logic_vector(7 downto 0); write_buffer : out std_logic; reset_buffer : out std_logic; buffer_full : in std_logic; Send_data : in std_logic ); end Data_Tx; architecture Behavioral of Data_Tx is type Zustand_typ is (S0,S1,S2,S3); SIGNAL Zustand : Zustand_typ; Signal Data_to_send : std_logic_vector(723 downto 0); begin-- : : : : : -- : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : Data_to_send <= x"322e2920696e205461726765740d0a322e29206f7574206f66207461726765740d0a332e29206e6120646174610d0a342e2920536c696365710d0a352e292064206d61780d0a362e292064206c6976650d0a0d0a28312d3629310"; process(clk) variable wartezeit : integer range 0 to 500000004 := 0; variable i : integer range 0 to 260 := 0; begin if clk'event and clk = '1' then case zustand is when S0 => if send_data = '1' then zustand <= S1; else zustand <= S0; end if; when S1 => if buffer_full = '1' then zustand <= S1; else zustand <= S2; end if; when S2 => if data_to_send(703 downto 696) = x"10" then zustand <= S0; else Data <= Data_to_send (723 downto 716); write_buffer <= '1'; zustand <= S3; end if; when S3 => write_buffer <= '0'; Data_to_send <= Data_to_send(715 downto 0) & x"00"; Zustand <= S1; end case; end if; end process; end Behavioral;