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

Subversion Repositories core_arm

[/] [core_arm/] [trunk/] [vhdl/] [sparc/] [dsu_mem.vhd] - Rev 4

Compare with Previous | Blame | View Log

 
 
 
 
----------------------------------------------------------------------------
--  This file is a part of the LEON VHDL model
--  Copyright (C) 1999  European Space Agency (ESA)
--
--  This library is free software; you can redistribute it and/or
--  modify it under the terms of the GNU Lesser General Public
--  License as published by the Free Software Foundation; either
--  version 2 of the License, or (at your option) any later version.
--
--  See the file COPYING.LGPL for the full details of the license.
 
 
-----------------------------------------------------------------------------
-- Entity: 	dsu_mem
-- File:	dsu_mem.vhd
-- Author:	Jiri Gaisler - Gaisler Research
-- Description:	DSU trace buffer memory
------------------------------------------------------------------------------
 
library IEEE;
use IEEE.std_logic_1164.all;
use work.leon_target.all;
use work.leon_config.all;
use work.leon_iface.all;
use work.tech_map.all;
 
entity dsu_mem is
  port (
    clk    : in  clk_type;
    dmi    : in  dsumem_in_type;
    dmo    : out dsumem_out_type
  );
end; 
 
architecture rtl of dsu_mem is
 
begin
 
  nomix : if DSUTRACE and not DSUMIXED generate
    spram0 : if not DSUDPRAM generate
      mem0 : for i in 0 to 3 generate
        ram0 : syncram generic map ( dbits => 32, abits => TBUFABITS)
        port map ( dmi.pbufi.addr(TBUFABITS-1 downto 0), clk,
	  dmi.pbufi.data(((i*32)+31) downto (i*32)), 
 	  dmo.pbufo.data(((i*32)+31) downto (i*32)), dmi.pbufi.enable, dmi.pbufi.write(i));
      end generate;
    end generate;
    dpram0 : if DSUDPRAM generate
      mem0 : for i in 0 to 1 generate
        ram0 : dpsyncram generic map ( dbits => 32, abits => TBUFABITS+1)
        port map ( dmi.pbufi.addr(TBUFABITS downto 0), clk,
 	  dmi.pbufi.data(((i*32)+31) downto (i*32)), 
	  dmo.pbufo.data(((i*32)+31) downto (i*32)), dmi.pbufi.enable, dmi.pbufi.write(i),
          dmi.abufi.addr(TBUFABITS downto 0), 
	  dmi.pbufi.data(((i*32)+31+64) downto (i*32+64)), 
	  dmo.pbufo.data(((i*32)+31+64) downto (i*32+64)), dmi.pbufi.enable, 
	  dmi.pbufi.write(i+2));
      end generate;
    end generate;
  end generate;
 
  tbmix : if DSUTRACE and DSUMIXED generate
    spram0 : if not DSUDPRAM generate
      mem0 : for i in 0 to 3 generate
        ram0 : syncram generic map ( dbits => 32, abits => TBUFABITS-1)
        port map ( dmi.pbufi.addr(TBUFABITS-2 downto 0), clk, 
	  dmi.pbufi.data(((i*32)+31) downto (i*32)), 
 	  dmo.pbufo.data(((i*32)+31) downto (i*32)), 
	  dmi.pbufi.enable, dmi.pbufi.write(i));
      end generate;
      mem1 : for i in 0 to 3 generate
        ram0 : syncram generic map ( dbits => 32, abits => TBUFABITS-1)
        port map ( dmi.abufi.addr(TBUFABITS-2 downto 0), clk,
 	  dmi.abufi.data(((i*32)+31) downto (i*32)), 
 	  dmo.abufo.data(((i*32)+31) downto (i*32)), 
	  dmi.abufi.enable, dmi.abufi.write(i));
      end generate;
    end generate;
    dpram0 : if DSUDPRAM generate
      mem0 : for i in 0 to 3 generate
        ram0 : dpsyncram generic map ( dbits => 32, abits => TBUFABITS)
        port map ( dmi.pbufi.addr(TBUFABITS-1 downto 0), clk,
	  dmi.pbufi.data(((i*32)+31) downto (i*32)), 
	  dmo.pbufo.data(((i*32)+31) downto (i*32)), 
	  dmi.pbufi.enable, dmi.pbufi.write(i),
          dmi.abufi.addr(TBUFABITS-1 downto 0), 
	  dmi.abufi.data(((i*32)+31) downto (i*32)), 
	  dmo.abufo.data(((i*32)+31) downto (i*32)), 
	  dmi.abufi.enable, dmi.abufi.write(i));
      end generate;
    end generate;
  end generate;
 
end;
 
 
 

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.