Architectural Design

Architectural design diagram

Introduction

The concept of reusable design patterns is familiar to many disciplines. At SoC Labs we are interested in reusable design patterns incorporating Arm based components to form the core of the System on Chip ("SoC") with parts added that are unique to your specific research challenge.

Arm itself uses the term Architecture for defining the processor instruction set, programmers' model and memory model, but not the implementation details such as cache sizes, data transfer widths, etc. Your SoC design is likely to be  a selection and configuration of Arm IP to define the main architecture for the overall system. Arm provide Corstone Subsystems that combine the various system IP components for a specific processor and Arm architecture to simplify System on Chip design. It is most likely a SoC Labs project will use one of these subsystems adding specific blocks either developed uniquely or existing third party blocks modified or arranged in a novel way.

SoC Labs is enhancing the baseline Corstone subsystems to make them more easily adopted for academic needs and projects.

nanoSoC extends the Corstone 101 subsystem

milliSoC extends the Corstone 300 subsystem

megaSoC extends the Corstone 1000 subsystem

Getting Started

The first step is describe in a Specification for the SoC a list of the proposed uses, specific algorithms or calculations that are to be implemented, what are the data requirements, time critical operations, etc. These help decide which compute subsystem / reusable reference designs is best.

At this high level stage of the design process project budget, available time and manpower may be constraints on what is achievable as well as project goals on ultimate energy efficiency, area cost or system performance characteristics. 

In making architectural design choices there are some tools available. These usually rely on pre-determined static information for area, power and performance that are adjusted/calculated from any configuration specified. These can aid high level selections such as which processor to use or support more fine grained choices in terms of data paths, cache sizes, etc.   

Separation of Concerns

One technique for controlling the complexity of SoC design is to use the system Architecture to separate aspects of the design task into specific parts of the system by defining unique sub-systems or using re-usable blocks. 

Some projects in SoCLabs are purely digital and some have analog interactions with the physical world. In the Arm system architecture slower speed sub-systems such as interfaces to the external environment are usually placed on a separate Advanced Peripheral Bus to ensure the core high speed functions of the systems such as the CPU to memory interface can operate efficiently. An example of this is the project to define a mixed signal subsystem for the nanosoc reference design. Sub-systems such as custom compute accelerators for Machine Learning and Artificial Intelligence need high through put of data and need to be on the main system bus. For nanoSoC there is an example of how a custom accelerator is integrated within a SoC

The ARM Advanced Microcontroller Bus Architecture is an open-standard, royalty-free, platform-independent, architecture for the connection and management of functional blocks in System On Chip design. SoC Labs projects will most likely integrate components into this bus architecture.

Another separation of concern is the design of the hardware and the implementation of the software system although they are inter-related. For example when considering a specific algorithm it is worth considering the relative performance of using one of the Arm processors running software versus developing a hardware custom accelerator. Estimates of instruction and data bandwidth will be needed in order to determine what memory is needed for intermediate storage. This is especially true when it comes to Machine Learning / Artificial Intelligence workloads. 

Data Movement Considerations

A proposed Architecture needs to specifically consider the flow of data within the system as a whole. It needs to consider how data will be moved to/from the external environment into the system and through any processing and storage stages. As well as primary data flows for the core operations of the system, secondary data flows such as debug information for error conditions and any systems start up specific flows, etc. need to be considered. Much of the detailed choices have already been considered in the various corstone subsystems and SoC Labs reference designs that extend them for academic projects. The SoC Labs Reference Design Comparison Table provides some high level comparisons of the data movement options.

The overall system data flow between the various components, subsystems and the external environment are needed to determine the bus systems to interconnect them. In more complex systems, a network-on-chip (NoC) architectural design as implemented in the corstone 300 and 1000 may be justified. There is a basic project here on building system-optimised AMBA interconnect

Within a subsystem local exchanges via hardwired data paths are more efficient than switched structures such as buses and NoCs and keeping wiring lengths short allows energy use to be minimised. 

Memory Considerations

Memory requirements place significant constraints on a proposed Architecture. Memory is usually laid out using specific technology node memory compilers. Placement of these blocks within the system can have implications on routing of interconnect between components. 

System Throughput  Considerations

It is important to consider any time critical operations of the system and cycle times for any system operations. This will allow a determination of the target clock frequency for the SoC as well as the degree of any parallelism in operations that can be implemented. This approximate target clock frequency may differ from the final solution but having an initial target will help determine the likely power consumption and outline costs of an ASIC implementation. 

Architectural Design System Decomposition / Partitioning

Given an initial Specification of the needs of the system an outline system architecture for the project can be made. Hopefully this fits one of the profiles for the SoC Labs reusable reference designs which should drastically simplify the selection of design components. Once all the reusable IP parts have been selected the custom developments and parts that are unique to the specific research challenge can be outlined and the task of considering the interfaces between the system's components, subsystems, and the external environment. If one of the SoC Labs reusable reference designs is not appropriate it may be possible to use tools to automate much of the configuration of the interfaces and interconnect for an more novel System on Chip design. Arm provide the Socrates Interconnect Tool to configure IP components using an AMBA® interconnect that can be tailored to the specific project goals.

These tools may only be able to guide the initial partitioning for typical SoC projects as there is a large design space of decisions for any particular design in order to optimise various system characteristics including energy, area, execution perform, etc. The design may evolve in a process of architectural exploration where different configurations of IP blocks are considered and relative benefits evaluated. 

Subsytem Design Decomposition

Once the main system architecture has been outlined the specific sub-systems within it can be decomposed. 

Explore This Design Flow

Projects Using This Design Flow

Competition 2025
Competition: Hardware Implementation
Cover image
Neural Activity Processor
Collaborative
Active Project
Cover image
AHB Qspi architectural design
dwn @ soclabs

AHB eXcecute in Place (XiP) QSPI
Competition 2024
Competition: Collaboration/Education
Cover image
IMPLEMENTATION OF FIXED TIME BASED TRAFFIC LIGTH SYSTEM USING FPGA WITH VERILOG HDL.
Competition 2024
Competition: Hardware Implementation
Cover image
Battery Management System-on-chip (BMSoC) for large scale battery energy storage
Reference Design
Case Study
Cover image
dwn @ soclabs

nanosoc re-usable MCU platform
Collaborative
Request of Collaboration
Cover image
DMA Infrastructure Developments

Experts and Interested People

Members

 
Placeholder
Research Area
Computer architecture, Machine Learning, Accelerator Design, Architecture Verification
Role
Independent Researcher

Related Project Milestones

Project Name Target Date Completed Date Description
ARM Cortex M0 Based SoC for Biomedical Applications Architectural Design

In this milestone, we aim to define the hardware used in the SoC. Behavioural level code has been written in Verilog to allow protocol conversion between AHB Lite protocol used in ARM Cortex M0 and UART/I2C peripheral.

Battery Management System-on-chip (BMSoC) for large scale battery energy storage Architectural Design
  • Understanding the scope of the competitions and reference designs provided in the soclabs.org
  • Mixed Signal Design Validation Strategy 

    Digital Centric mixed signal design flow is chosen for the project

  • Partitioning of Analog and Digital subsystems

    Digital Subsystem - ARM Cortex M3,  BMS accelerator, SoC Peripherals, Memory

    Analog subsystems - ADC and high voltage MUX, LDO, PWM, High voltage GPIOs.

  • Top-level functional block-design for the Analog Mixed-signal (AMS) SoC - completed 

 

Interference Detection and Mitigation Accelerator for Automotive Radar SoCs Architectural Design (92)

Architectural Design of Accelerator Modules

 

Low-Cost and Low-Power Data Acquisition System(DAQs) for Real-time Data Collection Architectural Design

Requirements Specification:

The DAQs has two modules - the Gateway and the End-terminal.

End-Terminal Requirements:

Purpose: Outdoor device for gathering real-time environment data

Inputs Power button, 5 sensor connectors:

Outputs: Antenna, 3 indicators - active, low power & power good

Functions: monitors  5 water quality parameters - PH, TDS, Temperature, Turbidity & ???;  transmits

IMPLEMENTATION OF FIXED TIME BASED TRAFFIC LIGTH SYSTEM USING FPGA WITH VERILOG HDL. Architectural Design

structural design of the project

Actions

Interested in this topic? Log-in to Add to Your Profile

Add new comment

To post a comment on this article, please log in to your account. New users can create an account.