OpenSoC System Architect

OpenSoC System Architect Logo

Motivation

  • Commercial, closed-source IP is a major drag on innovation in all technology spaces. Open-source hardware has the potential to ignite multiple paths in the semiconductor industry: increasing diversity by driving costs down, lowering the barrier to entry, and opening the door for customization.
  • The idea of SoCs is starting to be applied to HPC, building chips from IP building blocks.
  • New companies are being founded based on open source.
soc

Goal

Using pre-verified open source IP, we want to create an open source silicon chip complete with a full software toolchain, including specialized instructions.

IP

OpenSoC System Architect is made of and made possible by many different components.

Chisel Logo

Chisel (Constructing Hardware In a Scala Embedded Language) is an open-source hardware construction language developed at UC Berkeley that supports advanced hardware design using highly parameterized generators and layered domain-specific hardware languages.

  • Hardware construction language (not C to Gates)
  • Embedded in the Scala programming language
  • Algebraic construction and wiring
  • Abstract data types and interfaces
  • Bulk connections
  • Hierarchical + object oriented + functional construction
  • Highly parameterizable using metaprogramming in Scala
  • Supports layering of domain specific languages
  • Sizeable standard library including floating-point units
  • Multiple clock domains
  • Generates low-level Verilog designed to pass on to standard ASIC or FPGA tools
  • Open source on github with modified BSD license
  • Complete set of docs
  • Growing community of adopters

RISC-V Logo

RISC-V (pronounced “risk-five”) is a new instruction set architecture (ISA) that was originally designed to support computer architecture research and education and is now set to become a standard open architecture for industry implementations under the governance of the RISC-V Foundation. The RISC-V ISA was originally developed in the Computer Science Division of the EECS Department at the University of California, Berkeley.

OpenSoC Fabric

OpenSoC Fabric is an on-chip network generation infrastructure which aims to provide a parameterizable and powerful on-chip network generator for evaluating future high performance computing architectures based on SoC technology. OpenSoC Fabric leverages a new hardware DSL, Chisel, which contains powerful abstractions provided by its base language, Scala, and generates both software (C++) and hardware (Verilog) models from a single code base. The OpenSoC Fabric infrastructure is modeled after existing state-of-the-art simulators, offers large and powerful collections of configuration options, and follows object-oriented design and functional programming to make functionality extension as easy as possible.
OpenSoC Fabric

LLVM

The LLVM Project is a collection of modular and reusable compiler and toolchain technologies. LLVM began as a research project at the University of Illinois, with the goal of providing a modern, SSA-based compilation strategy capable of supporting both static and dynamic compilation of arbitrary programming languages. Since then, LLVM has grown to be an umbrella project consisting of a number of subprojects, many of which are being used in production by a wide variety of commercial and open source projects as well as being widely used in academic research. Code in the LLVM project is licensed under the "UIUC" BSD-Style license.
LLVM Logo

CoreGen

CoreGen is an integrated infrastructure that utilizes traditional compiler techniques to build and verify complex SoC designs. It’s essentially a compiler IR for SoC design and verification. CoreGen utilizes an intermediate representation that permits us to:

  • Build high-level optimizations and verification of SoC control and data paths
  • Build high-level descriptions of complex SoC’s
  • Automatically build HDL representations of the SoC
  • Automatically build LLVM compiler backend implementations of the SoC and any extensions
  • Permits users to quickly and easily extend the SoC using new or existing IP

The result is significant reduction in design, implementation, and verification of complex SoC’s.

Tool Chain & Flow

OpenSoC System Architect takes these IP blocks and the users input design specs and extensions via the frontend to generate the CoreGen IR. OpenSoC Fabric "glues" all of the all intermediate modules together with a scalable NoC. CoreGen ensures the design correctness and continuity.
Tool Chain and Flow