⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ram_module.vhd

📁 Xilinx软核microblaze源码(VHDL)版本7.10
💻 VHD
📖 第 1 页 / 共 5 页
字号:
--------------------------------------------------------------------------------- $Id: ram_module.vhd,v 1.1 2007/10/12 09:11:36 stefana Exp $--------------------------------------------------------------------------------- ram_module.vhd - Entity and architecture----  ***************************************************************************--  **  Copyright(C) 2003 by Xilinx, Inc. All rights reserved.               **--  **                                                                       **--  **  This text contains proprietary, confidential                         **--  **  information of Xilinx, Inc. , is distributed by                      **--  **  under license from Xilinx, Inc., and may be used,                    **--  **  copied and/or disclosed only pursuant to the terms                   **--  **  of a valid license agreement with Xilinx, Inc.                       **--  **                                                                       **--  **  Unmodified source code is guaranteed to place and route,             **--  **  function and run at speed according to the datasheet                 **--  **  specification. Source code is provided "as-is", with no              **--  **  obligation on the part of Xilinx to provide support.                 **--  **                                                                       **--  **  Xilinx Hotline support of source code IP shall only include          **--  **  standard level Xilinx Hotline support, and will only address         **--  **  issues and questions related to the standard released Netlist        **--  **  version of the core (and thus indirectly, the original core source). **--  **                                                                       **--  **  The Xilinx Support Hotline does not have access to source            **--  **  code and therefore cannot answer specific questions related          **--  **  to source HDL. The Xilinx Support Hotline will only be able          **--  **  to confirm the problem in the Netlist version of the core.           **--  **                                                                       **--  **  This copyright and support notice must be retained as part           **--  **  of this text at all times.                                           **--  ***************************************************************************----------------------------------------------------------------------------------- Filename:        ram_module.vhd---- Description:     This file contains instantiations of various block RAM--                  and an HDL implementation of distributed RAM.--                  -- VHDL-Standard:   VHDL'93/02--------------------------------------------------------------------------------- Structure:   --              ram_module.vhd----------------------------------------------------------------------------------- Author:          goran-- Revision:        $Revision: 1.1 $-- Date:            $Date: 2007/10/12 09:11:36 $---- History:--   goran  2006-08-09    First Version----------------------------------------------------------------------------------- Naming Conventions:--      active low signals:                     "*_n"--      clock signals:                          "clk", "clk_div#", "clk_#x" --      reset signals:                          "rst", "rst_n" --      generics:                               "C_*" --      user defined types:                     "*_TYPE" --      state machine next state:               "*_ns" --      state machine current state:            "*_cs" --      combinatorial signals:                  "*_com" --      pipelined or register delay signals:    "*_d#" --      counter signals:                        "*cnt*"--      clock enable signals:                   "*_ce" --      internal version of output port         "*_i"--      device pins:                            "*_pin" --      ports:                                  - Names begin with Uppercase --      processes:                              "*_PROCESS" --      component instantiations:               "<ENTITY_>I_<#|FUNC>-------------------------------------------------------------------------------library IEEE;use IEEE.std_logic_1164.all;-- pragma xilinx_rtl_offlibrary unisim;use unisim.vcomponents.all;-- pragma xilinx_rtl_onlibrary Microblaze_v7_10_a;use Microblaze_v7_10_a.MicroBlaze_Types.all;--------------------------------------------------------------------------------- *************** RESTRICTIONS ***********************-- Only supports BRAM with the same size on both PORTA and PORTB-- Also only support 16kbits BRAMs-- Only supports address widths up to 14 bits-- Assumes that write enables is tied on byte enables-------------------------------------------------------------------------------entity RAM_Module is  generic (    C_TARGET     : TARGET_FAMILY_TYPE;    C_DATA_WIDTH : natural range 1 to 36 := 18;    C_ADDR_WIDTH : natural range 1 to 14 := 11;    C_FORCE_BRAM : boolean               := true);  port (    -- PORT A    CLKA      : in  std_logic;    WEA       : in  std_logic_vector(0 to 3);  -- Assume byte write handling    ENA       : in  std_logic;    ADDRA     : in  std_logic_vector(0 to C_ADDR_WIDTH-1);    DATA_INA  : in  std_logic_vector(0 to C_DATA_WIDTH-1);    DATA_OUTA : out std_logic_vector(0 to C_DATA_WIDTH-1);    -- PORT B    CLKB      : in  std_logic;    WEB       : in  std_logic_vector(0 to 3);  -- Assume byte write handling    ENB       : in  std_logic;    ADDRB     : in  std_logic_vector(0 to C_ADDR_WIDTH-1);    DATA_INB  : in  std_logic_vector(0 to C_DATA_WIDTH-1);    DATA_OUTB : out std_logic_vector(0 to C_DATA_WIDTH-1)    );end entity RAM_Module;library IEEE;use IEEE.numeric_std.all;architecture IMP of RAM_Module is  -----------------------------------------------------------------------------  -- The component declaration is needed since the RAMB16BWE primitives does  -- NOT exists in unisim.vcomponents.all unless you target a spartan3a and  -- have an EA package for Spartan3A.  -----------------------------------------------------------------------------  component RAMB16BWE    generic (      DATA_WIDTH_A : integer := 0;      DATA_WIDTH_B : integer := 0;      INIT_00 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";      INIT_01 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";      INIT_02 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";      INIT_03 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";      INIT_04 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";      INIT_05 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";      INIT_06 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";      INIT_07 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";      INIT_08 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";      INIT_09 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";      INIT_0A : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";      INIT_0B : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";      INIT_0C : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";      INIT_0D : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";      INIT_0E : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";      INIT_0F : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";      INIT_10 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";      INIT_11 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";      INIT_12 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";      INIT_13 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";      INIT_14 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";      INIT_15 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";      INIT_16 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";      INIT_17 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";      INIT_18 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";      INIT_19 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";      INIT_1A : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";      INIT_1B : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";      INIT_1C : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";      INIT_1D : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";      INIT_1E : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";      INIT_1F : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";      INIT_20 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";      INIT_21 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";      INIT_22 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";      INIT_23 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";      INIT_24 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";      INIT_25 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";      INIT_26 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";      INIT_27 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";      INIT_28 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";      INIT_29 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";      INIT_2A : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";      INIT_2B : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";      INIT_2C : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";      INIT_2D : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";      INIT_2E : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";      INIT_2F : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";      INIT_30 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";      INIT_31 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";      INIT_32 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";      INIT_33 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";      INIT_34 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";      INIT_35 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";      INIT_36 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";      INIT_37 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";      INIT_38 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";      INIT_39 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";      INIT_3A : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";      INIT_3B : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";      INIT_3C : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";      INIT_3D : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";      INIT_3E : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";      INIT_3F : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";      INIT_A : bit_vector := X"000000000";      INIT_B : bit_vector := X"000000000";      INITP_00 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";      INITP_01 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";      INITP_02 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";      INITP_03 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";      INITP_04 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";      INITP_05 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";      INITP_06 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";      INITP_07 : bit_vector := X"0000000000000000000000000000000000000000000000000000000000000000";      SIM_COLLISION_CHECK : string := "ALL";      SRVAL_A : bit_vector := X"000000000";      SRVAL_B : bit_vector := X"000000000";      WRITE_MODE_A : string := "WRITE_FIRST";      WRITE_MODE_B : string := "WRITE_FIRST"      );    port (      DOA   : out std_logic_vector (31 downto 0);      DOB   : out std_logic_vector (31 downto 0);      DOPA  : out std_logic_vector (3 downto 0);      DOPB  : out std_logic_vector (3 downto 0);      ADDRA : in  std_logic_vector (13 downto 0);      ADDRB : in  std_logic_vector (13 downto 0);      CLKA  : in  std_ulogic;      CLKB  : in  std_ulogic;      DIA   : in  std_logic_vector (31 downto 0);      DIB   : in  std_logic_vector (31 downto 0);      DIPA  : in  std_logic_vector (3 downto 0);      DIPB  : in  std_logic_vector (3 downto 0);      ENA   : in  std_ulogic;      ENB   : in  std_ulogic;      SSRA  : in  std_ulogic;      SSRB  : in  std_ulogic;      WEA   : in  std_logic_vector (3 downto 0);      WEB   : in  std_logic_vector (3 downto 0));  end component;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -