Skip to content

Fraunhofer IMS processor core. RISC-V ISA (RV32IM) with additional peripherals.

License

Notifications You must be signed in to change notification settings

stnolting-ims/airisc_core_complex

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AIRISC

AIRISC - The RISC-V Processor for Embedded AI

Fraunhofer_IMS GitHub Pages airisc-sim_check

The Fraunhofer IMS AIRISC is a RISC-V-powered ASIC- and FPGA-proven processor core optimized for embedded AI applications. It comes with a set of common peripherals together with a wide variety of optional extensions to build a customizable yet powerful system on chip (SoC).

Overview

RISC-V

The AIRISC Core Complex is based on a 32-bit RISC-V CPU compatible to the RISC-V unprivileged and privileged specifications also supporting the RISC-V External Debug specification. The CPU implements a Harvard architecture with a four-level pipeline and separate AHB-Lite interfaces for instruction fetch and data access. The core's RV32I_Zicsr base ISA can be further extended via a unified co-processor interface (PCPI). The default setup already includes a co-processor for integer multiplication and division operations implementing the RISC-V M ISA extension.

In addition to the CPU core itself, the AIRISC Core Complex includes common peripherals to build a complete SoC. These include a RISC-V-compatible system timer (MTIME), a serial UART interface with optional FIFO buffers, a SPI controller also with configurable FIFO buffers and acting either as host device or as peripheral, general-purpose IO ports (GPIO) and a RISC-V-compatible on-chip debugger that provides a JTAG interface to debug the core online and in-system.

The provided SoC is ready for an implementation on a Digilent Nexys Video FPGA board and can be easily ported to other boards, platforms and technologies as the core itself is written in vendor-agnostic plain Verilog. The Fraunhofer IMS AIRISC is also part of Intel Pathfinder for RISC-V providing a full-scale RISC-V evaluation platform.

💡 For more information check out the AIRISC fact sheet (PDF) or have a look at the online documentation.

Development

The project is developed primarily in a closed-source organization-internal repository to take advantage of sophisticated continuous integration stages that require licensed EDA tools. New releases with novel features and overall improvements will be uploaded frequently to this repository under the permissive Solderpad license. All releases include a pre-compiled FPGA bitstream as well as a pre-compiled "hello world!" application program to get started immediately.

📢 Feedback from the community is always highly appreciated! Feel free to open a new issue or get in contact directly if you have questions, requests, ideas or any kind of problems with the provided project.

Additional Modules and Extensions

Files for ASIC synthesis, additional and advanced peripherals as well as area/energy/performance-optimized core configurations can be obtained from Fraunhofer IMS under a less permissive license. See the Contact section for more information how to get in touch. Some of the additional features are listed below:

  • RISC-V C extension - 16-bit compressed instructions for improved code density
  • RISC-V F extension - IEEE754 single-precision floating-point unit
  • Fraunhofer IMS AI extensions based on SIMD processor module (RISC-V P extension) and co-processors for computing activation functions
  • QSPI interface; also providing Execute-In-Place (XIP)
  • On-chip Physical Unclonable Function ("PUF") for advanced security functions
  • AXI-compatible bus interface to interface with off-the-shelve IP components
  • A safety version of the AIRISC prepared for ISO 26262 ASIL-D certification extended with multiple additional safety features
  • A security version of the AIRISC equipped with hardware features for encryption and decryption, secure boot and update mechanisms
  • more to come! 🚀

AIfES Integration

AIfES

The Fraunhofer AIfES machine learning library integrates seamlessly into the AIRISC processor, which allows fast and easy development of on-the-edge AI applications such as inference of neuronal networks. In additions to the software-only AIfES libraries, Fraunhofer IMS also provides additional ISA extensions and dedicated co-processors to improve throughput resulting in optimized performance at a minimal energy budget. Hence, the combination of the AIfES libraries and the dedicated hardware accelerators (some examples are shown in section Additional Modules and Extensions) make the AIRISC a well-suited platform for embedded AI applications.

Quickstart

This section provides instructions to get you started:

  • Synthesize the core complex for a specific FPGA board.
  • Run the pre-compiled example application program using openOCD and GDB.
  • Run a simulation using the default testbench, which checks the ISA for RISC-V-compatibility as well as the general core functionality.

💡 See the project's Quickstart Guide for step-by-step instructions on how to program the FPGA board and how to run a GDB session executing the provided example application program.

Synthesis

Requirements for (re-)building the hardware and programming the (pre-build) bitstream:

The fpga folder provides pre-configured TCL scripts to automatically generate a Xilinx Vivado project and to program the bitstream to the FPGA. See the project's online documentation for more information on how to setup a AIRISC Xilinx Vivado project from scratch.

Application

Requirements for running the hello world example program:

Requirements for (re-)building the software example (optional):

Simulation / CI

The .ci ("continuous integration") folder is used to check the core's functionality when modifying project sources. A GitHub workflow is configured to run a simulation of the default testbench using the free and open-source Icarus Verilog simulator.

Requirements for running the (CI) simulation:

You can run the simulation by yourself using the provided script:

airisc_core_complex/.ci$ sh iverilog_sim.sh

Contact

Fraunhofer Institute for Microelectronic Circuits and Systems, Duisburg, Germany

External Dependencies

The *.mem files in tb/memfiles are used to test/verify the core for RISC-V ISA compliance were pre-compiled by us. The source files were obtained from the official RISC-V riscv-software-src/riscv-tests GitHub repository (see the repository's license).

About

Fraunhofer IMS processor core. RISC-V ISA (RV32IM) with additional peripherals.

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Verilog 66.2%
  • SystemVerilog 20.0%
  • Tcl 6.9%
  • Makefile 4.5%
  • C 1.8%
  • Assembly 0.5%
  • Other 0.1%