1 -------------------------------------------------------------------------------     2 -- File       : MicroblazeBasicCoreWrapper.vhd     3 -- Company    : SLAC National Accelerator Laboratory     4 -- Created    : 2016-05-16     5 -- Last update: 2016-07-14     6 -------------------------------------------------------------------------------     7 -- Description: Wrapper for Microblaze Basic Core for "90% case"     8 -------------------------------------------------------------------------------     9 -- This file is part of 'SLAC Firmware Standard Library'.    10 -- It is subject to the license terms in the LICENSE.txt file found in the     11 -- top-level directory of this distribution and at:     12 --    https://confluence.slac.stanford.edu/display/ppareg/LICENSE.html.     13 -- No part of 'SLAC Firmware Standard Library', including this file,     14 -- may be copied, modified, propagated, or distributed except according to     15 -- the terms contained in the LICENSE.txt file.    16 -------------------------------------------------------------------------------    19 use ieee.std_logic_1164.
all;
    30       AXIL_ADDR_MSB_C :  := false);
  -- false = [0x00000000:0x7FFFFFFF], true = [0x80000000:0xFFFFFFFF]    32       -- Master AXI-Lite Interface    37       -- Master AXIS Interface    40       -- Slave AXIS Interface    43       -- Interrupt Interface    49 end MicroblazeBasicCoreWrapper;
    53    component MicroblazeBasicCore 
is    55          INTERRUPT        : 
in   (
7 downto 0);
    56          M0_AXIS_tdata    : 
out  (
31 downto 0);
    59          M0_AXIS_tvalid   : 
out ;
    60          M_AXI_DP_araddr  : 
out  (
31 downto 0);
    61          M_AXI_DP_arprot  : 
out  (
2 downto 0);
    62          M_AXI_DP_arready : 
in   (
0 to 0);
    63          M_AXI_DP_arvalid : 
out  (
0 to 0);
    64          M_AXI_DP_awaddr  : 
out  (
31 downto 0);
    65          M_AXI_DP_awprot  : 
out  (
2 downto 0);
    66          M_AXI_DP_awready : 
in   (
0 to 0);
    67          M_AXI_DP_awvalid : 
out  (
0 to 0);
    68          M_AXI_DP_bready  : 
out  (
0 to 0);
    69          M_AXI_DP_bresp   : 
in   (
1 downto 0);
    70          M_AXI_DP_bvalid  : 
in   (
0 to 0);
    71          M_AXI_DP_rdata   : 
in   (
31 downto 0);
    72          M_AXI_DP_rready  : 
out  (
0 to 0);
    73          M_AXI_DP_rresp   : 
in   (
1 downto 0);
    74          M_AXI_DP_rvalid  : 
in   (
0 to 0);
    75          M_AXI_DP_wdata   : 
out  (
31 downto 0);
    76          M_AXI_DP_wready  : 
in   (
0 to 0);
    77          M_AXI_DP_wstrb   : 
out  (
3 downto 0);
    78          M_AXI_DP_wvalid  : 
out  (
0 to 0);
    79          S0_AXIS_tdata    : 
in   (
31 downto 0);
    81          S0_AXIS_tready   : 
out ;
    98    -- Address space = [0x00000000:0x7FFFFFFF]   104    -- Address space = [0x80000000:0xFFFFFFFF]   120    U_Microblaze : 
component MicroblazeBasicCore
   122          -- Interrupt Interface   124          -- Master AXI-Lite Interface   125          M_AXI_DP_awaddr     => 
awaddr,
   126          M_AXI_DP_awprot     => mAxilWriteMaster.awprot,
   127          M_AXI_DP_awvalid
(0) => mAxilWriteMaster.awvalid,
   128          M_AXI_DP_wdata      => mAxilWriteMaster.wdata,
   129          M_AXI_DP_wstrb      => mAxilWriteMaster.wstrb,
   130          M_AXI_DP_wvalid
(0)  => mAxilWriteMaster.wvalid,
   131          M_AXI_DP_bready
(0)  => mAxilWriteMaster.bready,
   132          M_AXI_DP_awready
(0) => mAxilWriteSlave.awready,
   133          M_AXI_DP_wready
(0)  => mAxilWriteSlave.wready,
   134          M_AXI_DP_bresp      => 
bresp,
   135          M_AXI_DP_bvalid
(0)  => mAxilWriteSlave.bvalid,
   136          M_AXI_DP_araddr     => 
araddr,
   137          M_AXI_DP_arprot     => mAxilReadMaster.arprot,
   138          M_AXI_DP_arvalid
(0) => mAxilReadMaster.arvalid,
   139          M_AXI_DP_rready
(0)  => mAxilReadMaster.rready,
   140          M_AXI_DP_arready
(0) => mAxilReadSlave.arready,
   141          M_AXI_DP_rdata      => mAxilReadSlave.rdata,
   142          M_AXI_DP_rresp      => 
rresp,
   143          M_AXI_DP_rvalid
(0)  => mAxilReadSlave.rvalid,
   144          -- Master AXIS Interface   145          M0_AXIS_tdata       => txMaster.tdata
(31 downto 0),
   146          M0_AXIS_tlast       => txMaster.tlast,
   147          M0_AXIS_tvalid      => txMaster.tvalid,
   148          M0_AXIS_tready      => txSlave.tready,
   149          -- Slave AXIS Interface   150          S0_AXIS_tdata       => sAxisMaster.tdata
(31 downto 0),
   151          S0_AXIS_tlast       => sAxisMaster.tlast,
   152          S0_AXIS_tvalid      => sAxisMaster.tvalid,
   153          S0_AXIS_tready      => sAxisSlave.tready,
 
AXIL_RESP_Cboolean  :=   false
 
AxiStreamMasterType  :=   AXI_STREAM_MASTER_INIT_C txMaster
 
MASTER_AXI_CONFIG_GAxiStreamConfigType  :=   AXI_STREAM_CONFIG_INIT_C
 
in mAxilReadSlaveAxiLiteReadSlaveType  
 
AxiStreamMasterType  :=(tValid  => '0',tData  =>( others => '0'),tStrb  =>( others => '1'),tKeep  =>( others => '1'),tLast  => '0',tDest  =>( others => '0'),tId  =>( others => '0'),tUser  =>( others => '0')) AXI_STREAM_MASTER_INIT_C
 
COMMON_CLK_Gboolean  :=   false
 
SLAVE_AXI_CONFIG_GAxiStreamConfigType  :=   AXI_STREAM_CONFIG_INIT_C
 
out mAxilWriteMasterAxiLiteWriteMasterType  
 
in sAxisMasterAxiStreamMasterType  
 
MASTER_FIFO_Gboolean  :=   true
 
SLAVE_FIFO_Gboolean  :=   true
 
AXIL_ADDR_MSB_Cboolean  :=   false
 
out sAxisSlaveAxiStreamSlaveType  
 
out sAxisSlaveAxiStreamSlaveType  
 
AxiStreamSlaveType   txSlave
 
in interruptslv( 7 downto  0)  :=( others => '0')
 
in mAxisSlaveAxiStreamSlaveType  :=   AXI_STREAM_SLAVE_FORCE_C
 
in sAxisMasterAxiStreamMasterType  :=   AXI_STREAM_MASTER_INIT_C
 
in mAxisSlaveAxiStreamSlaveType  
 
slv( 1 downto  0)  :=   "00" AXI_RESP_OK_C
 
AxiStreamSlaveType  :=(tReady  => '1') AXI_STREAM_SLAVE_FORCE_C
 
out mAxilReadMasterAxiLiteReadMasterType  
 
out mAxisMasterAxiStreamMasterType  
 
in mAxilWriteSlaveAxiLiteWriteSlaveType  
 
out mAxisMasterAxiStreamMasterType