Advertisment

Making of a System-on-Chip

author-image
PCQ Bureau
New Update

Today's mobile phones have more processing power than typical desktop

computers of the last millennium. Even the Portable Media Players (PMPs) have

more sophisticated processors than the revolutionary Pentium processor launched

15 years back. On top of that, mobile phones, PMPs and other handheld devices

are getting smaller and thinner with increasing battery life.

Advertisment

So, what makes these new generation handheld devices tick? Ticking at 200MHz

or more, these devices are powered by a small silicon chip -the size of about

10mm x 10mm, which contains almost all components of a powerful computer

including processor core, memory controller, interrupt controller, timer,

multimedia co-processors or digital signal processor (DSP) etc. This silicon

chip, along with the software running on it, is called a System-on-Chip or SoC.

What is a SoC?



System-on-chip is an integration of almost all components of a computer into

a single integrated circuit (chip). The SoC consists of both the hardware (HW)

components of the computer as well as the software (SW) that controls the

microprocessor and peripherals.

Advertisment

The block diagram of a typical SoC is shown in Figure 1, and Figure 2 shows a

generic software stack for the same.

SoC architectures



The generic SoC architecture consists of the processor, system bus, timers,

memory, interrupt controller and power management circuits. The other

peripherals such as LCD controllers, USB interface; Flash memory interfaces etc.

are optional and depend on the target application of the SoC.

Advertisment

SoCs for multimedia platforms — such as mobile phones or PMPs, require a

large amount of audio and video processing. There are two schools of thoughts in

the industry to achieve better multimedia experience for the user:Dedicated DSP

and Dedicated multimedia blocks.

Some SoC designers use a dedicated DSP along with the main processor. The

Audio and Video processing is shared between the main processor and the DSP.

E.g. the main processor may be decoding audio, while the video is decoded on the

DSP. This approach allows for more generic application of the SoC and also

allows scalability in the future as new codecs are released in the market. But

this approach may increase the size of the chip and also increase the power

utilization.

Advertisment

Other designers prefer using dedicated blocks for processing popular Audio

and Video encoding formats. E.g. there can be dedicated hardware blocks for MP3

decoding, H.264 decoding, MPEG4 encoding etc. This approach may be more

optimized in terms of size and power, but application and scalability may be

limited.

The approach used in a particular SoC will usually depend on the application,

market requirements and other constraints like cost and power.

Advertisment

SoC design flow



The design of any SoC starts with the requirement specification and

architecture exploration. The design team identifies all the processing blocks

along with their interconnections. A lot of time is devoted to the hardware and

software partitioning. This is essential for optimization of the performance of

the SoC as well as the costs involved. E.g. if the SoC requires processing of 3D

Graphics - the options for implementing the required processing logic or

algorithm are as follows:

  • Use a collection of interconnected logic gates (AND/NAND/NOR etc.) as a HW

    block
  • Implementation as a software library running on the main processor

Once the partitioning is finalized, the HW team starts working on the

implementation of the architecture platform. It consists of the main processor
core and the system buses. The main processor core is usually available as a

component from core vendors such as ARM or Tensilica. The system bus can be

either an industry standard architecture such as AMBA, or can be designed

specifically be the HW team. Next is design and implementation of HW blocks —

called HW IPs (intellectual property) using a hardware description language such

as VHDL or Verilog. Examples of HW blocks can be — USB controller, memory

controller, LCD controller etc. depending on the SoC requirements. Not all HW

blocks are designed and implemented by the HW team; some HW blocks are purchased

or licensed from 3rd parties who sell these as components. These may be commonly

used blocks such as serial bus controllers, memory controller, interrupt

controllers or can be very specialized blocks such as multimedia codecs, 3D

accelerators etc.

Advertisment

Next comes the integration of the HW blocks with the architecture platform.

This involves creating interconnection or bridges for the processor to

communicate and control each HW block. The whole system is then tested using

various verification techniques such as functional simulation.

The HW system is essentially a collection of logic gates and their

interconnections. To further verify the functionality of the HW system, the HW

team uses a field-programmable gate array (FPGA). An FPGA is a silicon chip

which consists of programmable logic (gates) and programmable interconnects. The

entire HW system can be realized using one or more FPGAs. The FPGAs are set on a

PCB which has similar external interfaces as the final SoC.

Further reading
CPU Cores
Advertisment

Since the FPGAs are reprogrammable, the HW team can test and modify their

implementation to eliminate bugs. The FPGA board with the HW system is also used

by the software team to co-simulate the entire system (SW+HW) and eliminate bugs

in both HW blocks and software programs.

The HW system implementation is done using Software tools on development

workstations running Windows or Linux. These software tools are called the

Electronic Design Automation (EDA) tools available from companies such as

Cadence, Synopsis and Mentor Graphics.

While the HW team is busy creating the HW System, the software team can start

developing the SW system. They create an environment on a development PC

(running Windows or Linux) simulating the SoC. There are many tools available to

create such environments. Mostly the tools are specific to the Operating System

chosen to run on the final SoC. E.g. the Windows CE tools from Microsoft provide

emulated execution environments on the PC itself for developing software. Next

comes the design and implemetation of components such as multimedia codecs,

application software etc. — these components are tested on the simulation

environment on the PC.

Once the FPGA board is ready with the HW system, the SW team can start

porting the operating system on to the FPGA board. The device driver development

is also done at this stage.

Once the HW and SW system on the FPGA board is stabilized and bug fixing is

complete, the HW team proceeds with the physical design of the SoC. This

involves developing the layout of the gates for the final realization on

Silicon.

This is a complex process usually termed as 'backend process'. The HW design

is then sent to the Semiconductor Fabrication Plant (FAB) for making of the

final chip (ICs) on silicon. This process is called 'tape-out'. The first sets

of ICs are called the engineering sample and are made available to the HW and SW

team for verification.

The verification process involves finding bugs in the IC and finding

workarounds to fix them — since the HW cannot be modified easily, most of the

bugs are fixed using software patches. If there are too many bugs, or some bugs

affect the functionality of the SoC, then the HW design is fixed and a second

tape-out may be required. This is termed as a re-spin and can be expensive.

When the engineering samples are found to be good enough to hit the market, a

mass production is ordered to the FAB and the ICs are shipped to the customer

with all associated software. The customers are often the original equipment

manufacturers (OEM) who make the final product using the SoC and other

components.

Intel, Samsung, ST Microelectronics, Texas Instruments and Qualcomm are some

Semiconductor companies, which make the SoCs and ship them to OEMs such as

Nokia, Apple, HP, HTC and Motorola. E.g. the new HTC Touch Diamond Smartphone is

powered by a Qualcomm SoC (MSM7201A) which has an ARM 1136 CPU Core running at

528MHz.

SoC design considerations



The focus of all SoCs designers is to deliver maximum performance at the

lowest cost and lowest power consumption. Many factors contribute to SoCs

characteristics:

Process Technology — The SoCs are manufactured using a Silicon

fabrication technology called Complementary metal—oxide—semiconductor (CMOS).

Logic gates are created on a Silicon wafer using the CMOS process technology.

The gates are then interconnected to realize the HW system of the SoC. The CMOS

process technology has been evolving over the years with the size of the gate

reducing considerably. Smaller size of each gate means a closer packing of the

gates on the silicon chip. The packing of gates which is roughly the distance

between them is measured in nanometres (nm). A smaller size indicates a more

advance process. The commonly used process these days ranges from 180 nm to 90

nm. Some FABs also have capability of 65 nm and 45 nm.



The advancement in the process technology has been a key contributor of the
evolution of the SoC. More and more gates, which in turn mean more and more

functionality, can be put in a single SoC thus reducing the number of ICs inside

a product. This has led to thinner, smaller and more power efficient handheld

products.

The CMOS process technology is also optimized for either higher speed or

lower power consumption. The SoC designers can select the process based on the

requirements of the target SoC and its applications.

Die Size — This is the physical surface area of the silicon used to

make a single IC. Die size is measured in mm2. The importance of die size is

that it translated directly to cost. Smaller die size of a chip means that more

of them can be made from a single wafer, thus reducing cost. Die size depends on

the number of gates required to realize a particular HW System for a SoC.

SoC designers try to optimize the die size to reduce cost. They try to

optimize the algorithms used to realize a particular functionality and also

optimize the gates required to implement the algorithm. Another target is to

reuse a particular HW block for multiple functionalities to reduce die size. SoC

designs frequently require performance vs. die size decisions.

Power — Most handheld devices run on battery power and power

consumption of a SoC becomes a prime consideration for OEMs as this is an

important buying consideration for users.

Power management — the process of reducing power consumption — involves

controlling standby power, reducing leakage currents, switching off HW blocks

which are not in use at the moment, slowing down the main processor during low

usage periods etc.

E.g. in a mobile phone, the USB controller can be switched off when the phone

is not connected to a PC, the LCD can be switched off after some time of

inactivity. Also, the main processor clock can be slowed down to bare minimum

when the phone is not in use.

Power management in SoCs for handheld devices is one of the most complex

tasks faced by the SoC designers.

Hardware Software Partitioning — One of the initial discussions during

the design of a SoC is on the question of what goes into HW and what is

implemented in SW. The factors involved are



1. HW is faster than SW


2. A large amount of parallel processing can be done in HW


3. There is limited flexibility in HW, functionality cannot be modified


4. Any bug found in HW may require an expensive re-spin


Since point 1, 2, contradict with 3, 4, the decisions of partitioning are
complex and require a lot of deliberation.



Operating System — The design of the SoC also depends on the type of
operating system that will be running on the processor. This is usually dictated

by the application of the SoC and the choice of the target customers.





If the SoC is targeted to run real time operating systems such as VxWorks,

uITRON etc. then some blocks such as Memory Management Unit (MMU) may not be

required. On the other hand, if the target OS is Windows CE or Embedded Linux,

then MMU becomes essential along with certain amount of Cache memory.

The above factors are a subset of all the factors that affect the design of a

SoC. See the links for further reading at the end of the article.

Future trends



The ever increasing requirement on the functionality of handheld devices is
pushing the SoC designers to make more powerful, power efficient and cost

effective SoCs with more and more functionality going into a single chip which

is getting smaller and thinner.

Latest SoCs feature CPU cores running at 500 MHz or more, peripherals include

LCD and Touch panel interface, camera interface, USB host/device, WLAN,

Bluetooth, TV Out, Flash memory controllers for Compact Flash, Memory Stick, SD

Card etc., complex HW blocks such as multi-format codecs, 3D accelerators, GPS

Baseband, 3G Modems, and DSP cores.

Sudipto Chanda

Advertisment