CS269: HW/SW
Engineering of Embedded Systems, Winter02


The co-design ladder
•In the past:
–Hardware and software design
technologies were very different
–Recent maturation of synthesis enables a unified view of hardware and software
•Hardware/software “codesign”
Implementation
Assembly
instructions
Machine
instructions
Register
transfers
Compilers
(1960's,1970's)
Assemblers,
linkers
(1950's, 1960's)
Behavioral
synthesis
(1990's)
RT synthesis
(1980's, 1990's)
Logic synthesis
(1970's, 1980's)
Microprocessor plus program bits: “software”
VLSI, ASIC, or PLD implementation: “hardware”
Logic
gates
Logic
equations / FSM's
Sequential
program code (e.g., C, VHDL)
The choice of hardware versus software for a
particular function is simply a tradeoff
among various design metrics, like performance, power, size, NRE cost, and especially flexibility; there is no
fundamental difference between what hardware or software can implement.