Proceedings Article | 30 May 2022
KEYWORDS: System on a chip, Ecosystems, Computer programming, Software development, Open source software, Human-machine interfaces, Computer architecture, Very large scale integration, Thermodynamics, System integration
The open source software (OSS) movement has enabled an incredible list of innovations and underpins much of the current technology utilized in a broad array of applications. A strength of many of the current OSS solutions is in the modularity of these libraries and their interoperability which allows complex solutions to be created through combinations of powerful software components with well defined interfaces. The hardware world is slowly embracing this open philosophy of modular components and we are seeing a rise in open source hardware solutions, with the open source RISC-V instruction set architecture (ISA) acting as a leading technology platform and driver. Currently, the open source hardware movement boasts multiple hardware point designs for CPUs, GPUs, accelerators, Networks-on-Chip as well as various bus interface standards to connect disparate pieces of IP together. A crucial piece of this open source hardware ecosystem is the inclusion of a highly capable, open source software stack that includes production-ready compilers, operating systems, performance libraries, etc. This well supported software stack relieves the developers of custom processors of the significant burden of writing this software from scratch while enabling application developers to more readily port to any custom design. While there is broad availability of open source hardware components it is unlikely that a currently available design, or even a collection of designs, will exactly suit the often niche requirements of military systems. To take full advantage of this open source hardware ecosystem a new hardware design methodology based on hardware generators is required. Mimicking the modularity of the OSS ecosystem, basic hardware building blocks currently available in the open source ecosystem can be utilized in design environments capable of rapid generation of custom designs through extension of existing open implementations. Going further, this hardware generation methodology is capable of starting from an architecture level specification and creating a fully functional processor. This design methodology automates the creation of custom processors, accelerators and systems through the use of new hardware description languages, such as Chisel, as well as emerging integrated hardware development flows. We present OpenSoC System Architect an open-source, hardware generation, development environment which enables an arbitrary ISA specification to be translated into a processor implementation (RTL) complete with a LLVM-based compiler and cycle accurate simulator for the specified design. OpenSoC System Architect also enables integration with external IP blocks - including custom accelerators, caches, etc. to create a complete system-on-chip.