SoC Design 2 - Unit - 1
SoC Design 2 - Unit - 1
- System on a Chip (SoC) refers to a chip that integrates all the essential components of
a complete system onto a single piece of silicon.
- This design allows for compactness, low power consumption, and cost-effectiveness.
Common examples of SoCs include chips in smartphones, tablets, and IoT devices &
it involves integrating various components like processor cores, memory, peripherals,
and interconnects onto a single chip.
Memory:
What is Memory in SoC?
- Memory is used to store both data and instructions needed by the processor to perform
tasks.
- There are two types of memory in SoCs:
Volatile Memory (RAM): -
Stores data temporarily. When the power is turned off, data is lost.
Non-volatile Memory (ROM): -
Stores data permanently, even when power is turned off.
Peripherals:
What are Peripherals?
- Peripherals are components that allow the SoC to interact with the outside world.
- They provide the functionality needed to communicate with the environment.
- Examples:
Input Devices: Keyboards, touchscreens, microphones.
Output Devices: Displays (LCD, LED screens), speakers, printers.
Communication Interfaces: USB ports, Bluetooth, Wi-Fi, Ethernet.
Interconnects:
What are Interconnects in SoC?
- Interconnects are the communication pathways that connect all the components of the
SoC (processor, memory, peripherals). i.e. enabling communication and data transfer
between the different components on the chip.
SoC Design Flow: Top-Down and Bottom-Up Design Approaches, RTL Design, Synthesis,
Verification
The SoC design process involves multiple stages to create a working chip, from
conceptualizing the system to verifying its functionality.
Top-Down Design Approach:
What is Top-Down Design?
The Top-Down Design approach starts with high-level system requirements and works down
to the details.
Steps:
Start with the big picture: What does the SoC need to do? What features should it have?
Break down the system into smaller subcomponents like CPU, memory, communication
interfaces.
Design and integrate these smaller parts.
Example: Imagine designing a smartphone SoC. First, you decide the SoC should be able to
run a specific operating system (like Android). Then, you design the processor, memory, and
peripheral components needed for that system.
Bottom-Up Design Approach:
What is Bottom-Up Design?
The Bottom-Up Design approach starts by designing individual components and then
integrating them into the larger system.
Steps:
Start by designing specific components like memory blocks, processing cores, or
communication units.
After each component is designed and tested, integrate them to create the full system.
Example: You might start with designing a memory chip first. After that, you design the
processor, and then, you connect these components together to make a complete SoC.
RTL Design (Register Transfer Level Design):
What is RTL Design?
RTL Design is a way of describing the behavior of digital circuits in detail.
It uses HDL (Hardware Description Languages) like Verilog or VHDL to describe how data
moves between different registers (storage locations) and the operations that happen on this
data.
Example: If you design an adder circuit, you describe how two numbers will be stored in
registers, added together, and the result will be saved in another register.
Synthesis:
What is Synthesis?
Synthesis converts the RTL code (a detailed description of how the chip works) into a gate-
level design.
This means converting the abstract design into actual physical gates (AND gates, OR gates,
flip-flops) that can be built into a chip.
Goal of Synthesis: Ensure that the design can be fabricated into real hardware (a working
chip).
Verification:
What is Verification?
Verification checks if the SoC design works as expected before it is manufactured.
It helps identify bugs and issues early in the design process, which saves both time and cost.
Verification Methods:
Simulation: Running the design through software tools that simulate how it would behave in
real life.
Real Hardware Testing: Testing the design using actual hardware like FPGAs (Field-
Programmable Gate Arrays) to see if it works in the real world.