Updated XDM2Kx8 to a more portable implementation

Change-Id: I37cbe56b7b0113e24855eb1c0fcf7bbe006eefd3
This commit is contained in:
David Banks
2015-11-28 11:19:27 +00:00
parent d70c378245
commit cc6c062b4b

View File

@@ -1,25 +1,9 @@
--************************************************************************************************
-- 2Kx8(16 KB) DM RAM for AVR Core(Xilinx)
-- Version 0.2
-- Designed by Ruslan Lepetenok
-- Jack Gassett for use with Papilio
-- Modified 30.07.2005
--************************************************************************************************
library IEEE; library IEEE;
use IEEE.std_logic_1164.all; use IEEE.std_logic_1164.all;
use IEEE.std_logic_unsigned.all; use IEEE.std_logic_unsigned.all;
use WORK.SynthCtrlPack.all; -- Synthesis control use WORK.SynthCtrlPack.all; -- Synthesis control
-- For Synplicity Synplify
--library virtexe;
--use virtexe.components.all;
-- Aldec
library unisim;
use unisim.vcomponents.all;
entity XDM2Kx8 is port( entity XDM2Kx8 is port(
cp2 : in std_logic; cp2 : in std_logic;
ce : in std_logic; ce : in std_logic;
@@ -32,35 +16,22 @@ end XDM2Kx8;
architecture RTL of XDM2Kx8 is architecture RTL of XDM2Kx8 is
signal RAMBlDOut : std_logic_vector(dout'range); type ram_type is array (2**(CDATAMEMSIZE+1)-1 downto 0) of std_logic_vector (7 downto 0);
signal WEB : std_logic; signal RAM : ram_type;
signal cp2n : std_logic;
signal gnd : std_logic;
signal DIP : STD_LOGIC_VECTOR(0 downto 0) := "1";
signal SSR : STD_LOGIC := '0'; -- Don't use the output resets.
begin begin
gnd <= '0'; process (cp2)
begin
WEB <= '1' when we='1' else '0'; if rising_edge(cp2) then
if ce = '1' then
if (we = '1') then
RAM_Byte:component RAMB16_S9 port map( RAM(conv_integer(address)) <= din;
DO => RAMBlDOut(7 downto 0), end if;
ADDR => address(10 downto 0), dout <= RAM(conv_integer(address));
DI => din(7 downto 0), end if;
DIP => DIP, end if;
EN => ce, end process;
SSR => SSR,
CLK => cp2,
WE => WEB
);
-- Output data mux
dout <= RAMBlDOut;
end RTL; end RTL;