Introduction To Codesign
Introduction To Codesign
Codesign of
Embedded System
Introduction
Digital systems designs consists of hardware components and
software programs that execute on the hardware platforms
Hardware-Software Codesign ?
2
Microelectronics trends
Better device technology
◦ reduced in device sizes
◦ more on chip devices > higher density
◦ higher performances
3
Microelectronics trends
Higher degree of integration
◦ increased device reliability
◦ inclusion of complex designs
4
Digital Systems
Judged by its objectives in application domain
Performance
Design and Manufacturing cost
Ease of Programmability
5
Digital Systems
Judged by its objectives in application domain
Performance
Design and Manufacturing cost
Ease of Programmability
6
Hardware/Software Codesign
A definition:
7
Concurrent design
Traditional design flow Concurrent (codesign)
flow
start
start
HW SW
HW SW
Designed by independent
groups of experts Designed by Same group of
experts with cooperation
8
Codesign motivation
Trend toward smaller mask-level geometries leads to:
Higher integration and cost of fabrication.
Amortize hardware design over large volume productions
Suggestion:
Use software as a means of differentiating products based on the
same hardware platform.
9
Story of IP cores
What are these IP Cores?
10
Story of IP cores
Complex macro cells implementing instruction set
processors (ISP) are available as cores
Hardware (core)
Software (micro kernels)
11
IP core reuse
Cores are standardized for reuse as system building blocks
Rationale: leveraging the existing software layers including OS and
applications in ES
Results:
1. Customized VLSI chip with better area/ performance/
power trade-offs
2. Systems on Silicon
12
Hardware Programmability
Traditionally
Hardware used to be configured at the time of
manufacturing
Software is variant at run time
13
FPGAs
FPGA circuits can be configured on-the-fly to implement a
specific software function with better performance than on
microprocessor.
14
FPGAs
FPGA circuits can be configured on-the-fly to implement a
specific software function with better performance than on
microprocessor.
FPGA can be reprogrammed to perform another specific
function without changing the underlying hardware.
15
FPGAs
FPGA circuits can be configured on-the-fly to implement a
specific software function with better performance than on
microprocessor.
FPGA can be reprogrammed to perform another specific
function without changing the underlying hardware.
16
Why codesign?
Reduce time to market
17
Why codesign?
Reduce time to market
Achieve better design
◦ Explore alternative designs
◦ Good design can be found by balancing the HW/SW
18
Why codesign?
Reduce time to market
Achieve better design
◦ Explore alternative designs
◦ Good design can be found by balancing the HW/SW
19
Distinguishing features of
digital system
Interrelated criteria for a system design
Hardware
Technology
Application
Domain
Level of
Integration
Degree of
Programmability
20
Application Domains
General purpose computing system
◦ usually self contained and with peripherals
◦ Information processing systems
21
Application Domains
General purpose computing system
◦ usually self contained and with peripherals
◦ Information processing systems
22
Embedded System
Uses a computer to perform certain functions
Conceived with specific application in mind
◦ examples: dash controller in automobiles, remote controller for robots, answering machines,
etc.
23
Embedded Systems
Uses a computer to perform certain functions
Conceived with specific application in mind
◦ examples: dash controller in automobiles, remote controller for robots, answering machines,
etc.
24
Degree of Programmability
Most digital systems are programmed by some software programs for
functionality.
Two important issues related to programming:
who has the access to programming?
Level at which programming is performed.
25
Degree of Programmability:
Accessibility
Understand the role of:
26
Degree of Programmability:
Accessibility
Understand the role of:
27
Degree of Programmability:
Accessibility
Understand the role of:
28
Degree of Programmability:
Accessibility
Understand the role of:
29
Degree of Programmability
30
Example 2.
Embedded Systems
End user: Limited access to programming
Most software is already provided by system
integrator who could be application developer too!
31
Level of Programmability
Systems can be programmed at application, instruction and hardware
levels
Application Level: Allows users to specify “option of
functionality” using special language.
Example: Programming VCR or automated steering
control of a ship
32
Level of Programmability
Instruction-level programmability
◦ Most common ways with ISA processors or DSP
◦ compilers are used in case of computers
◦ In case of embedded systems, ISA is NOT visible
33
Level of programmability
Hardware level programmability
34
Programmability
Microprogramming Vs.. Reconfigurability
35
Programmability
Microprogramming Vs.. Reconfigurability
36
Performance and
Programmability
General computing applications: use of superscalar RISC
architecture to improve the performance (instruction level
programming)
37
Performance and
Programmability
General computing applications: use of superscalar RISC
architecture to improve the performance (instruction level
programming)
Dedicated Applications: Use of application specific designs
(ASICs) for power and performance
◦ Neither reusable nor cheap!
38
Performance and
Programmability
General computing applications: use of superscalar RISC
architecture to improve the performance (instruction level
programming)
Dedicated Applications: Use of application specific designs
(ASICs) for power and performance
◦ Neither reusable nor cheap!
39
Performance and
Programmability
Any other solutions?
How about replacing the standard processors by
application specific processors that can be programmed at
instruction level (ASIPs).
◦ Better power-performance than standard processor ?
◦ Worse than ASICs
40
Programmability and
Cost:ASIPs
Cost can typically be amortized over larger volume than on ASICs (with
multiple applications using ASIPs).
Ease to update the products and engineering changes through
programming the HW,
However, includes compiler as additional cost
41
Hardware Technology
Choice of hardware to implement the design affects the performance and
cost
VLSI technology (CMOS or bipolar, scale of integration and feature size
etc.) can affect the performance and cost.
42
Hardware Technology:
FPGAs
Performance is an order of magnitude less than corresponding non-
programmable technology with comparable mask size
For high volume production, these are more expensive than ASICs
Power Issues?
43
Level of Integration
Integration leads to reducing number of parts, which means, increased
reliability, reduced power and higher performances
But it increases the chip size (cost) and makes debugging more
challenging.
Standard components for SoC are cores, memory, sensors and
actuators.
44
Embedded System Design
Objective
Embedded systems:
control systems: reactive, real-time
function & size: micro controller to high throughput data-processor
◦ requires leveraging the components and cores of microprocessors
45
Codesign of ISA
ISA is fundamental to digital system design
An instruction set permits concurrent design of HW
and compiler developments
Good ISA design is critical in achieving system
usability across applications
Goal of codesign in ISP development is to optimize
HW utilization by application & OS
46
Codesign of ISA
For high performance in ES, selection of instruction set that matches
the application is very important
◦ replace the standard core by ASIP
ASIPs are more flexible than ASICs but less than ISP
ASIP performs better than ISP
47
Challenges with ASIP
Compatibility requirement is less important
Goal: support specific instruction mixes
48
Typical codesign process
System
Description
Modeling
49
Steps in Codesign
HW-SW system involves
specification
modeling
design space exploration and partitioning
synthesis and optimization
validation
implementation
50
Steps in codesign
Specification
◦ List the functions of a system that describe the behavior of an abstraction clearly without
ambiguity.
Modeling:
◦ Process of conceptualizing and refining the specifications, and producing a hardware and
software model.
51
Modeling style
Homogeneous: a modeling language or a graphical formalism for
presentation
◦ partitioning problem used by the designer
52
Steps in codesign
Validation:
Process of achieving a reasonable level of confidence that the system
will work as designed.
Takes different flavors per application domain:
cosimulation for performance and correctness
53
Steps in codesign
Implementation:
Physical realization of the hardware (through synthesis) and of
executable software (through compilation).
54
Partitioning and Scheduling
(where and when)
A hardware/software partitioning represents a physical partition of
system functionality into application-specific hardware and software.
Scheduling is to assign an execution start time to each task in a set,
where tasks are linked by some relations.
55
Summary:
Research areas in codesign
Languages
Architectural exploration tools
Algorithms for partitioning
Scheduling
SW, HW and interface Synthesis
Verification and Testing
56