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