--------------------------------------------------------------------------- -- (c) 2016 Alexey Spirkov -- I am happy for anyone to use this for non-commercial use. -- If my verilog/vhdl/c files are used commercially or otherwise sold, -- please contact me for explicit permission at me _at_ alsp.net. -- This applies for source and binary form and derived works. library ieee; use ieee.std_logic_1164.all; entity hdmi_delay_line is generic( G_WIDTH : integer := 40; G_DEPTH : integer := 11); port ( I_CLK : in std_logic; I_D : in std_logic_vector(G_WIDTH-1 downto 0); O_Q : out std_logic_vector(G_WIDTH-1 downto 0)); end hdmi_delay_line; architecture rtl of hdmi_delay_line is type t_q_pipe is array(0 to G_DEPTH-1) of std_logic_vector(G_WIDTH-1 downto 0); signal q_pipe : t_q_pipe; begin process_pipe : process(i_clk) begin if(rising_edge(i_clk)) then q_pipe <= I_D&q_pipe(0 to q_pipe'length-2); end if; end process process_pipe; O_Q <= q_pipe(q_pipe'length-1); end rtl;