MicroBlaze Micro Controller System v1.3www.xilinx.com2
PG048 December 18, 2012
SECTION I: SUMMARY
IP Facts
Overview
Product Specification
Designing with the Core
MicroBlaze Micro Controller System v1.3www.xilinx.com3
PG048 December 18, 2012
IP Facts
Introduction
The LogiCORE™ MicroBlaze™ Micro Controller
System (MCS) is a complete standalone
processor system intended for controller
applications. It is highly integrated and includes
the MicroBlaze processor, local memory for
program and data storage as well as a tightly
coupled I/O module implementing a standard
set of peripherals.
The MicroBlaze processor included in the MCS
has a fixed configuration, optimized for
minimal area. The full-featured MicroBlaze
processor is available in the ISE® Design Suite
Embedded Edition and the Vivado™ IP
integrator.
Features
•MicroBlaze processor
•Local Memory
•MicroBlaze Debug Module (MDM)
LogiCORE IP Facts Table
Core Specifics
Supported
Device Family
Supported User
Interfaces
ResourcesSee Ta b le 2 -2 .
Zynq™-7000
(1)
(2)
, Virtex®-7, Kintex™-7, Artix™-7,
Virtex-6, Virtex-5, Spartan
Local Memory Bus (LMB), Dynamic
Reconfiguration Port (DRP)
®-6, Virtex-4,
Spartan-3
Provided with Core
Design Files
Example
Design
Test BenchNot Provided
Constraints FileNot Provided
Simulation
Model
Supported
S/W Driver
Design Entry
Simulation
Synthesis
(3)
Tested Design Flows
Verilog and/or VHDL Structural
(4)
ISE Design Suite 14.4
Vivado Design Suite 2012.4
Mentor Graphics ModelSim
Xilinx Synthesis Technology (XST)
ISE: VHDL
Vivado: RTL
Not Provided
Standalone
Vivado Simulator
Vivado Synthesis
(5)
•Tightly Coupled I/O Module including
I/O Bus
°
Interrupt Controller using fast interrupt
°
mode
UART
°
Fixed Interval Timers
°
Programmable Interval Timers
°
General Purpose Inputs
°
General Purpose Outputs
°
Provided by Xilinx @ www.xilinx.com/support
Notes:
1. For a complete listing of supported devices, see the release
notes for this core.
2. Supported in ISE Design Suite implementations only.
3. Standalone driver details can be found in the EDK or SDK
directory (<install_directory>/doc/usenglish/
xilinx_drivers.htm). Linux OS and driver support information is
available from //wiki.xilinx.com
4. For the supported versions of the tools, see the Xilinx Design
Tools: Release Notes Guide.
5. Supports only 7 series devices.
Support
.
MicroBlaze Micro Controller System v1.3www.xilinx.com4
PG048 December 18, 2012Product Specification
Overview
ILMB
MicroBlaze
Local
Memory Bus
LMB BRAM
Interface Controller
Block RAM
(Dual Port)
DLMB
Local
Memory Bus
LMB BRAM
Interface Controller
I/O Module
MicroBlaze
Debug
Optional Feature
The MicroBlaze™ Micro Controller System (MCS) is highly integrated standalone processor
system intended for controller applications. Data and program is stored in a local memory,
debug is facilitated by the MicroBlaze Debug Module, MDM. A standard set of peripherals
is also included, providing basic functionality like interrupt controller, UART, timers and
general purpose input and outputs.
X-Ref Target - Figure 1-1
Chapter 1
MicroBlaze Micro Controller System v1.3www.xilinx.com5
PG048 December 18, 2012
Figure 1-1:MicroBlaze Micro Controller System (MCS)
Feature Summary
MicroBlaze
The MicroBlaze embedded processor soft core is a reduced instruction set computer (RISC)
optimized for implementation in Xilinx® Field Programmable Gate Arrays (FPGAs). Detailed
information on the MicroBlaze processor can be found in the MicroBlaze Processor Reference Guide[Ref 5].
The MicroBlaze parameters in MicroBlaze MCS are fixed except for the possibility to enable/
disable the debug functionality. The values of all MicroBlaze parameters in MicroBlaze MCS
can be found in Tab le 4- 2. These values correspond to the MicroBlaze Configuration Wizard
Minimum Area configuration.
Chapter 1: Overview
Local Memory
Local memory is used for data and program storage and is implemented using block RAM.
The size of the local memory is parameterized and can be between 4kB and 64kB. The local
memory is connected to MicroBlaze through the Local Memory Bus, LMB, and the LMB
BRAM Interface Controllers. Detailed information on LMB can be found in the Local Memory
Bus (LMB) V10 data sheet [Ref 1] and detailed information on the LMB BRAM Interface
Controller can be found in the LMB BRAM Interface Controller data sheet [Ref 2].
The LMB Bus and the LMB BRAM Interface Controller parameters are fixed except for the
memory size. The value of the parameters can be found in Tabl e 4 -4, Ta ble 4-5 , Tab le 4- 6
and Tab le 4- 7.
Debug
The MicroBlaze Debug Module, MDM, connects MicroBlaze debug logic to the XMD low
level debugger. XMD can be used for downloading software, to set break points, view
register and memory contents. Detailed information about MDM can be found in the
MicroBlaze Debug Module (MDM) data sheet [Ref 3].
The MDM parameters, except the JTAG user-defined register, are fixed and their values can
be found in Tab le 4- 8.
When more than one MicroBlaze MCS instance with debug enabled is included in the same
design, a unique JTAG register must be used for each instance. When a single instance is
used, the default value USER2 should be kept unchanged.
I/O Module
The I/O Module is a light-weight implementation of a set of standard I/O functions
commonly used in a MicroBlaze processor sub-system. Detailed information about the I/O
Module can be found in the I/O Module product guide [Ref 4].
The I/O Module registers are mapped at address 0x4000000, and the I/O Bus is mapped at
address 0xC0000000-0xFFFFFFFF in the MicroBlaze memory space. The fixed I/O Module
parameter values can be found in Tabl e 4-3 .
Licensing and Ordering Information
This Xilinx LogiCORE™ IP module is provided at no additional cost with the Xilinx Vivado™
Design Suite and ISE® Design Suite tools under the terms of the Xilinx End User License
Information about this and other Xilinx LogiCORE IP modules is available at the Xilinx
Intellectual Property page. For information about pricing and availability of other Xilinx
LogiCORE IP modules and tools, contact your local Xilinx sales representative
MicroBlaze Micro Controller System v1.3www.xilinx.com6
PG048 December 18, 2012
.
.
Product Specification
Standards Compliance
The I/O Bus interface provided by the I/O Module is fully compatible with the Xilinx®
Dynamic Reconfiguration Port (DRP). For a detailed description of the DRP, see the 7 Series FPGAs Configuration User Guide[Ref 10].
Performance
The frequency and latency of the modules in the MicroBlaze™ MCS are optimized for use
together with MicroBlaze. This means that the frequency targets are aligned to MicroBlaze
targets as well as the access latency optimized for MicroBlaze data access.
Chapter 2
Maximum Frequencies
The following are clock frequencies for the target families. The maximum achievable clock
frequency can vary. The maximum achievable clock frequency and all resource counts can
be affected by the used tool flow, other tool options, additional logic in the FPGA, using
different versions of Xilinx tools, and other factors.
Table 2-1:Maximum Frequencies
ArchitectureSpeed gradeMax Frequency
Spartan®-6-4195
Virtex®-6-3300
Artix™-7-3225
Kintex™-7-3320
Virtex-7-3320
Latency
Data read from I/O Module registers is available two clock cycles after the MicroBlaze load
instruction is executed.
MicroBlaze Micro Controller System v1.3www.xilinx.com7
PG048 December 18, 2012
Chapter 2: Product Specification
Data write to I/O Module registers is performed the clock cycle after the MicroBlaze store
instruction is executed.
Data accesses to peripherals connected on the I/O Bus take three clock cycles plus the
number of wait states introduced by the accessed peripheral.
Throughput
The maximum throughput when using the I/O Bus is one read or write access every three
clock cycles.
Resource Utilization
Because the MicroBlaze MCS is a module that is used together with other parts of the
design in the FPGA, the utilization and timing numbers reported in this section are just
estimates, and the actual utilization of FPGA resources and timing of the MicroBlaze MCS
design will vary from the results reported here. All parameters not given in Tab le 2- 2 have
their default values.
Table 2-2:
Parameter Values (other parameters at default value)Device Resources
C_USE_UART_RX
11000 0 00000000546276
11150 0 00000000606340
111516500000000000620353
1115165000132000000656441
11151650001321320000658473
111516500013213213200659505
111516500013213213210675610
111516500013213213211882946
Performance and Resource Utilization Benchmarks on Virtex-6 (xc6vlx240t-1-ff1156)
LUTsFlip-Flops
C_USE_UART_TX
C_USE_FIT1
C_INTC_INTR_SIZE
C_INTC_USE_EXT_INTR
C_FIT1_No_CLOCKS
C_USE_PIT1
C_PIT1_SIZE
C_USE_GPI1
C_GPI1_SIZE
C_USE_GPO1
C_GPO1_SIZE
C_USE_IO_BUS
C_DEBUG_ENABLE
MicroBlaze Micro Controller System v1.3www.xilinx.com8
PG048 December 18, 2012
Chapter 2: Product Specification
Port Descriptions
The I/O ports and signals for MicroBlaze MCS are listed and described in Tabl e 2- 3.
Table 2-3:MicroBlaze MCS Signals
Port NameMSB:LSBI/ODescription
System Signals
ClkISystem clock
ResetISystem reset
MicroBlaze Signals
Trace_Valid_InstrOValid instruction on trace port
Trace_Instruction0:31OInstruction code
Trace_PC0:31OProgram counter
Trace_Reg_WriteOInstruction writes to the register file
Trace_Reg_Addr0:4ODestination register address
Trace_MSR_Reg0:14OMachine status register
Trace_New_Reg_Value0:31ODestination register update value
0x0 - C_MEMSIZE-1Local MemoryRWLocal Memory for MicroBlaze software
C_MEMSIZE - 0x7FFFFFFFReserved
0x80000000 - 0x800000FF
0x80000100 - 0xBFFFFFFFReserved
0xC0000000 - 0xFFFFFFFFI/O BusRWMapped to I/O Bus address output
I/O ModuleRWMapped to I/O Module registers
MicroBlaze Micro Controller System v1.3www.xilinx.com10
PG048 December 18, 2012
Designing with the Core
This chapter includes guidelines and additional information to make designing with the
core easier.
General Design Guidelines
I/O Module Interfaces
See the I/O Module Product Guide[Ref 4] for design guidelines for the I/O Bus, UART, Fixed
Interval Timer, Programmable Interval Timer, General Purpose Output, General Purpose
Input, and Interrupt Controller. All of these interfaces are directly connected to the I/O
Module inside the MicroBlaze™ MCS.
Chapter 3
MicroBlaze Trace Signals
See the MicroBlaze Processor Reference Guide [Ref 5] for a detailed description of the
MicroBlaze Trace signals. The Trace signals are directly connected to the MicroBlaze
processor inside the MicroBlaze MCS.
MicroBlaze Debug Module
See the Xilinx SDK Help[Ref 6] and the MicroBlaze Debug Module Product Guide [Ref 3] for
a description of debugging with the MicroBlaze Debug Module (MDM).
Clocking
MicroBlaze MCS is fully synchronous with all clocked elements clocked with the Clk input.
MicroBlaze Micro Controller System v1.3www.xilinx.com11
PG048 December 18, 2012
Chapter 3: Designing with the Core
Resets
The Reset input is the master reset input signal for the entire MicroBlaze MCS. In addition,
the entire MicroBlaze MCS or just the MicroBlaze processor can be reset from the Xilinx
MicroProcessor Debugger (XMD), provided that debug is enabled.
Protocol Description
See the I/O Bus timing diagrams in the I/O Module Product Guide[Ref 4].
MicroBlaze Micro Controller System v1.3www.xilinx.com12
PG048 December 18, 2012
SECTION II: VIVADO DESIGN SUITE
Customizing and Generating the Core
Constraining the Core
MicroBlaze Micro Controller System v1.3www.xilinx.com13
PG048 December 18, 2012
Chapter 4
Customizing and Generating the Core
This chapter includes information on using Xilinx tools to customize and generate the core
using the Vivado™ Design Suite.
GUI
MicroBlaze™ MCS parameters are divided in seven tabs: MCS, UART, FIT, PIT, GPO, GPI and
Interrupts. The MCS parameter tab is shown in Figure 4-1.
X-Ref Target - Figure 4-1
Figure 4-1:MCS Parameter Tab
MicroBlaze Micro Controller System v1.3www.xilinx.com14
PG048 December 18, 2012
Chapter 4: Customizing and Generating the Core
•Input Clock Frequency (MHz) - This parameter should be set to the frequency of the
core input clock in MHz. The value is used to calculate the correct UART baud rate.
•Memory Size - Defines the local memory size, used to store the MicroBlaze processor
software program instructions and data. Increase this value if the software program
does not fit in available memory.
•Enable I/O Bus - Enables I/O Bus port.
•Enable Debug Support - When debug support is enabled, it is possible to debug
software via JTAG, from Xilinx Software Development Kit (SDK) or directly using the
Xilinx Microprocessor Debugger (XMD).
•Debug JTAG User-defined Register - Specifies the JTAG user-defined register for
debug. When more than one MicroBlaze MCS instance with debug enabled is included
in the same design, a unique JTAG register must be used for each instance. When a
single instance is used, the default value USER2 should be kept unchanged.
•Enable MicroBlaze Trace Bus - This option enables the MicroBlaze Trace bus, which
provides access to several internal processor signals for trace purposes.
The UART parameter tab is shown in Figure 4-2.
X-Ref Target - Figure 4-2
Figure 4-2:UART Parameter Tab
MicroBlaze Micro Controller System v1.3www.xilinx.com15
PG048 December 18, 2012
Chapter 4: Customizing and Generating the Core
•Enable Receiver - Enables UART receiver for character input. This is automatically
connected to standard input (stdin) in the software program.
•Enable Transmitter - Enables UART transmitter for character output. This is
automatically connected to standard output (stdout) in the software program.
•Define Baud Rate - Sets the UART baud rate. To get the correct baud rate, the input
clock frequency must also be correctly defined.
•Programmable Baud Rate - Determines if the UART baud rate is programmable. The
default baud rate is calculated based on the input clock frequency and the defined
baud rate.
•Number of Data Bits - Defines the number of data bits used by the UART. Should
almost always be set to 8.
•Use Parity - Enable this parameter to use parity checking of the UART characters.
•Even or Odd Parity - Select odd or even parity. Only available when parity is used.
•Implement Receive Interrupt - Generate an interrupt when the UART has received a
character. When the interrupt is not enabled the UART must be polled to check if data
has been received.
•Implement Transmit Interrupt - Generate an interrupt when the UART has sent a
character. When the interrupt is not enabled the UART must be polled to wait until data
has been transmitted.
•Implement Error Interrupt - Generate an interrupt if an error occurs when the UART
receives a character. This error can be a framing error, an overrun error or a parity error
(if parity is used), When the interrupt is not enabled the UART must be polled to check
if an error has occurred after a character has been received.
MicroBlaze Micro Controller System v1.3www.xilinx.com16
PG048 December 18, 2012
Chapter 4: Customizing and Generating the Core
The FIT parameter tab showing the parameters for one of the four timers is shown in
Figure 4-3.
X-Ref Target - Figure 4-3
Figure 4-3:FIT Parameter Tab
•Use FIT - Enable the Fixed Interval Timer.
•Number of Clocks Between Strobes - The number of clock cycles between each
strobe.
•Generate Interrupt - Generate an interrupt for each Fixed Interval Timer strobe.
MicroBlaze Micro Controller System v1.3www.xilinx.com17
PG048 December 18, 2012
Chapter 4: Customizing and Generating the Core
The PIT parameter tab showing the parameters for one of the four timers is shown in
Figure 4-4.
X-Ref Target - Figure 4-4
Figure 4-4:PIT Parameter Tab
•Use PIT - Enable the Programmable Interval Timer.
•Number of Bits for Timer - The maximum number of cycles to count before stopping
or restarting.
•Shall Counter Value be Readable - The Programmable Interval Timer counter is
readable by software when this parameter is set.
RECOMMENDED: Unless resource usage is critical it is recommended that you keep this
enabled.
•Define Prescaler - Selects a prescaler as source for the Programmable Interval Timer
count. When no prescaler is selected the core input clock is used. Any Programmable
Interval Timer or Fixed Interval Timer can be used as prescaler, as well as a dedicated
external enable input.
•Generate Interrupt - Generate an interrupt when the Programmable Interval Timer has
counted down to zero.
MicroBlaze Micro Controller System v1.3www.xilinx.com18
PG048 December 18, 2012
Chapter 4: Customizing and Generating the Core
The GPO parameter tab showing the parameters for one of the four General Purpose Output
ports is shown in Figure 4-5.
X-Ref Target - Figure 4-5
Figure 4-5:GPO Parameter Tab
•Use GPO - Enable the General Purpose Output port.
•Number of Bits - Set the number of bits of the General Purpose Output port.
•Initial Value of GPO - Set the initial value of the General Purpose Output port. The
right most bit in the value is assigned to bit 0 of the port, the next right most to bit 1,
and so on.
MicroBlaze Micro Controller System v1.3www.xilinx.com19
PG048 December 18, 2012
Loading...
+ 44 hidden pages
You need points to download manuals.
1 point = 1 manual.
You can buy points or you can get point for every manual you upload.