Extensible and Configurable RISC-V Based Virtual Prototype

Internet-of-Things (IoT) opens a new world of possibilities for both personal and industrial applications. At the heart of an IoT device, the processor is the core component. Hence, as an open and free instruction set architecture RISC-V is gaining huge popularity for IoT. A large ecosystem is available around RISC-V, including various RTL implementations at one end and high-speed instruction set simulators (ISSs) at the other end. These ISSs facilitate functional verification of RTL implementations as well as early SW development to some extent. However, being designed predominantly for speed, they can hardly be extended to support further system-level use cases such as design space exploration, power/timing/performance validation or analysis of complex HW/SW interactions. In this paper, we propose and implement the first RISC-V based Virtual Prototype (VP) with the goal of filling this gap. We provide a RISC-V RV321M core, a PLIC-based interrupt controller and an essential set of peripherals together with SW debug capabilities. The VP is designed as extensible and configurable platform with a generic bus system and implemented in standard-compliant SystemC and TLM-2.0. The latter point is very important, since it allows to leverage cutting-edge SystemC-based modeling techniques needed for the mentioned use cases. Our VP allows a significantly faster simulation compared to RTL, while being more accurate than existing ISSs. Finally, our RISC-V VP is fully open source to help expanding the RISC-V ecosystem and stimulating further research and development.

[1]  Gianluca Palermo,et al.  CONTREX: Design of Embedded Mixed-Criticality CONTRol Systems under Consideration of EXtra-Functional Properties , 2016, 2016 Euromicro Conference on Digital System Design (DSD).

[2]  Christian Haubelt,et al.  ESL power and performance estimation for heterogeneous MPSOCS using SystemC , 2011, FDL 2011 Proceedings.

[3]  Somayeh Sardashti,et al.  The gem5 simulator , 2011, CARN.

[4]  Rolf Drechsler,et al.  Quality-Driven SystemC Design , 2009 .

[5]  Rainer Leupers,et al.  Black box ESL power estimation for loosely-timed TLM models , 2016, 2016 International Conference on Embedded Computer Systems: Architectures, Modeling and Simulation (SAMOS).

[6]  Brian Bailey,et al.  Taxonomy and Definitions for the Electronic System Level , 2007 .

[7]  Rainer Leupers,et al.  Virtual platforms: Breaking new grounds , 2012, 2012 Design, Automation & Test in Europe Conference & Exhibition (DATE).

[8]  Thomas Schuster,et al.  SoCRocket - A virtual platform for the European Space Agency's SoC development , 2014, 2014 9th International Symposium on Reconfigurable and Communication-Centric Systems-on-Chip (ReCoSoC).

[9]  Rolf Drechsler,et al.  On the application of formal fault localization to automated RTL-to-TLM fault correspondence analysis for fast and accurate VP-based error effect simulation - a case study , 2016 .

[10]  Brian Bailey,et al.  ESL Design and Verification: A Prescription for Electronic System Level Methodology , 2007 .

[11]  Rolf Drechsler,et al.  Verifying SystemC Using Intermediate Verification Language and Stateful Symbolic Simulation , 2019, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[12]  Rolf Drechsler,et al.  Towards Early Validation of Firmware-Based Power Management Using Virtual Prototypes: A Constrained Random Approach , 2017, FDL.