-- ============================================================== -- File generated on Wed Jun 26 16:53:30 CEST 2019 -- Vivado(TM) HLS - High-Level Synthesis from C, C++ and SystemC v2018.3 (64-bit) -- SW Build 2405991 on Thu Dec 6 23:36:41 MST 2018 -- IP Build 2404404 on Fri Dec 7 01:43:56 MST 2018 -- Copyright 1986-2018 Xilinx, Inc. All Rights Reserved. -- ============================================================== -- library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity Loop_VConvH_proc_linebuf_0_ram is generic( MEM_TYPE : string := "block"; DWIDTH : integer := 32; AWIDTH : integer := 10; MEM_SIZE : integer := 672 ); port ( addr0 : in std_logic_vector(AWIDTH-1 downto 0); ce0 : in std_logic; q0 : out std_logic_vector(DWIDTH-1 downto 0); addr1 : in std_logic_vector(AWIDTH-1 downto 0); ce1 : in std_logic; d1 : in std_logic_vector(DWIDTH-1 downto 0); we1 : in std_logic; clk : in std_logic ); end entity; architecture rtl of Loop_VConvH_proc_linebuf_0_ram is signal addr0_tmp : std_logic_vector(AWIDTH-1 downto 0); type mem_array is array (0 to MEM_SIZE-1) of std_logic_vector (DWIDTH-1 downto 0); shared variable ram : mem_array := (others=>(others=>'0')); attribute syn_ramstyle : string; attribute syn_ramstyle of ram : variable is "block_ram"; attribute ram_style : string; attribute ram_style of ram : variable is MEM_TYPE; begin memory_access_guard_0: process (addr0) begin addr0_tmp <= addr0; --synthesis translate_off if (CONV_INTEGER(addr0) > mem_size-1) then addr0_tmp <= (others => '0'); else addr0_tmp <= addr0; end if; --synthesis translate_on end process; p_memory_access_0: process (clk) begin if (clk'event and clk = '1') then if (ce0 = '1') then q0 <= ram(CONV_INTEGER(addr0_tmp)); end if; end if; end process; p_memory_access_1: process (clk) begin if (clk'event and clk = '1') then if (ce1 = '1') then if (we1 = '1') then ram(CONV_INTEGER(addr1)) := d1; end if; end if; end if; end process; end rtl; Library IEEE; use IEEE.std_logic_1164.all; entity Loop_VConvH_proc_linebuf_0 is generic ( DataWidth : INTEGER := 32; AddressRange : INTEGER := 672; AddressWidth : INTEGER := 10); port ( reset : IN STD_LOGIC; clk : IN STD_LOGIC; address0 : IN STD_LOGIC_VECTOR(AddressWidth - 1 DOWNTO 0); ce0 : IN STD_LOGIC; q0 : OUT STD_LOGIC_VECTOR(DataWidth - 1 DOWNTO 0); address1 : IN STD_LOGIC_VECTOR(AddressWidth - 1 DOWNTO 0); ce1 : IN STD_LOGIC; we1 : IN STD_LOGIC; d1 : IN STD_LOGIC_VECTOR(DataWidth - 1 DOWNTO 0)); end entity; architecture arch of Loop_VConvH_proc_linebuf_0 is component Loop_VConvH_proc_linebuf_0_ram is port ( clk : IN STD_LOGIC; addr0 : IN STD_LOGIC_VECTOR; ce0 : IN STD_LOGIC; q0 : OUT STD_LOGIC_VECTOR; addr1 : IN STD_LOGIC_VECTOR; ce1 : IN STD_LOGIC; we1 : IN STD_LOGIC; d1 : IN STD_LOGIC_VECTOR); end component; begin Loop_VConvH_proc_linebuf_0_ram_U : component Loop_VConvH_proc_linebuf_0_ram port map ( clk => clk, addr0 => address0, ce0 => ce0, q0 => q0, addr1 => address1, ce1 => ce1, we1 => we1, d1 => d1); end architecture;