nanoSoC
nanoSoC is the entry level reference design within SoC Labs. It provides a simple M0 microcontroller System on Chip ("SoC") that can be easily extended for design and evaluation of research blocks or subsystems. nanoSoC is adapted from the Arm Cortex-M System Design Kit, CMSDK, which provides verified IP blocks, associated software, verification assets and documentation. nanoSoC has been architected to be a reusable SoC design that can add memory-mapped experimental hardware while simplifying the SoC design process with seamless transition from FPGA prototyping to physical silicon fabrication and evaluation using common verification methods throughout the design process.
It is deal for small academic projects that can be undertaken by PhD or other students to evaluate research hardware such as a custom accelerators or signal processing subsystems with a low cost of fabrication and evaluation. nanoSoC is silicon proven using the TSMC 65nm process.
How does nanoSoC extend the base Arm IP
Modern industrial design practice has progressed beyond a stepwise refinement method to include more agile iterations and prototyping as well as the adoption of reusable design patterns. A key to support such method is always having at any stage a view of the design that can be verified and tested, often via Continuous Integration and Deployment for Verification. Such an approach requires not just starting the design process looking at major functional needs but starting with creating the basis of a deployable design as a starting point. Functional features can be added at any point knowing they can be deployed, verified and if necessary debugged.
nanoSoC provides this reusable, deployable, verifiable, base reference design. It extends the base arm Cortex-M0 based microcontroller with pad-ring support ready for silicon implementation. This supports ASIC evaluation and debug from early stages of the design process. The address map and bus matrix support expansion memory regions for experimental sub-systems. It provides and FT1248 interface for off chip communication to an external test bench supporting both FPGA and final ASIC hardware verification using common assets. A modified boot monitor and run-time software load process as well as "Tarmac" support for both RTL and gate-level tracing and external debug control allow verification throughout the design process.
By adopting the nanoSoC reference design an academic project can progress easily through the design process in an agile manner knowing that, if at a later stage a redesign of some aspect is necessary, the re-verification of the design is easily actioned. Throughout the design process, block-level designs and verification works in parallel with system and chip-level design and verification.
PGA Flow for initial design stages
An aim of SoC Labs is to simplify transition from FPGA to full ASIC flow. While FPGA environments speed up initial design flow stages an over reliance on components within the Processing System fabric of the FPGA can act as a later barrier to full ASIC flow. The nanoSoC reference design and example FPGA design flow, instantiate a chip level just inside the pad-ring within the FPGA overlay that is independent of Xilinx system IP apart from basic provision of clocking and reset control. An AXI based "socket“ mimics pad ring connections to ensure the full SoC design is synthesizable, can be verified and is functional for an ASIC tape out.
Extending the nanoSoC reference design
There are a growing number of SoC Labs projects that extend the core nanoSoC reference design. The initial collection of projects using the nanoSoC design were implementing custom accelerators for Machine Learning based inference. Such IP extensions require very efficient transfer of data across the System of Chip bus fabric. The nanoSoC design can be extended by DMA controllers, such as the DMA 230, DMA 350 from Arm or custom controller IP. More recent project have been developing analog parts for subsystems such as sensing. Additional IP such as Analog to Digital Converters ("ADC") and Phase Locked Loops ("PLL") have been used to extend nanoSoC based system capabilities.
ASIC Flow for back end design stages
The nanoSoC reference design has been certified using a number of Electronic Design Automation suites from the major industry vendors as well as open source alternatives.
Verification
Students and academics can benefit from shared resources especially verification efforts which are often a weak point in academic projects. nanoSoC is based on the Arm Cortex-M System Design Kit (CMSDK) reference design which provides pre-verified IP and verification assets which can be extended. nanoSoC extends these to provide a continuous and common verification process throughout the design and post fabrication evaluation processes.
Post fabrication design evaluation
The aim for the evaluation environment for nanoSoC based fabricated ASIC die was to provide a low cost test board that also mirrors the design verification environment, simplifying adoption and extension for any project. The board uses two inexpensive RP2040 chips. One provides a Serial Wire Debug (SWD) and UART debugger interface, used to monitor internal status and debug nanoSoC system. The other configures and interfaces to the nanoSoC system. The RP2040 PIO interfaces allow for custom data transfers, enabling communication via the FT1248 interface of nanoSoC to load code and data from the micro-SD Card or to display results and measurements of system performance via a small LED screen.
Reference Design Comparison Table
This table will let you compare this reference design with others on SoC LabsTitle | nanoSoC |
---|---|
Class | Entry |
Reference Design | nanoSoC |
Staffing | Single student / academic |
Time Scales | 6 months to 1 year |
Model Forms | small |
Tape Out / Package and Board Costs | From 10k Euro |
Processor(s) | M0 |
Processor(s) (speed) | <250 Mhz |
Data Rates / On Chip Comms | <2.5 Gbps |
Data Rates / Off Chip Comms | <50 Mbps |
On Chip Memory Requirements | 32KB to sub MB |
Virtual Prototype Environment | Xilinx ZCU104 |
Tape Out Node | 65nm |
Related Projects and Workflows
This section details the following: the core reference design, the initial project that led to the definition of the reference design, and any additional projects that extend the reference design for new or additional applications. It also defines the related example workflows for the front end Architectural and Behavioural design stages, and the back end Logical and Physical design stages. Front end Behavioural design are usually accomplished with FPGA environments and tool chains, back end Physical design requires technology specific design rules and EDA tool suites.
The aim of this project is to define a mixed signal subsystem for the nanosoc reference design.
In order to interface with real-world signals in a digital SoC, an analog to digital conversion is needed. The mixed signal subsystem should be able to sample analog signals at a regular sampling rate, and transmit a digital representation of this signal to the rest of the nanosoc system.
The integration of the DMA350 into the nanosoc re-usable SoC architecture will improve the transfer bandwidth on DMA channels within the SoC. This project integrates the DMA 350 into nanosoc, validates the integration and functionality of the DMA 350, and compares the performance of the DMA 350 to the PL230, that was the initial DMA controller integrated into nanosoc.
A physical test environment is required for ASIC devices fabricated following tape out. The nanoSoC test board provides a complete test environment for ASIC designs based on the nanoSoC reference design and enables the showcase of any custom designs that utilise it. Reviewing the function of nanoSoC identifies a number of design criteria for the test board:
Add new comment
To post a comment on this article, please log in to your account. New users can create an account.