📄 xilinx_mem.vhd
字号:
------------------------------------------------------------------------------ Simple simulation models for Xilinx block rams-- Author: Jiri Gaisler------------------------------------------------------------------------------ pragma translate_off-- simulation models for block-ramslibrary ieee;use ieee.std_logic_1164.all;library unisim;use unisim.simple_simprim.all;entity RAMB4_S16 is port ( do : out std_logic_vector (15 downto 0); addr : in std_logic_vector (7 downto 0); clk : in std_ulogic; di : in std_logic_vector (15 downto 0); en, rst, we : in std_ulogic);end;architecture behav of RAMB4_S16 isbegin x : ramb4_generic generic map (8,16) port map (di, en, we, rst, clk, addr, do); end;library ieee;use ieee.std_logic_1164.all;library unisim;use unisim.simple_simprim.all;entity RAMB4_S8 is port (do : out std_logic_vector (7 downto 0); addr : in std_logic_vector (8 downto 0); clk : in std_ulogic; di : in std_logic_vector (7 downto 0); en, rst, we : in std_ulogic);end;architecture behav of RAMB4_S8 isbegin x : ramb4_generic generic map (9,8) port map (di, en, we, rst, clk, addr, do); end;library ieee;use ieee.std_logic_1164.all;library unisim;use unisim.simple_simprim.all;entity RAMB4_S4 is port (do : out std_logic_vector (3 downto 0); addr : in std_logic_vector (9 downto 0); clk : in std_ulogic; di : in std_logic_vector (3 downto 0); en, rst, we : in std_ulogic);end;architecture behav of RAMB4_S4 isbegin x : ramb4_generic generic map (10,4) port map (di, en, we, rst, clk, addr, do); end;library ieee;use ieee.std_logic_1164.all;library unisim;use unisim.simple_simprim.all;entity RAMB4_S2 is port (do : out std_logic_vector (1 downto 0); addr : in std_logic_vector (10 downto 0); clk : in std_ulogic; di : in std_logic_vector (1 downto 0); en, rst, we : in std_ulogic);end;architecture behav of RAMB4_S2 isbegin x : ramb4_generic generic map (11,2) port map (di, en, we, rst, clk, addr, do); end;library ieee;use ieee.std_logic_1164.all;library unisim;use unisim.simple_simprim.all;entity RAMB4_S1 is port (do : out std_logic_vector (0 downto 0); addr : in std_logic_vector (11 downto 0); clk : in std_ulogic; di : in std_logic_vector (0 downto 0); en, rst, we : in std_ulogic);end;architecture behav of RAMB4_S1 isbegin x : ramb4_generic generic map (12,1) port map (di, en, we, rst, clk, addr, do); end;library ieee;use ieee.std_logic_1164.all;use ieee.numeric_std.all;entity RAMB4_SX_SX is generic (abits : integer := 10; dbits : integer := 8 ); port (DIA : in std_logic_vector (dbits-1 downto 0); DIB : in std_logic_vector (dbits-1 downto 0); ENA : in std_ulogic; ENB : in std_ulogic; WEA : in std_ulogic; WEB : in std_ulogic; RSTA : in std_ulogic; RSTB : in std_ulogic; CLKA : in std_ulogic; CLKB : in std_ulogic; ADDRA : in std_logic_vector (abits-1 downto 0); ADDRB : in std_logic_vector (abits-1 downto 0); DOA : out std_logic_vector (dbits-1 downto 0); DOB : out std_logic_vector (dbits-1 downto 0) );end;architecture behav of RAMB4_SX_SX isbegin rp : process(clka, clkb) subtype dword is std_logic_vector(dbits-1 downto 0); type dregtype is array (0 to 2**abits-1) of DWord; variable rfd : dregtype; begin if rising_edge(clka) and not is_x (addra) then if ena = '1' then doa <= rfd(to_integer(unsigned(addra))); if wea = '1' then rfd(to_integer(unsigned(addra))) := dia; end if; end if; end if; if rising_edge(clkb) and not is_x (addrb) then if enb = '1' then dob <= rfd(to_integer(unsigned(addrb))); if web = '1' then rfd(to_integer(unsigned(addrb))) := dib; end if; end if; end if; end process;end;library ieee;use ieee.std_logic_1164.all;use ieee.numeric_std.all;library unisim;use unisim.simple_simprim.all;entity RAMB4_S1_S1 is port ( doa : out std_logic_vector (0 downto 0); dob : out std_logic_vector (0 downto 0); addra : in std_logic_vector (11 downto 0); addrb : in std_logic_vector (11 downto 0); clka : in std_ulogic; clkb : in std_ulogic; dia : in std_logic_vector (0 downto 0); dib : in std_logic_vector (0 downto 0); ena : in std_ulogic; enb : in std_ulogic; rsta : in std_ulogic; rstb : in std_ulogic; wea : in std_ulogic; web : in std_ulogic );end;architecture behav of RAMB4_S1_S1 isbegin u0 : RAMB4_Sx_Sx generic map (12, 1) port map (DIA, DIB, ENA, ENB, WEA, WEB, RSTA, RSTB, CLKA, CLKB, ADDRA, ADDRB, DOA, DOB);end;library ieee;use ieee.std_logic_1164.all;library unisim;use unisim.simple_simprim.all;entity RAMB4_S2_S2 is port ( doa : out std_logic_vector (1 downto 0); dob : out std_logic_vector (1 downto 0); addra : in std_logic_vector (10 downto 0); addrb : in std_logic_vector (10 downto 0); clka : in std_ulogic; clkb : in std_ulogic; dia : in std_logic_vector (1 downto 0); dib : in std_logic_vector (1 downto 0); ena : in std_ulogic; enb : in std_ulogic; rsta : in std_ulogic; rstb : in std_ulogic; wea : in std_ulogic; web : in std_ulogic );end;architecture behav of RAMB4_S2_S2 isbegin u0 : RAMB4_Sx_Sx generic map (11, 2) port map (DIA, DIB, ENA, ENB, WEA, WEB, RSTA, RSTB, CLKA, CLKB, ADDRA, ADDRB, DOA, DOB);end;library ieee;use ieee.std_logic_1164.all;library unisim;use unisim.simple_simprim.all;entity RAMB4_S8_S8 is port ( doa : out std_logic_vector (7 downto 0); dob : out std_logic_vector (7 downto 0); addra : in std_logic_vector (8 downto 0); addrb : in std_logic_vector (8 downto 0); clka : in std_ulogic; clkb : in std_ulogic; dia : in std_logic_vector (7 downto 0); dib : in std_logic_vector (7 downto 0); ena : in std_ulogic; enb : in std_ulogic; rsta : in std_ulogic; rstb : in std_ulogic; wea : in std_ulogic; web : in std_ulogic );end;architecture behav of RAMB4_S8_S8 isbegin u0 : RAMB4_Sx_Sx generic map (9, 8) port map (DIA, DIB, ENA, ENB, WEA, WEB, RSTA, RSTB, CLKA, CLKB, ADDRA, ADDRB, DOA, DOB);end;library ieee;use ieee.std_logic_1164.all;library unisim;use unisim.simple_simprim.all;entity RAMB4_S4_S4 is port ( doa : out std_logic_vector (3 downto 0); dob : out std_logic_vector (3 downto 0); addra : in std_logic_vector (9 downto 0); addrb : in std_logic_vector (9 downto 0); clka : in std_ulogic; clkb : in std_ulogic; dia : in std_logic_vector (3 downto 0); dib : in std_logic_vector (3 downto 0); ena : in std_ulogic; enb : in std_ulogic; rsta : in std_ulogic; rstb : in std_ulogic; wea : in std_ulogic; web : in std_ulogic );end;architecture behav of RAMB4_S4_S4 isbegin u0 : RAMB4_Sx_Sx generic map (4, 10) port map (DIA, DIB, ENA, ENB, WEA, WEB, RSTA, RSTB, CLKA, CLKB, ADDRA, ADDRB, DOA, DOB);end;library ieee;use ieee.std_logic_1164.all;library unisim;use unisim.simple_simprim.all;entity RAMB4_S16_S16 is port ( doa : out std_logic_vector (15 downto 0); dob : out std_logic_vector (15 downto 0); addra : in std_logic_vector (7 downto 0); addrb : in std_logic_vector (7 downto 0); clka : in std_ulogic; clkb : in std_ulogic; dia : in std_logic_vector (15 downto 0); dib : in std_logic_vector (15 downto 0); ena : in std_ulogic; enb : in std_ulogic; rsta : in std_ulogic; rstb : in std_ulogic; wea : in std_ulogic; web : in std_ulogic );end;architecture behav of RAMB4_S16_S16 isbegin u0 : RAMB4_Sx_Sx generic map (8, 16) port map (DIA, DIB, ENA, ENB, WEA, WEB, RSTA, RSTB, CLKA, CLKB, ADDRA, ADDRB, DOA, DOB);end;library ieee;use ieee.std_logic_1164.all;library unisim;use unisim.simple_simprim.all;entity RAMB16_S1 is port ( DO : out std_logic_vector (0 downto 0); ADDR : in std_logic_vector (13 downto 0); CLK : in std_ulogic; DI : in std_logic_vector (0 downto 0); EN : in std_ulogic; SSR : in std_ulogic; WE : in std_ulogic );end;architecture behav of RAMB16_S1 isbegin x : ramb16_sx generic map (14,1) port map (do, addr, di, en, clk, we, ssr); end;library ieee;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -