Skip to content

Commit

Permalink
Merge pull request #2 from seb-slowiko/develop
Browse files Browse the repository at this point in the history
Lib.S.D update for Libero SoC v2022.2
  • Loading branch information
merijn-van-de-water authored Oct 7, 2022
2 parents ce26348 + db140d6 commit 7d44760
Show file tree
Hide file tree
Showing 3 changed files with 81 additions and 37 deletions.
48 changes: 35 additions & 13 deletions FlashPro_Express_Projects/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# PolarFire FPGA Splash-Kit FPGA Programming Files

This folder contains FlashPro Express v2022.1 projects for the PolarFire FPGA Splash-Kit Mi-V sample designs.
This folder contains FlashPro Express v2022.2 projects for the PolarFire FPGA Splash-Kit Mi-V sample designs.

## FlashPro Express
The programming files contained under this folder were exported from the designs in the Libero_Projects folder in this repository. Select the desired programming file (.job) and program your device using FlashPro Express.
Expand All @@ -21,19 +21,41 @@ The programming files contained under this folder were exported from the designs

## Design Features
The Libero designs include the following features:
* A soft RISC-V processor
* A soft RISC-V processor operating at 50 MHz
* A RISC-V debug block allowing on-target debug using SoftConsole
* The operating frequency of the design is 50MHz
* Target memory is SRAM (32kB)
* User peripherals: 2 Timers, UART, 2 GPIO Inputs and 4 GPIO Outputs (GPIOs use fixed configs for simplicity and better resource utilization)
* An Extended Subsystem with integrated peripherals
* Target SRAM/TCM memory (32kB)
* User peripherals: MIV_ESS, 2 Timers, UART, 2 GPIO Inputs and 4 GPIO Outputs (GPIOs use fixed configs for simplicity and better resource utilization)


The peripherals in this design are located at the following addresses.
#### MIV_RV32 based configurations
| Peripheral (MIV_ESS) | Address Start | Address End |
| ------------------------------: |:-------------:|:--------------:|
| PLIC | 0x7000_0000 | 0x70FF_FFFF |
| UART | 0x7100_0000 | 0x71FF_FFFF |
| Timer | 0x7200_0000 | 0x72FF_FFFF |
| CoreTimer_0 / MIV_ESS_APBSLOT3 | 0x7300_0000 | 0x73FF_FFFF |
| CoreTimer_1 / MIV_ESS_APBSLOT4 | 0x7400_0000 | 0x74FF_FFFF |
| GPIO | 0x7500_0000 | 0x75FF_FFFF |
| SPI | 0x7600_0000 | 0x76FF_FFFF |
| uDMA | 0x7800_0000 | 0x78FF_FFFF |
| WDOG | 0x7900_0000 | 0x79FF_FFFF |
| I2C | 0x7A00_0000 | 0x7AFF_FFFF |
| MIV_ESS_APBSLOTB_BASE | 0x7B00_0000 | 0x7BFF_FFFF |
| MIV_ESS_APBSLOTC_BASE | 0x7C00_0000 | 0x7CFF_FFFF |
| MIV_ESS_APBSLOTD_BASE | 0x7D00_0000 | 0x7DFF_FFFF |
| MIV_ESS_APBSLOTE_BASE | 0x7E00_0000 | 0x7EFF_FFFF |
| MIV_ESS_APBSLOTF_BASE | 0x7F00_0000 | 0x7FFF_FFFF |
| SRAM/TCM | 0x8000_0000 | 0x8000_7FFF |


| Peripheral | Address |
| ------------- |:-------------:|
| CoreUARTapb | 0x7000_1000 |
| CoreGPIO_IN | 0x7000_2000 |
| CoreTimer_0 | 0x7000_3000 |
| CoreTimer_1 | 0x7000_4000 |
| CoreGPIO_OUT | 0x7000_5000 |
| SRAM| 0x8000_0000|
#### Legacy core based configurations:
| Peripheral (Standalone)| Address |
| ----------------------:|:-------------:|
| CoreUARTapb | 0x7000_1000 |
| CoreGPIO_IN | 0x7000_2000 |
| CoreTimer_0 | 0x7000_3000 |
| CoreTimer_1 | 0x7000_4000 |
| CoreGPIO_OUT | 0x7000_5000 |
| SRAM | 0x8000_0000 |
56 changes: 39 additions & 17 deletions Libero_Projects/README.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
# PolarFire FPGA Splash-Kit Mi-V Sample FPGA Designs
This folder contains Tcl scripts that build Libero SoC v2022.1 design projects for the PolarFire FPGA Splash-Kit. These scripts are executed in Libero SoC to generate the sample designs. All cores boot from memory at 0x8000_0000.
This folder contains Tcl scripts that build Libero SoC v2022.2 design projects for the PolarFire FPGA Splash-Kit. These scripts are executed in Libero SoC to generate the sample designs. All cores boot from memory at 0x8000_0000.


#### PF_Splash_Kit_MIV_RV32_BaseDesign

| Config | Description|
| :------:|:----------------------------------------|
| CFG1 | This design uses the MIV_RV32 core configured as follows: <ul><li>RISC-V Extensions: IMC</li><li>Multiplier: MACC (Pipelined)</li><li>Interfaces: AHB Master (mirrored), APB3 Master</li><li>Internal IRQs: 1</li><li>TCM: enabled</li><li>System Timer: Internal MTIME enabled, Internal MTIME IRQ enabled</li><li>Debug: enabled</li></ul>|
| CFG2 | This design uses the MIV_RV32 core configured as follows: <ul><li>RISC-V Extensions: IM</li><li>Multiplier: Fabric</li><li>Interfaces: AXI4 Master (mirrored), APB3 Master</li><li>Internal IRQs: 1</li><li>TCM: disabled</li><li>System Timer: Internal MTIME enabled, Internal MTIME IRQ enabled</li><li>Debug: enabled</li></ul>|
| CFG3 | This design uses the MIV_RV32 core configured as follows: <ul><li>RISC-V Extensions: I</li><li>Multiplier: none</li><li>Interfaces: APB3 Master</li><li>Internal IRQs: 1</li><li>TCM: enabled</li><li>System Timer: Internal MTIME enabled, Internal MTIME IRQ enabled</li><li>Debug: enabled</li></ul>|
| CFG1 | This design uses the MIV_RV32 core configured as follows: <ul><li>RISC-V Extensions: IMC</li><li>Multiplier: MACC (Pipelined)</li><li>Interfaces: AHB Master (mirrored), APB3 Master</li><li>Internal IRQs: 1</li><li>TCM: enabled</li><li>System Timer: Internal MTIME enabled, Internal MTIME IRQ enabled</li><li>Debug: Enabled</li></ul>|
| CFG2 | This design uses the MIV_RV32 core configured as follows: <ul><li>RISC-V Extensions: IM</li><li>Multiplier: Fabric</li><li>Interfaces: AXI4 Master (mirrored), APB3 Master</li><li>Internal IRQs: 1</li><li>TCM: disabled</li><li>System Timer: Internal MTIME enabled, Internal MTIME IRQ enabled</li><li>Debug: Enabled</li></ul>|
| CFG3 | This design uses the MIV_RV32 core configured as follows: <ul><li>RISC-V Extensions: I</li><li>Multiplier: none</li><li>Interfaces: APB3 Master</li><li>Internal IRQs: 1</li><li>TCM: enabled</li><li>System Timer: Internal MTIME enabled, Internal MTIME IRQ enabled</li><li>Debug: Enabled</li></ul>|


#### PF_Splash_Kit_MIV_RV32IMA_BaseDesign
Expand Down Expand Up @@ -79,19 +79,41 @@ In the examples above the arguments "CFG1" and "CFG1 SYNTHESIZE PS" were entered

## Design Features
The Libero designs include the following features:
* A soft RISC-V processor
* A soft RISC-V processor operating at 50 MHz
* A RISC-V debug block allowing on-target debug using SoftConsole
* The operating frequency of the design is 50MHz
* Target memory is SRAM (32kB)
* User peripherals: 2 Timers, UART, 2 GPIO Inputs and 4 GPIO Outputs (GPIOs use fixed configs for simplicity and better resource utilization)
* An Extended Subsystem with integrated peripherals
* Target SRAM/TCM memory (32kB)
* User peripherals: MIV_ESS, 2 Timers, UART, 2 GPIO Inputs and 4 GPIO Outputs (GPIOs use fixed configs for simplicity and better resource utilization)

The peripherals in this design are located at the following addresses.

| Peripheral | Address |
| ------------- |:-------------:|
| CoreUARTapb | 0x7000_1000 |
| CoreGPIO_IN | 0x7000_2000 |
| CoreTimer_0 | 0x7000_3000 |
| CoreTimer_1 | 0x7000_4000 |
| CoreGPIO_OUT | 0x7000_5000 |
| SRAM| 0x8000_0000|
The peripherals in this design are located at the following addresses.
#### MIV_RV32 based configurations
| Peripheral (MIV_ESS) | Address Start | Address End |
| ------------------------------: |:-------------:|:--------------:|
| PLIC | 0x7000_0000 | 0x70FF_FFFF |
| UART | 0x7100_0000 | 0x71FF_FFFF |
| Timer | 0x7200_0000 | 0x72FF_FFFF |
| CoreTimer_0 / MIV_ESS_APBSLOT3 | 0x7300_0000 | 0x73FF_FFFF |
| CoreTimer_1 / MIV_ESS_APBSLOT4 | 0x7400_0000 | 0x74FF_FFFF |
| GPIO | 0x7500_0000 | 0x75FF_FFFF |
| SPI | 0x7600_0000 | 0x76FF_FFFF |
| uDMA | 0x7800_0000 | 0x78FF_FFFF |
| WDOG | 0x7900_0000 | 0x79FF_FFFF |
| I2C | 0x7A00_0000 | 0x7AFF_FFFF |
| MIV_ESS_APBSLOTB_BASE | 0x7B00_0000 | 0x7BFF_FFFF |
| MIV_ESS_APBSLOTC_BASE | 0x7C00_0000 | 0x7CFF_FFFF |
| MIV_ESS_APBSLOTD_BASE | 0x7D00_0000 | 0x7DFF_FFFF |
| MIV_ESS_APBSLOTE_BASE | 0x7E00_0000 | 0x7EFF_FFFF |
| MIV_ESS_APBSLOTF_BASE | 0x7F00_0000 | 0x7FFF_FFFF |
| SRAM/TCM | 0x8000_0000 | 0x8000_7FFF |


#### Legacy core based configurations:
| Peripheral (Standalone)| Address |
| ----------------------:|:-------------:|
| CoreUARTapb | 0x7000_1000 |
| CoreGPIO_IN | 0x7000_2000 |
| CoreTimer_0 | 0x7000_3000 |
| CoreTimer_1 | 0x7000_4000 |
| CoreGPIO_OUT | 0x7000_5000 |
| SRAM | 0x8000_0000 |
14 changes: 7 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,15 +20,15 @@ To download or clone the repository:


# Libero Projects
The Libero_Projects folder contains sample Mi-V Libero designs for Libero SoC v2022.1. Libero projects for older Libero releases can be downloaded from their [tags](https://github.com/Mi-V-Soft-RISC-V/PolarFire-FPGA-Splash-Kit/releases) in this repository.
The Libero_Projects folder contains [sample Mi-V Libero designs](Libero_Projects) for Libero SoC v2022.2. Libero projects for older Libero releases can be downloaded from their [tags](https://github.com/Mi-V-Soft-RISC-V/PolarFire-FPGA-Splash-Kit/releases) in this repository.

## Design Features
The Libero designs include the following features:
* A soft RISC-V processor
* A soft RISC-V processor operating at 50 MHz
* A RISC-V debug block allowing on-target debug using SoftConsole
* The operating frequency of the design is 50MHz
* Target memory is SRAM (32kB)
* User peripherals: 2 Timers, UART, 2 GPIO Inputs and 4 GPIO Outputs (GPIOs use fixed configs for simplicity and better resource utilization)
* An Extended Subsystem with integrated peripherals
* Target SRAM/TCM memory (32kB)
* User peripherals: MIV_ESS, 2 Timers, UART, 2 GPIO Inputs and 4 GPIO Outputs (GPIOs use fixed configs for simplicity and better resource utilization)

## Target Hardware
Details of the PolarFire FPGA Splash-Kit and it's features can be found:
Expand All @@ -40,7 +40,7 @@ The FlashPro_Express_Projects folder contains the pre-generated programming file
# Design Tools
The following design tools are required.

## Libero SoC v2022.1
## Libero SoC v2022.2
[Libero SoC](https://www.microsemi.com/products/fpga-soc/design-resources/design-software/libero-soc#downloads) is Microchip's FPGA design software.

## FlashPro Express
Expand All @@ -54,5 +54,5 @@ the standalone version.
[SoftConsole](https://www.microsemi.com/product-directory/design-tools/4879-softconsole) is Microchip’s free software development environment facilitating the rapid development of bare-metal and RTOS based C/C++ software for Microchip CPU and SoC based FPGAs. It provides development and debug support for all Microchip SoC FPGAs and 32-bit soft IP CPUs. SoftConsole can be downloaded.

## Mi-V Soft processor Bare Metal Examples
A [Firmware](https://github.com/Mi-V-Soft-RISC-V/miv-rv32-bare-metal-examples)
A [Firmware](https://mi-v-ecosystem.github.io/redirects/miv-soft/miv-rv32-bare-metal-examples.md)
repository that provides bare metal embedded software example projects built with Microchip's SoftConsole IDE.

0 comments on commit 7d44760

Please sign in to comment.