Embedded Systems
CSEE W4840
Prof. Stephen A. Edwards
Columbia University
Embedded Systems – p. 1/2
Spot the Computer
Embedded Systems – p. 2/2
Hidden Computers
Casio Nokia 7110 Sony
Camera Browser Playstation 2
Watch Phone
Philips Philips
DVD Player TiVo Recorder
Embedded Systems – p. 3/2
Technical Challenges
Real-time Complexity
Concurrency Legacy LanguagesEmbedded Systems – p. 4/2
Software complexity growing
Size of Typical Embedded System
1985 13 kLOC
1989 21 kLOC ↓ 44 % per year
1998 1 MLOC
2000 2 MLOC
2008 16 MLOC ≈ Windows NT 4.0
2010 32 MLOC ≈ Windows 2000
Source: “ESP: A 10-Year Retrospective,” Embedded Systems Programming,
November 1998
Embedded Systems – p. 5/2
Written in stone-age languages
“Which of the following programming languages
have you used for embedded systems in the last
12 months?”
C 81%
Assembly 70%
C++ 39%
Visual Basic 16%
Java 7%
Source: “ESP: A 10-Year Retrospective,” Embedded Systems Programming,
November 1998
Embedded Systems – p. 6/2
Digital Camera Block Diagram
Embedded Systems – p. 7/2
The Design Challenge
Design optimal device that meets constraints on
Price Functionality
Performance Size
Power Time-to-market
Maintainability Safety
Embedded Systems – p. 8/2
The Time-to-Market Challenge
Possible Revenue
Typical
time-to-market
constraint:
8 months
Market
Window
Time
Embedded Systems – p. 9/2
Simplified Revenue Model
Sales Loss due to delay
Market ramp On-time curve
Delayed curve
Time
D W 2W
Assuming a constant market ramp, on-time revenue is 12 bh = 12 · 2W · W = W 2
and delayed revenue is 12 (2W − D)(W − D) so fractional revenue loss is
D(3W − D)
2
= O(D 2 )
2W
Example: when W = 26 and D = 10, fraction lost is about 50%.
Embedded Systems – p. 10/2
NRE
Nonrecurring engineering cost:
The cost of producing the first one.
NRE cost dominates
Production cost dominates
log Unit Cost
Low NRE, high production costs
High NRE, low production costs
log Volume
Embedded Systems – p. 11/2
Embedded System Technologies
Integrated Circuits
Processing elements
Design tools
Embedded Systems – p. 12/2
IC Technology
1947: First transistor (Shockley, Bell Labs)
1958: First integrated circuit (Kilby, TI)
1971: First microprocessor (4004: Intel)
Today: six wire layers, 100 nm features
Embedded Systems – p. 13/2
Moore’s Law
Gordon Moore, 1965: Exponential growth in the
number of transistors per IC
Source: Intel
Embedded Systems – p. 14/2
$1000 buys you this many CPS
Electromechanical Relay Tube Transistor Integrated Circuit
108
106
104
102
1
10−2
10−4
1900 1910 1920 1930 1940 1950 1960 1970 1980 1990 2000
Source: Ray Kurzweil, The Age of Spiritual Machines
Embedded Systems – p. 15/2
1918 Sears Roebuck Catalog
About $100 in today’s dollars.
From Donald Norman, The Invisible Computer, 1998.
Embedded Systems – p. 16/2
Spectrum of IC choices
Flexibility
You choose
Full Custom polygons (Intel)
ASIC circuit (Sony)
Gate Array wires
FPGA logic network
PLD logic function
GP Processor program (e.g., Pentium)
SP Processor program (e.g., DSP)
Multifunction settings (e.g., Ethernet)
Fixed-function part number (e.g., 74LS00)
Embedded Systems – p. 17/2
Hardware and Software
Hardware Software
Parallel Sequential
Synchronous Asynchronous
Logic Gates Stored programs
Wire-based Memory-based
communication communication
Fixed topology Highly programmable
Low power High power
More detailed Less detailed
High NRE No NRE
Faster Slower
Embedded Systems – p. 18/2
Design Tools
Hardware Software
Logic Synthesis Compilers
Place-and-route Assemblers
DRC/ERC/LVS Linkers
Simulators Debuggers
Embedded Systems – p. 19/2
Cost of Designs is Rising
1981: 100 designer-months for leading-edge chip
10k transistors, 100 transistors/month
2002: 30 000 designer-months
150M transistors, 5000 transistors/month
Design cost increased from $1M to $300M
10G i p
c h
o r s per
100M s is t
Tra n
1M
e r - m o n t h
10k r s / d e s i g n
Transist o
100
1980 1985 1990 1995 2000 2005 2010
Embedded Systems – p. 20/2
Your Nemesis: The XESS XSB-300E
Embedded Systems – p. 21/2
Overview of the XSB Board Circuitry
Block Diagram
The XSB Board has two major groups of components that connect to the FPGA: 1) those
with dedicated buses, and 2) those that share a peripheral bus. Components that process
video and audio data streams use dedicated buses, while all other components use the
shared Peripheral Bus. (The audio codec actually connects to both types of buses: it is
loaded with configuration data through the Peripheral Bus but it sends and receives
digitized audio data through a dedicated bus.) The chip-selects for components on the
Peripheral Bus are controlled by the FPGA to prevent contention.
XC2S300E FPGA
CPLD
XC9572 CPLD
256K x 16 SRAM
Connector
4 Mb
RS232
Flash
8M x 16 SDRAM
512K x 8 Flash
Expansion
Connector
256K x 16
SRAM
Video
DAC
6-channel NTSC video decoder
12-bit, 30 MSPS ADC
80 MHz, 30-bit video DAC
Video
8M x 16
SDRAM
Decoder
20-bit, 4-input, 1-output stereo codec
Microphone/line-in/line-out jacks
Peripheral Bus
30 MSPS
ADC 10/100 Ethernet MAC+PHY
Ethernet
MAC+PHY
USB 2.0 peripheral port
Audio
Six pushbuttons, DIP switch
Expansion Codec
Connector Two LED digits, bargraph
Three programmable oscillators
Expansion
Connector
USB 2.0 Two expansion headers w/ 75 I/O pins
Peripheral header w/ 18 I/O pins
Connector
Parallel and Serial port
IDE Disk
Buttons LEDs
Compact Flash
Connector
Compact Flash interface
IDE hard disk interface
Embedded Systems – p. 22/2
XSB BOARD V1.0 MANUAL 19 8/20/2003
Class Structure
First half project: TV Typewriter. Six Labs:
1. Count in C on the 7-segment display
2. Hello World in C to video display
3. TV Typewriter in C
4. Count in VHDL on the 7-segment display
5. Character Generator in VHDL
6. TV Typewriter in HW/SW
Second half project: Design-your-own
Embedded Systems – p. 23/2
Custom Project Ideas
Broadly: C + VHDL + peripheral(s)
Digital tone control
Digital sound effects processor
Real-time spectrum analyzer
Simple video effects processor
Speech synthesizer
Digital picture frame
Internet radio
Embedded Systems – p. 24/2