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

📄 microblaze.vhd

📁 Xilinx软核microblaze源码(VHDL)版本7.10
💻 VHD
📖 第 1 页 / 共 5 页
字号:
--------------------------------------------------------------------------------- $Id: microblaze.vhd,v 1.3 2008/01/16 15:46:49 stefana Exp $--------------------------------------------------------------------------------- microblaze.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:        microblaze.vhd---- Description:     --                  -- VHDL-Standard:   VHDL'93/02--------------------------------------------------------------------------------- Structure:   --              microblaze.vhd----------------------------------------------------------------------------------- Author:          goran-- Revision:        $Revision: 1.3 $-- Date:            $Date: 2008/01/16 15:46:49 $---- 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;library Microblaze_v7_10_a;use Microblaze_v7_10_a.MicroBlaze_ISA.all;use Microblaze_v7_10_a.MicroBlaze_Types.all;entity MicroBlaze is  generic (    -- Generic for source code optimization    -- Currently used valuse:    --       0 = Standard FPGA source based on target family    --       1 = RTL code    C_SCO : integer := 0;    -- generics for "Data_Flow_I"    C_FAMILY               : string                 := "virtex2";    C_DATA_SIZE            : integer range 32 to 32 := 32;    C_INSTANCE             : string                 := "microblaze";    C_AREA_OPTIMIZED       : integer                := 0;    C_INTERCONNECT         : integer                := 0;    C_DPLB_DWIDTH          : integer                := 32;    C_DPLB_NATIVE_DWIDTH   : integer                := 32;    C_DPLB_BURST_EN        : integer                := 0;    C_DPLB_P2P             : integer                := 0;    C_IPLB_DWIDTH          : integer                := 32;    C_IPLB_NATIVE_DWIDTH   : integer                := 32;    C_IPLB_BURST_EN        : integer                := 0;    C_IPLB_P2P             : integer                := 0;    C_D_PLB                : integer                := 1;    C_D_OPB                : integer                := 1;    C_D_LMB                : integer                := 1;    C_I_PLB                : integer                := 1;    C_I_OPB                : integer                := 1;    C_I_LMB                : integer                := 1;    C_USE_MSR_INSTR        : integer                := 1;    C_USE_PCMP_INSTR       : integer                := 1;    C_USE_BARREL           : integer                := 1;    C_USE_DIV              : integer                := 1;    C_USE_HW_MUL           : integer                := 1;    C_USE_FPU              : integer                := 0;    C_UNALIGNED_EXCEPTIONS : integer                := 0;    C_ILL_OPCODE_EXCEPTION : integer                := 0;    C_IOPB_BUS_EXCEPTION   : integer                := 0;    C_DOPB_BUS_EXCEPTION   : integer                := 0;    C_IPLB_BUS_EXCEPTION   : integer                := 0;    C_DPLB_BUS_EXCEPTION   : integer                := 0;    C_DIV_ZERO_EXCEPTION   : integer                := 0;    C_FPU_EXCEPTION        : integer                := 0;    C_FSL_EXCEPTION        : integer                := 0;    C_USE_MMU              : integer                := 0;    C_MMU_DTLB_SIZE        : integer                := 8;    C_MMU_ITLB_SIZE        : integer                := 4;    C_MMU_TLB_ACCESS       : integer                := 3;    C_MMU_ZONES            : integer                := 16;    -- generics for PVR    C_PVR       : integer                   := 0;  -- Which PVR mode None=0, Basic=1, Full=2    C_PVR_USER1 : std_logic_vector(0 to 7)  := X"00";  -- User defined byte    C_PVR_USER2 : std_logic_vector(0 to 31) := X"00000000";  -- User defined word    -- generics for "Byte_HalfWord_Handle_I"     C_DYNAMIC_BUS_SIZING : integer := 1;  -- never used, should be removed    -- reset value for MSR register    C_RESET_MSR          : std_logic_vector(0 to 31) := (others => '0');    C_OPCODE_0x0_ILLEGAL : integer                   := 0;    -- generics for HW debugging    C_DEBUG_ENABLED         : integer              := 1;    C_NUMBER_OF_PC_BRK      : integer range 0 to 8 := 1;    C_NUMBER_OF_RD_ADDR_BRK : integer range 0 to 4 := 1;    C_NUMBER_OF_WR_ADDR_BRK : integer range 0 to 4 := 1;    -- generics for interrupts    C_INTERRUPT_IS_EDGE : integer := 0;    C_EDGE_IS_POSITIVE  : integer := 1;    -- generics for FSL Links    C_FSL_LINKS               : integer range 0 to 16:= 1;    C_FSL_DATA_SIZE           : integer := 32;    -- should be constrained to 32    C_USE_EXTENDED_FSL_INSTR  : integer := 0;    -- Generics for Instruction Cache    C_ICACHE_BASEADDR    : std_logic_vector(0 to 31) := X"00000000";    C_ICACHE_HIGHADDR    : std_logic_vector(0 to 31) := X"3FFFFFFF";    C_USE_ICACHE         : integer                   := 1;    C_ALLOW_ICACHE_WR    : integer                   := 1;    C_ADDR_TAG_BITS      : integer                   := 7;  -- can be eliminarted                                                            -- from i/f    C_CACHE_BYTE_SIZE    : integer                   := 4096;    C_ICACHE_USE_FSL     : integer                   := 1;  -- always 1    C_ICACHE_LINE_LEN    : integer                   := 4;    C_ICACHE_ALWAYS_USED : integer                   := 0;    -- Generics for Data Cache    C_DCACHE_BASEADDR    : std_logic_vector(0 to 31) := X"00000000";    C_DCACHE_HIGHADDR    : std_logic_vector(0 to 31) := X"3FFFFFFF";    C_USE_DCACHE         : integer                   := 1;    C_ALLOW_DCACHE_WR    : integer                   := 1;    C_DCACHE_ADDR_TAG    : integer                   := 7;  -- can be eliminarted                                                            -- from i/f    C_DCACHE_BYTE_SIZE   : integer                   := 4096;    C_DCACHE_USE_FSL     : integer                   := 1;  -- always 1    C_DCACHE_LINE_LEN    : integer                   := 4;    C_DCACHE_ALWAYS_USED : integer                   := 0    );  port (    -- global ports    Clk   : in std_logic;    Reset : in std_logic;    Mb_Reset : in std_logic;    -- system execution flow control    Interrupt  : in std_logic;    Ext_BRK    : in std_logic;    Ext_NM_BRK : in std_logic;    -- debug execution flow control    Dbg_Stop  : in  std_logic;    MB_Halted : out std_logic;    -- Instruction Interface Local Bus    Instr_Addr : out std_logic_vector(0 to C_DATA_SIZE-1);    I_AddrTag  : out std_logic_vector(0 to 3);    Instr      : in  std_logic_vector(0 to 31);    IFetch     : out std_logic;    I_AS       : out std_logic;    IReady     : in  std_logic;    IWait      : in  std_logic;    -- Instruction Interface PLB signals    IPLB_M_ABort      : out std_logic;    IPLB_M_ABus       : out std_logic_vector(0 to 31);    IPLB_M_UABus      : out std_logic_vector(0 to 31);    IPLB_M_BE         : out std_logic_vector(0 to (C_IPLB_DWIDTH-1)/8);    IPLB_M_busLock    : out std_logic;    IPLB_M_lockErr    : out std_logic;    IPLB_M_MSize      : out std_logic_vector(0 to 1);    IPLB_M_priority   : out std_logic_vector(0 to 1);    IPLB_M_rdBurst    : out std_logic;    IPLB_M_request    : out std_logic;    IPLB_M_RNW        : out std_logic;    IPLB_M_size       : out std_logic_vector(0 to 3);    IPLB_M_TAttribute : out std_logic_vector(0 to 15);    IPLB_M_type       : out std_logic_vector(0 to 2);    IPLB_M_wrBurst    : out std_logic;    IPLB_M_wrDBus     : out std_logic_vector(0 to C_IPLB_DWIDTH-1);    IPLB_MBusy        : in  std_logic;    IPLB_MRdErr       : in  std_logic;    IPLB_MWrErr       : in  std_logic;    IPLB_MIRQ         : in  std_logic;    IPLB_MWrBTerm     : in  std_logic;    IPLB_MWrDAck      : in  std_logic;    IPLB_MAddrAck     : in  std_logic;    IPLB_MRdBTerm     : in  std_logic;    IPLB_MRdDAck      : in  std_logic;    IPLB_MRdDBus      : in  std_logic_vector(0 to C_IPLB_DWIDTH-1);    IPLB_MRdWdAddr    : in  std_logic_vector(0 to 3);    IPLB_MRearbitrate : in  std_logic;    IPLB_MSSize       : in  std_logic_vector(0 to 1);    IPLB_MTimeout     : in  std_logic;    -- Instruction Interface OPB Bus    IM_ABus      : out std_logic_vector(0 to C_DATA_SIZE-1);    IM_BE        : out std_logic_vector(0 to (C_DATA_SIZE-1)/8);    IM_busLock   : out std_logic;    IM_DBus      : out std_logic_vector(0 to C_DATA_SIZE-1);    IM_request   : out std_logic;    IM_RNW       : out std_logic;    IM_select    : out std_logic;    IM_seqAddr   : out std_logic;    IOPB_DBus    : in  std_logic_vector(0 to 31);    IOPB_errAck  : in  std_logic;    IOPB_MGrant  : in  std_logic;    IOPB_retry   : in  std_logic;    IOPB_timeout : in  std_logic;    IOPB_xferAck : in  std_logic;    -- Data Interface Local Bus    Data_Addr    : out std_logic_vector(0 to C_DATA_SIZE-1);    D_AddrTag    : out std_logic_vector(0 to 3);    Data_Read    : in  std_logic_vector(0 to C_DATA_SIZE-1);    Data_Write   : out std_logic_vector(0 to C_DATA_SIZE-1);    D_AS         : out std_logic;    Read_Strobe  : out std_logic;    Write_Strobe : out std_logic;    DReady       : in  std_logic;    DWait        : in  std_logic;    Byte_Enable  : out std_logic_vector(0 to (C_DATA_SIZE-1)/8);    -- Data Interface PLB signals    DPLB_M_ABort      : out std_logic;    DPLB_M_ABus       : out std_logic_vector(0 to 31);    DPLB_M_UABus      : out std_logic_vector(0 to 31);    DPLB_M_BE         : out std_logic_vector(0 to (C_DPLB_DWIDTH-1)/8);    DPLB_M_busLock    : out std_logic;    DPLB_M_lockErr    : out std_logic;    DPLB_M_MSize      : out std_logic_vector(0 to 1);    DPLB_M_priority   : out std_logic_vector(0 to 1);    DPLB_M_rdBurst    : out std_logic;    DPLB_M_request    : out std_logic;    DPLB_M_RNW        : out std_logic;    DPLB_M_size       : out std_logic_vector(0 to 3);    DPLB_M_TAttribute : out std_logic_vector(0 to 15);    DPLB_M_type       : out std_logic_vector(0 to 2);    DPLB_M_wrBurst    : out std_logic;    DPLB_M_wrDBus     : out std_logic_vector(0 to C_DPLB_DWIDTH-1);    DPLB_MBusy        : in  std_logic;    DPLB_MRdErr       : in  std_logic;    DPLB_MWrErr       : in  std_logic;    DPLB_MIRQ         : in  std_logic;    DPLB_MWrBTerm     : in  std_logic;    DPLB_MWrDAck      : in  std_logic;    DPLB_MAddrAck     : in  std_logic;    DPLB_MRdBTerm     : in  std_logic;    DPLB_MRdDAck      : in  std_logic;    DPLB_MRdDBus      : in  std_logic_vector(0 to C_DPLB_DWIDTH-1);    DPLB_MRdWdAddr    : in  std_logic_vector(0 to 3);    DPLB_MRearbitrate : in  std_logic;    DPLB_MSSize       : in  std_logic_vector(0 to 1);    DPLB_MTimeout     : in  std_logic;    -- Data Interface OPB Bus    DM_ABus      : out std_logic_vector(0 to C_DATA_SIZE-1);    DM_BE        : out std_logic_vector(0 to (C_DATA_SIZE-1)/8);    DM_busLock   : out std_logic;    DM_DBus      : out std_logic_vector(0 to C_DATA_SIZE-1);    DM_request   : out std_logic;    DM_RNW       : out std_logic;    DM_select    : out std_logic;    DM_seqAddr   : out std_logic;    DOPB_DBus    : in  std_logic_vector(0 to C_DATA_SIZE-1);    DOPB_errAck  : in  std_logic;    DOPB_MGrant  : in  std_logic;    DOPB_retry   : in  std_logic;    DOPB_timeout : in  std_logic;    DOPB_xferAck : in  std_logic;    -- Debug Signals    Dbg_Clk     : in  std_logic;    Dbg_TDI     : in  std_logic;    Dbg_TDO     : out std_logic;    Dbg_Reg_En  : in  std_logic_vector(0 to 4);    Dbg_Shift   : in  std_logic;    Dbg_Capture : in  std_logic;        -- Read    Dbg_Update  : in  std_logic;        -- Write    Debug_Rst   : in  std_logic;    -- Trace signals

⌨️ 快捷键说明

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