data_width : integer := 36;
...
sram_dout : out std_logic_vector(data_width - 1 downto 0);
...
SRAM_DQ : inout std_logic_vector(data_width - 1 downto 0);
...
process (clk)
begin
if rising_edge(clk) then
sram_din_r1 <= sram_din;
sram_din_r3 <= sram_din_r1 ;
end if;
end process;
...
process (clk)
begin
if rising_edge(clk) then
sram_wr_en_r1 <= not sram_wr_en;
io_direction <= sram_wr_en_r1 ;
end if;
end process;
...
IOBUF1_for:
for i in 0 to data_width - 1 generate
IOBUF_Inst: IOBUF
port map
(
O => sram_dout(i),
IO => SRAM_DQ(i),
I => sram_din_r3(i),
T => io_direction
);
end generate;