OpenCores
URL https://opencores.org/ocsvn/mips_enhanced/mips_enhanced/trunk

Subversion Repositories mips_enhanced

[/] [mips_enhanced/] [trunk/] [grlib-gpl-1.0.19-b3188/] [lib/] [tech/] [eclipsee/] [simprims/] [eclipse.vhd] - Rev 2

Compare with Previous | Blame | View Log

 
library ieee;
use ieee.std_logic_1164.all;
 
package eclipse_components is
 
  component RAM128X18_25um is
   port (WA, RA : in std_logic_vector (6 downto 0);
         WD : in std_logic_vector (17 downto 0);
         WE, RE, WCLK, RCLK, ASYNCRD : in std_logic;
         RD : out std_logic_vector (17 downto 0) );
  end component;
 
  component RAM256X9_25um is
   port (WA, RA : in std_logic_vector (7 downto 0);
         WD : in std_logic_vector (8 downto 0);
         WE, RE, WCLK, RCLK, ASYNCRD : in std_logic;
         RD : out std_logic_vector (8 downto 0) );
  end component;
 
  component RAM512X4_25um
   port (WA, RA : in std_logic_vector (8 downto 0);
         WD : in std_logic_vector (3 downto 0);
         WE, RE, WCLK, RCLK, ASYNCRD : in std_logic;
         RD : out std_logic_vector (3 downto 0));
  end component;
 
  component RAM1024X2_25um is
  port (WA, RA : in std_logic_vector (9 downto 0);
        WD : in std_logic_vector (1 downto 0);
        WE, RE, WCLK, RCLK, ASYNCRD : in std_logic;
        RD : out std_logic_vector (1 downto 0) );
  end component;
 
end eclipse_components;
 
library ieee;
use ieee.std_logic_1164.all;
library grlib;
use grlib.stdlib.all;
 
entity eclipse_sim_ram is
   generic (abits : integer := 8; dbits : integer := 16);
   port (WA, RA : in std_logic_vector (abits-1 downto 0);
         WD : in std_logic_vector (dbits-1 downto 0);
         WE, RE, WCLK, RCLK, ASYNCRD : in std_logic;
         RD : out std_logic_vector (dbits-1 downto 0) );	
end;
 
architecture arch of eclipse_sim_ram is
  type dregtype is array (0 to 2**abits - 1) 
	of std_logic_vector(dbits -1 downto 0);
begin
 
  rp : process(rclk, wclk, re, ra, asyncrd) 
  variable rfd : dregtype;
  begin
    if rising_edge(wclk) then
      if we = '1' then rfd(conv_integer(wa)) := WD; end if;
    end if;
    if (re = '1') and (ASYNCRD = '1') then 
	RD <= rfd(conv_integer(ra));
    end if;
    if rising_edge(rclk) and (re = '1') and (ASYNCRD = '0') then 
	RD <= rfd(conv_integer(ra));
    end if;
  end process;
 
end arch;
 
library ieee;
use ieee.std_logic_1164.all;
 
entity RAM128X18_25um is
   port (WA, RA : in std_logic_vector (6 downto 0);
         WD : in std_logic_vector (17 downto 0);
         WE, RE, WCLK, RCLK, ASYNCRD : in std_logic;
         RD : out std_logic_vector (17 downto 0) );	
end RAM128X18_25um;
 
architecture arch of RAM128X18_25um is
begin
  x : entity work.eclipse_sim_ram generic map (7, 18)
      port map (wa, ra, wd, we, re, wclk, rclk, asyncrd, rd);
end arch;
 
library ieee;
use ieee.std_logic_1164.all;
 
entity RAM256X9_25um is
   port (WA, RA : in std_logic_vector (7 downto 0);
         WD : in std_logic_vector (8 downto 0);
         WE, RE, WCLK, RCLK, ASYNCRD : in std_logic;
         RD : out std_logic_vector (8 downto 0) );	
end RAM256X9_25um;
 
architecture arch of RAM256X9_25um is
begin
  x : entity work.eclipse_sim_ram generic map (8, 9)
      port map (wa, ra, wd, we, re, wclk, rclk, asyncrd, rd);
end arch;
 
library ieee;
use ieee.std_logic_1164.all;
 
entity RAM512X4_25um is
   port (WA, RA : in std_logic_vector (8 downto 0);
         WD : in std_logic_vector (3 downto 0);
         WE, RE, WCLK, RCLK, ASYNCRD : in std_logic;	
         RD : out std_logic_vector (3 downto 0));
end RAM512X4_25um;
 
architecture arch of RAM512X4_25um is
begin
  x : entity work.eclipse_sim_ram generic map (9, 4)
      port map (wa, ra, wd, we, re, wclk, rclk, asyncrd, rd);
end arch;
 
library ieee;
use ieee.std_logic_1164.all;
 
entity RAM1024X2_25um is
  port (WA, RA : in std_logic_vector (9 downto 0);
        WD : in std_logic_vector (1 downto 0);
        WE, RE, WCLK, RCLK, ASYNCRD : in std_logic;
        RD : out std_logic_vector (1 downto 0) );	
end RAM1024X2_25um;
 
architecture arch of RAM1024X2_25um is
begin
  x : entity work.eclipse_sim_ram generic map (10, 2)
      port map (wa, ra, wd, we, re, wclk, rclk, asyncrd, rd);
end arch;
 

Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.