Page 2
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.
HB0801: MiV_RV32IMAF_L1_AHB V2.0 Handbook Revision History 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.
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.
• Two external AHB interfaces for IO and memory. 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 •...
AHB MMIO I/F AHB Memory I/F MiV_RV32IMAF_L1_AHB Processor Core 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. 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.
Table 3 Example Pipeline Timing 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.
HB0801: MiV_RV32IMAF_L1_AHB V2.0 Handbook 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.
Interface 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.
Page 15
HB0801: MiV_RV32IMAF_L1_AHB V2.0 Handbook Port Name Width Direction Description External Interrupts Signals External interrupts from off-chip or peripheral sources. These are level-based interrupt signals. AHB Cached Memory Bus Master Interface AHB_MST_MEM_HLOCK AHB_MST_MEM_HTRANS AHB_MST_MEM_HSEL AHB_MST_MEM_HWRITE AHB_MST_MEM_HADDR AHB_MST_MEM_HSIZE AHB Master interface for cached memory accesses.
Allowing the core to be instantiated with SmartDesign. Simulation, Synthesis, and Layout can be performed within Libero SoC. 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 DirectCore in Libero®...
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...
To run synthesis on the core, set the SmartDesign sheet as the design root and click Synthesis in Libero SoC. 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...
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.
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.
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-and- Route, and Timing Verification stages.
Page 23
HB0801: MiV_RV32IMAF_L1_AHB V2.0 Handbook Where: PLL_GEN_CLK is the name applied to the create_generated_clock constraint derived in step 1 above. 5. Next constraints must be applied to the Floating Point Unit between the source clock and the following signals: i. MIV_RV32IMAF_L1_AHB_0/ChiselTop0/tile/rocket/fpuOpt/sfma/_T_28_data* ii.
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...
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.
Need help?
Do you have a question about the MiV_RV32IMAF_L1_AHB and is the answer not in the manual?
Questions and answers