You can use the navigation scheme above for a tree view of the design flow steps with more detail of each step.
We are always looking to add additional resources and references to community work in the various design flow steps. We hope members will declare themselves as 'Experts' or 'Interested People' and also recommend non-members they know have expertise or interest. We are looking to appoint Moderators from within the community to help ensure the accuracy of material in each area, if this interests you please then let us know.
Name | Description | Resources |
---|---|---|
Architectural Design |
IntroductionThe concept of reusable design patterns is familiar to many disciplines. At SoC Labs we are interested in reusable design patterns incorporating Arm based components with parts that are unique to your specific research challenge. |
|
Specifying a SoC |
RequirementsGetting Requirements |
|
IP Selection |
A SoC design is likely a selection and configuration of Arm IP (using tools such as Socrates) to define the main architecture with specific blocks either developed uniquely or existing third party blocks modified or |
|
data model |
In a similar process of design where application needs are translated into system functions and IP blocks, there is a need to translate the application needs into the data model for the system. |
|
Universal Verification Methodology |
The Universal Verification Methodology (UVM) is a standard to create a modular reusable generic verification environment. It aims to reduce the effort of reusing IP by making it easier to reuse verification components associated with the IP. |
|
Behavioural Design |
Takes an Architectural Model and creates a full behavioural description of a system that can be run in simulators or transformed into a technology independent register-transfer level (RTL) description. |
|
Behavioural Modelling |
Creation of a "Behavioural Model" of the system consisting of behavioural blocks each described with a high level description language. |
|
Simulation |
Supports activities including, analysis of system behaviour including timing, execution of tests to validate the system model and in some cases develop and debug software that will operate in the system. |
|
Generate RTL |
Creation of a independent register-transfer level (RTL) description of the system consisting of registers and data flows from a hardware description language (VHDL, Verilog, etc.). |
|
RTL Verification |
Is a 'design closure' stage to ensure independent register-transfer level (RTL) description of the system is consistent. |
|
Logical Design | ||
Technology Selection |
Fabrication/deployment of a SoC requires selecting a specific technology that the independent register-transfer level (RTL) design can be transformed into a technology dependent form that can be passed to a fabrication house for manufature, deployed on a prefabricated logic such as a Field Progra |
|
Standard Cell Libraries |
Standard Cell libraries help simplify the design task by abstracting some of the complexity of physical transistor layout and local connection while still understanding the design tradeoffs to meet the system level goals for power, area, and performance for a system-on-chip (SoC). |
|
Memory generators |
In any SoC design memory makes up a significant portion of the transistor count and area. Small memories can be synthesized using flip-flop or latch standard cells, but synthesizing large memories is inefficient in area, energy, and timing compared to using custom bits in a memory block. |
|
Synthesis |
Is the process step to transform the technology independent register-transfer level (RTL) description of a system into a technology dependent netlist using a specific technology cell library. |
|
Design for Test |
Modify the functional design of the system to add logic to allow control over the system while under test or to allow the observation of operation of the system. Additional circuit elements or probe points can be driven by external test environments including automated test equipment. |
|
Logical verification |
By a range of verification tasks test the logical representation of the system. Verification can be by formal (mathematically correct) methods, generated tests and manually created tests. Logical Equivalence Checks are performed against higher level RTL level model descriptions. |
|
Physical Design |
In physical design, various stages of processing refine the abstract logical design, as represented by the gate-level netlist, into the final geometric layout of the GDSII file that is needed for foundry fabrication. |
|
Floor Planning |
Optimises the placement of all the components, connection pads, macros, standard cells, power, ground, etc, taking account of physical constraints such as minimal area, separation, interconnect lengths, power as well as timing and other considerations.
|
|
Clock Tree Synthesis |
Clock Tree Synthesis starts the process of signal routing considering the most time critical signals. The aim is to distribute the clock signal to all the design elements to avoid skew and minimise latency. |
|
Routing |
Depending on the fabrication technology selected the number and capacity metal layers available for routing all the interconnections for a design varies making routing layout a complex 3-dimensional problem. |
|
Timing closure |
Timing closure completes the process of adjusting all the design elements and the signal paths between them to meet the overall system timing requirements. |
|
Physical Verification |
Physical design activities require verification based on physical models based physical quantities. As physical design activities progress the developing design needs to checked to ensure the activities have not caused any change to the higher level design. |
|
Tape Out |
Tape Out is the hand over point from the SoC design flow to the physical device fabrication flow. It is usually the point where the design is passed from the designers to the wafer production facility. |
|
Post Silicon |
Following the SoC submission to manufacture (tape out) there are an ongoing set of activities in preparation for the return of the fabricated devices. |
System Validation at ARM |
Example flows |
This section on design flows contains example flows with information on specific flow/tool implementations. |
|
Accelerator Wrapper Flow |
In order for an accelerator to be integrated within an SoC, the accelerator needs to share interfaces with the system. In the case of NanoSoC, this utilises an AHB-lite bus. |
|
FPGA SoC Prototyping design flows |
This section outlines the FPGA SoC Prototyping design flows that are being used to support SoC Labs projects. There are a number of SoC design environments available and these examples are not an exhaustive survey of FPGA design environments. |
|
milliSoC prototyping with ARM MPS3 platform |
This example design flow supports the milliSoC reference design with the ARM MPS3 development board as a target. |
|
nanoSoC prototyping with Xilinx(R) PYNQ(R) platform |
This example design flow supports the nanoSoC reference design with use of the Xilinx ZCU104 development board as a high level design prototype target. |
|
Continuous Integration and Deployment for verification |
Continuous Integration and Deployment is a project development technique to merge code changes from a project team into a central repository where automated build and testing are used to find any system integration issues and provide versions of the project for continued development an fixes issu |
|
SoC Design Contest 2023 example flow |
SoC Labs and Arm have announced a joint 'Bridging the Skills Gap' SoC Design Contest that will run during 2023. This example design flow is provided to help groups engage with the contest. |
|
Getting Started |
In Getting Started with your SoC design you will need to pull together information on the various aspects of hardware design that support your project. |
|
Project Structure |
Maintaining a good structure for a Project helps bring together the various aspects of Technology IP, the Design Flow tools and all their interactions, files the generate, etc. |
|
IP Library Structure |
It is important to structure your external IP well on your local system/network for a magnitude of reasons. The first is that external IPs can be quite large and is something you may not wish to have stored on a Git server. |
|
Specifying your IP |
As part of the Architectural Design phase and IP Design Flow, before designing your IP it is important to try and specify the IP that you intend to make. |
|
Accelerator Design Flow |
Accelerator SoC Design Flow |
|
Algorithmic Modelling Design Flow |
One of the first stages of the behavioural design stage of a project is to produce a time-independent algorithmic model which can represent the operation of the accelerator. |
|
Basic System Accelerator Integration Verification |
A large part of the behavioural design phase of a project is actually the verification of the design at multiple levels of abstraction. |