Microsemi makes no warranty, representation, or guarantee regarding the information contained herein or the suitability of its
Corporation. All other trademarks and service marks are the property of their respective owners.
Microsemi Corporate Headquarters
www.microsemi.com
products and services for any particular purpose, nor does Microsemi assume any liability whatsoever arising out of the application or
use of any product or circuit. The products sold hereunder and any other products sold by Microsemi have been subject to limited
testing and should not be used in conjunction with mission-critical equipment or applications. Any performance specifications are
believed to be reliable but are not verified, and Buyer must conduct and complete all performance and other testing of the products,
alone and together with, or installed in, any end-products. Buyer shall not rely on any data and performance specifications or
parameters provided by Microsemi. It is the Buyer’s responsibility to independently determine suitability of any products and to test
and verify the same. The information provided by Microsemi hereunder is provided “as is, where is” and with all faults, and the entire
risk associated with such information is entirely with the Buyer. Microsemi does not grant, explicitly or implicitly, to any party any
patent rights, licenses, or any other IP rights, whether with regard to such information itself or anything described by such
information. Information provided in this document is proprietary to Microsemi, and Microsemi reserves the right to make any
changes to the information in this document or to any products and services at any time without notice.
About Microsemi
Microsemi Corporation (Nasdaq: MSCC) offers a comprehensive portfolio of semiconductor and system solutions for aerospace &
defense, communications, data center and industrial markets. Products include high-performance and radiation-hardened analog
mixed-signal integrated circuits, FPGAs, SoCs and ASICs; power management products; timing and synchronization devices and precise
One Enterprise, Aliso Viejo,
CA 92656 USA
Within the USA: +1 (800) 713-4113
Outside the USA: +1 (949) 380-6100
Sales: +1 (949) 380-61 36
Fax: +1 (949) 215-4996
E-mail: sales.support@microsemi.com
time solutions, setting the world's standard for time; voice processing devices; RF solutions; discrete components; enterprise storage
and communication solutions; security technologies and scalable anti-tamper products; Ethernet solutions; Power-over-Ethernet ICs
and midspans; as well as custom design capabilities and services. Microsemi is headquartered in Aliso Viejo, Calif., and has
approximately 4,800 employees globally. Learn more at www.microsemi.com
The revision history describes the changes that were implemented in the document. The changes
are listed by revision, starting with the most current publication.
1.1 Release 1.0
Revision 1.0 is the first production-level publication of this document. Created for
MiV_RV32IMAF_L1_AHB v2.0.
50200801 Handbook 1 3
Page 4
HB0801: MiV_RV32IMAF_L1_AHB V2.0 Handbook
Contents
Revision History .............................................................................................................................. 3
2.3Core Version ............................................................................................................................................... 9
3.4Memory System ....................................................................................................................................... 12
6.6Synthesis in Libero ................................................................................................................................... 19
6.7Place-and-Route in Libero ........................................................................................................................ 19
7.1Example System ....................................................................................................................................... 20
Figure 3 Example Five Stage Pipelined Architecture ................................................................................................... 12
The MiV_RV32IMAF_L1_AHB is a softcore processor designed to implement the RISC-V instruction
set for use in Microsemi FPGAs. The processor is based on the Coreplex E31 designed by SiFive,
containing a high-performance single-issue, in-order execution pipeline E31 32-bit RISC-V core. The
core includes an industry-standard JTAG interface to facilitate debug access, along with separate
AHB bus interfaces for memory access and support for 31 dedicated interrupt ports.
Figure 1 MiV_RV32IMAF_L1_AHB Block Diagram
50200801 Handbook 1 8
Page 9
HB0801: MiV_RV32IMAF_L1_AHB V2.0 Handbook
2.2 Features
• Designed for low power ASIC microcontroller and FPGA soft-core implementations.
• Integrated 8Kbytes instructions cache and 8Kbytes data cache.
• A Platform-Level Interrupt Controller (PLIC) can support up to 31 programmable interrupts with
a single priority level.
• Supports the RISC-V standard RV32IMAF ISA.
• On-Chip debug unit with a JTAG interface.
• Two external AHB interfaces for IO and memory.
2.3 Core Version
This Handbook applies to MiV_RV32IMAF_L1_AHB version 2.0.
Note: There are two accompanying manuals for this core:
• The RISC-V Instruction Set Manual, Volume 1, User Level ISA, Version 2.1
• The RISC-V Instruction Set Manual, Volume 2, Privileged Architecture, Version 1.10
2.4 Supported Families
• PolarFire®
• RTG4™
• IGLOO®2
• SmartFusion®2
2.5 Device Utilization and Performance
Utilization and performance data is listed in Table 1for the supported device families. The data
listed in this table is indicative only. The overall device utilization and performance of the core is
system dependent.
Table 1 Device Utilization and Performance
Frequency
Family Sequential Combinatorial uSRAM LSRAM Math
SmartFusion2 6066 19073 34 8 2 58.38
IGLOO2 6626 18902 34 8 2 35.64
RTG4 6066 19076 46 8 2 44.27
PolarFire 6051 18973 67 10 2 91.46
Notes:
Performance numbers are for standard speed devices, except for PolarFire which uses the -1 speed.
MiV_RV32IMAF_L1_AHB is based on the E31 Coreplex Core by SiFive. The core provides a single
hardware thread (or hart) supporting the RISC-V standard RV32IMAF ISA and machine-mode
privileged architecture.
3.3 Pipelined Architecture
MiV_RV32IMAF_L1_AHB provides a high-performance single-issue in-order 32-bit execution
pipeline, with a peak sustainable execution rate of one instruction per clock cycle. The RISC-V ISA
standard M extensions add hardware multiply and divide instructions. MiV_RV32IMAF_L1_AHB has
a range of performance options including a fully pipelined multiply unit. An example of the pipeline
and its timing is as shown below.
50200801 Handbook 1 11
Page 12
HB0801: MiV_RV32IMAF_L1_AHB V2.0 Handbook
Figure 3 Example Five Stage Pipelined Architecture
Table 3 Example Pipeline Timing
3.4 Memory System
MiV_RV32IMAF_L1_AHB memory system supports configurable split first-level instruction and data
caches with full support for hardware cache flushing, as well as uncached memory accesses. External
connections are provided for both cached and uncached TileLink fabrics.
3.5 Platform-Level Interrupt Controller
MiV_RV32IMAF_L1_AHB includes a RISC-V standard platform-level interrupt controller (PLIC)
configured to support up 31 inputs with a single priority level.
3.6 Debug support through JTAG
MiV_RV32IMAF_L1_AHB includes full external debugger support over an industry-standard JTAG
port, supporting two hardware breakpoints.
50200801 Handbook 1 12
Page 13
HB0801: MiV_RV32IMAF_L1_AHB V2.0 Handbook
3.7 External AHB Interfaces
MiV_RV32IMAF_L1_AHB includes two external AHB interfaces, bridged from the internal TileLink
interfaces. The AHB memory interface is used by the cache controller to refill the instruction and
data caches. The AHB I/O interface is used for uncached accesses to I/O peripherals.
50200801 Handbook 1 13
Page 14
HB0801: MiV_RV32IMAF_L1_AHB V2.0 Handbook
4 Interface
4.1 Configuration Parameters
4.1.1 MiV_RV32IMAF_L1_AHB Configurable Options
There are two configurable options that apply to MiV_RV32IMAF_L1_AHB as shown in Table 4. If a
configuration other than the default is required, use the configuration dialog box in SmartDesign to
select appropriate values for the configurable options.
Table 4 MiV_RV32IMAF_L1_AHB Configuration Options
Parameter Valid Range Default Description
RESET_VECTOR_ADDR
(high halfword)
RESET_VECTOR_ADDR
(low halfword)
0x6000 - 0x8FFF 0x6000
0x0000 – 0xFFFC 0x0
4.1.2 Signal Descriptions
Signal descriptions for MiV_RV32IMAF_L1_AHB are defined in Table 5.
This is the address the processor will start executing
from after a reset. This address is byte aligned.
Table 5 MiV_RV32IMAF_L1_AHB I/O Signals
Port Name Width Direction Description
Global Signals
CLK 1 In
RESETN 1 In Synchronous reset signal. Active Low.
JTAG Interface Signals
TDI 1 In
TCK 1 In
TMS 1 In
TRST 1 In
TDO 1 Out
DRV_TDO 1 Out
System clock. All other I/Os are synchronous to this
clock.
Test Data In (TDI). This signal is used by the JTAG
device for downloading and debugging programs.
Sampled on the rising edge of TCK.
Test Clock (TCK). This signal is used by the JTAG
device for downloading and debugging programs.
Test Mode Select (TMS). This signal is used by the
JTAG device when downloading and debugging
programs. It is sampled on the rising edge of TCK to
determine the next state.
Test Reset (TRST). This is an optional signal used to
reset the TAP controllers state machine.
Test Data Out (TDO). This signal is the data which is
shifted out of the device during debugging. It is valid
on FALLING/RISING edge of TCK.
Drive Test Data Out (DRV_TDO). This signal is used to
drive a tristate buffer.
50200801 Handbook 1 14
Page 15
HB0801: MiV_RV32IMAF_L1_AHB V2.0 Handbook
Port Name Width Direction Description
External Interrupts Signals
IRQ 31 In
AHB Cached Memory Bus Master Interface
AHB_MST_MEM_HLOCK 1 Out
AHB_MST_MEM_HTRANS 2 Out
AHB_MST_MEM_HSEL 1 Out
AHB_MST_MEM_HWRITE 1 Out
AHB_MST_MEM_HADDR 32 Out
AHB_MST_MEM_HSIZE 3 Out
AHB_MST_MEM_HBURST 3 Out
AHB_MST_MEM_HPROT 4 Out
AHB_MST_MEM_HWDATA 32 Out
AHB_MST_MEM_HREADY 1 In
AHB_MST_MEM_HRESP 1 In
AHB_MST_MEM_HRDATA 32 In
AHB Non-cached Memory Bus Interface
AHB_MST_MMIO_HLOCK 1 Out
AHB_MST_MMIO_HTRANS 2 Out
AHB_MST_MMIO_HWRITE 1 Out
AHB_MST_MMIO_HADDR 31 Out
AHB_MST_MMIO_HSIZE 3 Out
AHB_MST_MMIO_HBURST 3 Out
AHB_MST_MMIO_HPROT 4 Out
AHB_MST_MMIO_HWDATA 32 Out
AHB_MST_MMIO_HREADY 1 In
AHB_MST_MMIO_HRESP 1 In
AHB_MST_MMIO_HRDATA 32 In
External interrupts from off-chip or peripheral
sources. These are level-based interrupt signals.
AHB Master interface for cached memory accesses.
AHB Master Interface for non-cached memory
accesses.
0x8000_0000 0x8FFF_FFFC AHB Memory Interface RAM Area (256 MiB)
50200801 Handbook 1 16
Page 17
HB0801: MiV_RV32IMAF_L1_AHB V2.0 Handbook
6 Tool Flow
6.1 License
This core is being released under a modified Apache 2.0 license and is freely available through
Libero. Technical support is only provided for Microsemi Products.
6.1.1 RTL
Complete Verilog source code is provided for the core. A VHDL wrapper is provided for use in VHDL
projects. Allowing the core to be instantiated with SmartDesign. Simulation, Synthesis, and Layout
can be performed within Libero SoC.
6.2 SmartDesign
MiV_RV32IMAF_L1_AHB is preinstalled in SmartDesign IP Deployment design environment.
For more information on using SmartDesign to instantiate and generate cores, refer to the Using
6.3 Configuring MiV_RV32IMAF_L1_AHB in SmartDesign
The core is configured using the configuration GUI within SmartDesign, as shown in Figure 5.
Note: Leading zeros are suppressed, for example, 0x6000 0000 is displayed as 0x6000 0x0. The reset
vector is byte aligned.
50200801 Handbook 1 17
Page 18
HB0801: MiV_RV32IMAF_L1_AHB V2.0 Handbook
Figure 5 Configuring MiV_RV32IMAF_L1_AHB in SmartDesign
6.4 Debugging
CoreJTAGDebug V2.0.100 or later, is used to enable debugging of MiV_RV32IMAF_L1_AHB. This is
available in the Libero Catalog.
6.5 Simulation Flows
The user testbench for MiV_RV32IMAF_L1_AHB is not included in this release.
The MiV_RV32IMAF_L1_AHB RTL can be used to simulate the processor executing a program using a
standard Libero generated HDL testbench. An example subsystem for RTG4 is as shown in Figure 6.
Figure 6 RTG4 Example Simulation Subsystem
50200801 Handbook 1 18
Page 19
HB0801: MiV_RV32IMAF_L1_AHB V2.0 Handbook
6.6 Synthesis in Libero
To run synthesis on the core, set the SmartDesign sheet as the design root and click Synthesis in
Libero SoC.
6.7 Place-and-Route in Libero
After the design is synthesized, run the compilation and the place and-route tools. Click Layout in
the Libero SoC to invoke Designer. MiV_RV32IMAF_L1_AHB requires the place-and-route multi-seed
settings set to 5.
50200801 Handbook 1 19
Page 20
HB0801: MiV_RV32IMAF_L1_AHB V2.0 Handbook
Microsemi SoC FPGA Fabric
MiV _RV3 2IMA F_L1_A HB
JTAG I/F
AHB Memo ry I/F
AHB M MIO I/F
Cor eAHB Lite
Cor eAHB Lite
CoreAHBtoAPB3
Cor eAPB3
Cor eGPIOC oreT imerC oreS PI
DDR Controlle r
Cor eJTAG Debug
CCC
Reset Synchronizer
eNV M
LOC K
CLK
Off-chip
DDR
Mem ory
LEDs
Off-chip
SPI Peripherals
External
OSC
Push Button
Reset
JTAG
Header
RST
7 System Integration
7.1 Example System
Figure 7 MiV_RV32IMAF_L1_AHB Example System
7.2 Reset Synchronization
7.2.1 RST
All sequential elements clocked by CLK within MiV_RV32IMAF_L1_AHB, which require a reset
employ a synchronous reset topology. Since, most designs source CLK from a CCC/PLL, it is common
practice to AND the LOCK output of the CCC with the push button reset to generate the RST input for
MiV_RV32IMAF_L1_AHB. However, this results in the reset being deasserted when the CLK comes
up, hence the reset assertion is not clocked through the sequential reset elements and goes
unnoticed most commonly leading to the processor locking-up. To guarantee that the RST assertion
is seen by all sequential elements, a reset synchronizer is required on the RST input, as shown in
Figure 8.
50200801 Handbook 1 20
Page 21
HB0801: MiV_RV32IMAF_L1_AHB V2.0 Handbook
Reset Synchronizer
MiV_RV32IMAF_L1_AHB
Q
Q
SET
CLR
D
Q
Q
SET
CLR
D
Q
Q
SET
CLR
D
Q
Q
SET
CLR
D
Q
Q
SET
CLR
D
CCC
SYSRESET
LOCK
GLx
CLK
CL KINT
CL KINT
1
Processo r Subsy stem
RST
Figure 8 RST Reset Synchronization
The Verilog code snippet below implements the reset synchronizer block as shown in Figure 8. The
function of this block is to make the reset assertion and deassertion synchronous to CLK whilst
guaranteeing that the reset will be seen asserted for one or more CLK cycles within
MiV_RV32IMAF_L1_AHB to ensure that it is registered by all sequential elements.
always @ (posedge clock or negedge reset)
begin
if (!reset)
begin
sync_deasert_reg[1:0] <= 2'b00;
end
else
begin
sync_deasert_reg[1:0] <= {sync_deasert_reg[0], 1'b1};
end
end
always @ (posedge clock)
begin
sync_asert_reg[1:0] <= {sync_asert_reg[0], sync_deasert_reg[1]};
end
assign reset_sync = sync_asert_reg[1];
endmodule
To include this synchronizer in your Libero design, select Create HDL from the Design Flow tab in
your Libero project. In the popup window, name the HDL file accordingly and select Verilog as the
HDL type whilst unchecking the option to Initialize file with standard template. Copy and paste the
Verilog code snippet above into this file and save the changes. From the Design Hierarchy tab drag
and drop the file into the SmartDesign sheet containing the MiV_RV32IMAF_L1_AHB instance and
connect up the pins as shown above.
7.2.2 TRST
No reset synchronization is required on this reset input as all sequential elements in the debug logic
within MiV_RV32IMAF_L1_AHB use an asynchronous reset topology.
50200801 Handbook 1 21
Page 22
HB0801: MiV_RV32IMAF_L1_AHB V2.0 Handbook
8 Design Constraints
Designs containing MiV_RV32IMAF_L1_AHB require the application of the following constraints in
the design flow to allow timing-driven placement and static timing analysis to be performed on
MiV_RV32IMAF_L1_AHB. The procedure for adding the required constraints in the Enhanced
Constraints flow in Libero v11.7 or later is as follows:
1. Double-click Constraints > Manage Constraints in the Design Flow window and click the Timing
tab.
Assuming that the system clock used to clock MiV_RV32IMAF_L1_AHB is sourced from a PLL,
select Derive to automatically create a constraints file containing the PLL constraints. Select Yes
when prompted to allow the constraints to be automatically included for Synthesis, Place-andRoute, and Timing Verification stages.
If changes are made to the PLL configuration in the design, update the contents of this file by
clicking Derive. Select Yes when prompted to allow the constraints to be overwritten.
2. In the Timing tab of the Constraint Manager window, select New to create a new SDC file, and
name it. Design constraints other than the system clock source derived constraints can be
entered in this blank SDC file. Keeping derived and manually added constraints in separate SDC
files allows the Derive stage to be reperformed if changes are made to the PLL configuration,
without deleting all manually added constraints in the process.
3. Calculate the TCK period and half period. TCK is typically 6 MHz when debugging with FlashPro,
with a maximum frequency of 30 MHz supported by FlashPro5. After completion, enter the
following constraints in the blank SDC file:
For example, the following constraints need to be applied for a design that uses a TCK frequency of 6
MHz:
create_clock -name { TCK } \
-period 166.67 \
-waveform { 0 83.33 } \
[ get_ports { TCK } ]
4. Next constraints must be applied to paths crossing the clock domain crossing between the TCK
and system clock clock domains. MiV_RV32IMAF_L1_AHB implements two clock domain
crossing FIFOs to handle the CDC and as such paths between the two clock domains may be
declared as false paths to prevent min and max violations from being reported by SmartTime.
6. Associate all constraints files with the Synthesis, Place-and-Route and Timing Verification stages
in the Constraint Manager > Timing tab by selecting the related check boxes for the SDC files in
which the constraints were entered in.
50200801 Handbook 1 23
Page 24
HB0801: MiV_RV32IMAF_L1_AHB V2.0 Handbook
9 SoftConsole
SoftConsole Version 5.2 is required to use MiV_RV32IMAF_L1_AHB. Each SoftConsole project
requires the Hardware Abstraction Layer (HAL) version 2.1 or greater. The SoftConsole Release
Notes details how to set up a project for the MiV_RV32IMAF_L1_AHB core.
50200801 Handbook 1 24
Page 25
HB0801: MiV_RV32IMAF_L1_AHB V2.0 Handbook
10 Known Issues
10.1 Reset/Power Cycle the Target Hardware before each Debug Session
At the moment, the debugger cannot effect a suitable Mi-V RISC-V CPU/SoC reset at the start of
each debug session so one debug session may be impacted by what went before – for example, a
previous debug session leaves the CPU in an ISR and a subsequent debug session does not behave as
expected because of this. To mitigate this problem, it is recommended that the target
hardware/board is power cycled or otherwise reset before each new debug session.
50200801 Handbook 1 25
Loading...
+ 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.