SoC Design Process
SoC Design Process
Lecture 1
SoC Design Process
September 2004
Introduction to SoC and Reusable IP
SoC: System-on-a-Chip
• System
A collection of components and/or subsystems that are
appropriately interconnected to perform the specified
Juinn-Dar Huang
copyright © 2004 2
Many Aspects to SoC
• SoC means different things for different people
– foundry process
– packaging
Juinn-Dar Huang
copyright © 2004 3
An SoC Example
Juinn-Dar Huang
jdhuang@mail.nctu.edu.tw
SoC Design Process
copyright © 2004 " Source: ARM Solutions Smart Phones and Communicators 4
Evolution of Silicon Design
Year 1997 1998 1999 2002
connected con-
trollers
copyright © 2004 " Source: “Surviving the SOC Revolution - A Guide to Platform-Based Design” by Henry Chang et al, KAP, 1999 5
Benefits of SoC
• Reduce overall system cost
• Increase performance
Juinn-Dar Huang
copyright © 2004 6
Trends of VLSI Design
SoC
Design
Juinn-Dar Huang
Complexity Reuse
RTL
Synthesis
Gates
jdhuang@mail.nctu.edu.tw
Transistors
Design
On-Line Design Productivity
Polygons
Pattern Generation
copyright © 2004 7
Productivity Gap
Transistor/Staff Month
1M Transistor/Staff Month 10M
58%/Yr. Compound
100K 1M
Productivity
Complexity Growth Rate
10K 100K
1K 10K
jdhuang@mail.nctu.edu.tw
100 1K
SoC Design Process
1999
2001
2003
2007
1987
1989
1993
1995
1997
2005
2009
1983
1985
1981
Solution:
Block-based design with reusable IPs
copyright © 2004 9
How to Conquer the Complexity
• Use a known real entity
– a pre-designed component (reusable IPs)
– a platform
Juinn-Dar Huang
• Partition
– based on functionality
– hardware and software
• Modeling
jdhuang@mail.nctu.edu.tw
SoC Design Process
– at different level
– consistent and accurate
copyright © 2004 10
Taxonomy
• Intellectual Property (IP)
– Intellectual Property means products, technology,
software, etc. that have been protected through patents,
copyrights, or trade secrets
Juinn-Dar Huang
copyright © 2004 11
Solution for SoC Problems
• IPs
• Reusable IPs
Juinn-Dar Huang
– SoC testing
SoC Design Process
– hardware/software co-design
copyright © 2004 12
Key to Successful SoC
For macro creators
• Design reusable soft macros
Juinn-Dar Huang
copyright © 2004 13
Design for Use
To be reusable, be usable first
• Good documentation
Juinn-Dar Huang
copyright © 2004 14
Design for Reuse
• Design to maximize the flexibility
– configurable, parameterizable
• Design for use in multiple technologies
Juinn-Dar Huang
– portable
• Design with standard-based interfaces
• Design with complete verification process
jdhuang@mail.nctu.edu.tw
copyright © 2004 15
To Be Reusable or not to Be
• Treat design reuse as a burden because it seems
to lengthen the design cycle - Common Fallacy
Reuse vs. use-once design fashion
Juinn-Dar Huang
copyright © 2004 16
SoC Design Process
SoC Design Flow
• To meet SoC design challenges, design flow
changes from
– a waterfall model to a spiral model
Juinn-Dar Huang
copyright © 2004 18
Waterfall Model
Specification Timing
Development Verification
Juinn-Dar Huang
Functional Prototype
SoC Design Process
copyright © 2004 19
Spiral Model
System Design and Verification
PHYSICAL TIMING HARDWARE SOFTWARE
Physical Timing Hardware Software
Juinn-Dar Huang
Spiral
• Parallel, concurrent H/W and S/W development
jdhuang@mail.nctu.edu.tw
SoC Design Process
copyright © 2004 21
Top-Down vs. Bottom-Up
Top-down
• Recursively partition the design into manageable
macros
Juinn-Dar Huang
be unfeasible
SoC Design Process
completed
SoC Design Process
• Test coverage
• External interface to other hardware blocks
• Interface timing
• Interface to software
jdhuang@mail.nctu.edu.tw
SoC Design Process
copyright © 2004 24
Types of Specification (1/2)
• Natural language
– ambiguities, incompleteness, error-prone
Juinn-Dar Huang
• Formal specification
– written by a formal specification language
– formal verification can be used to check whether a
specific implementation meets the specification
jdhuang@mail.nctu.edu.tw
SoC Design Process
copyright © 2004 25
Types of Specification (2/2)
• Executable specification
– usually written in C/C++, SystemC
– verify basic functionality and I/F between H/W and S/W
Juinn-Dar Huang
copyright © 2004 26
System Design Process
IDENTIFY
System Requirements
Juinn-Dar Huang
WRITE
DETERMINE Preliminary Spec.
HW/SW Partition for Macros
copyright © 2004 27
IP Core Design
Lecture 2
System-Level Design Issues
September 2004
System-Level Design Issues
• Fundamental consensus
– well-designed IPs is the key to successful SoC design
• System-level guidelines
Juinn-Dar Huang
– DISCIPLINE
– SIMPLICITY
– LOCALITY
copyright © 2004 1
Interface and Timing Closure
• Timing problem due to deep-submicron
– increasingly significant wire delay
– wireload model becomes imprecise
Juinn-Dar Huang
copyright © 2004 2
Case Study: PCI
<= 7ns @ 33MHz
PCI <= 3ns @ 66MHz
REG
Timing closure very
Juinn-Dar Huang
PCI Logic
difficult @ 66MHz
CLK
System-Level Design Issues
REG
PCI Logic Timing closure not
difficult @ 66 or 133MHz
CLK
copyright © 2004 3
Synchronous vs. Asynchronous
• Synchronous
– avoid asynchronous and mutli-cycle paths
– accelerate synthesis and simulation
Juinn-Dar Huang
copyright © 2004 4
Clocking
• Minimize the number of clock domains
– isolate the interface between two domains
– careful synchronizer design to avoid metastability
Juinn-Dar Huang
• PLL
– disabling/bypassing mechanism
– ease testing
copyright © 2004 5
Reset
• Synchronous reset
– easy to synthesize
– requires a free-running clock, especially at power-up
Juinn-Dar Huang
power-on reset FF FF
reset to all FF
jdhuang@mail.nctu.edu.tw
power-on reset FF FF
reset to all FF
test_mode_n
copyright © 2004 7
Design for Verification
– bottom-up verification
copyright © 2004 8
System Interconnection
• Tri-state bus is not good
– bus contention problem
• reduce reliability
Juinn-Dar Huang
• bus keeper
jdhuang@mail.nctu.edu.tw
– ATPG problem
– FPGA prototyping problem
copyright © 2004 9
IP-to-IP Interface
• FIFO-based (Traditional)
– FIFO-like input/output interface design
– many successful stories
Juinn-Dar Huang
copyright © 2004 10
11
Without Standard IP Interface
copyright © 2004
System-Level Design Issues
Juinn-Dar Huang jdhuang@mail.nctu.edu.tw
12
Ideal SoC by Standard IP Interface
copyright © 2004
System-Level Design Issues
Juinn-Dar Huang jdhuang@mail.nctu.edu.tw
13
OCB Example - AMBA
copyright © 2004
System-Level Design Issues
Juinn-Dar Huang jdhuang@mail.nctu.edu.tw
Dynamic Power
Dynamic Power = ΣαfCV2
α: switching activity, f: frequency, C: capacitance, V: supply voltage
Juinn-Dar Huang
copyright © 2004 14
Low Power Techniques
• RTL techniques used in my previous CPU designs
– clock gating
– half-cycle latch
Juinn-Dar Huang
– operand isolation
– datapath masking
System-Level Design Issues
– memory interface
jdhuang@mail.nctu.edu.tw
• Other techniques
– data bus encoding
– multiple VDD and Vt
copyright © 2004 15
Clock Gating (1/2)
• Clock gating
– 50% - 70% power consumed in clock network reported
– gating the clock to an entire block
Juinn-Dar Huang
Block A
– gating the clock to a flip-flop Clock
generation
and gating
Block B
System-Level Design Issues
q <= q_nxt;
D Q
en
clk
Considerations:
1. Clock Tree Power
2. Clock Tree Latency
copyright © 2004 17
Clock Gating Analysis
From my previous 32-bit embedded processor
design experience
Juinn-Dar Huang
• Result
jdhuang@mail.nctu.edu.tw
GN
copyright © 2004 19
System-Level Clocking
• Clock speed-down (power down mode)
– software-controlled frequency down-scaling
– frequency divided by 2, 4, 8, …
Juinn-Dar Huang
copyright © 2004 20
Half-Cycle Latch (1/2)
D Q Logic D Q Logic D Q
System-Level Design Issues
jdhuang@mail.nctu.edu.tw
clk
Guidelines: posedge FF + low-enable latch
copyright © 2004 21
Half-Cycle Latch (2/2)
Combo
Juinn-Dar Huang
FF LAT
G
Clock
System-Level Design Issues
Clock
jdhuang@mail.nctu.edu.tw
copyright © 2004 22
Operand Isolation (1/4)
A Shifter_out
Shifter
B_Shifter_in output
System-Level Design Issues
ALU_out
A_ALU_in
jdhuang@mail.nctu.edu.tw
B
ALU
B_ALU_in
copyright © 2004 23
Operand Isolation (2/4)
A Shifter_out
Shifter
B_Shifter_in output
System-Level Design Issues
ALU_out
A_ALU_in
jdhuang@mail.nctu.edu.tw
B
ALU
B_ALU_in
copyright © 2004 24
Operand Isolation (3/4)
A Shifter_out
Shifter
FF
B_Shifter_in output
System-Level Design Issues
ALU_out
A_ALU_in
jdhuang@mail.nctu.edu.tw
FF
B
ALU
FF
B_ALU_in
ALU has no transition when Shifter operation executed
copyright © 2004 25
Operand Isolation (4/4)
A Shifter_out
Shifter
FF
B_Shifter_in output
System-Level Design Issues
ALU_out
A_ALU_in
jdhuang@mail.nctu.edu.tw
FF
B
ALU
FF
B_ALU_in
Shifter has no transition when ALU operation executed
copyright © 2004 26
Datapath Masking
A B
C
Combo FF
Juinn-Dar Huang
en
enable
System-Level Design Issues
clock
enable
jdhuang@mail.nctu.edu.tw
A
B
copyright © 2004 27
Memory Interface
• Partition a large memory into several small blocks
– beware of trade-off
• Gray-coded address bus
Juinn-Dar Huang
32KB
jdhuang@mail.nctu.edu.tw
64KB
32KB
copyright © 2004 28
Data Bus Encoding
• Transition-based encoding
– P(0) ≠ P(1) ≠ ½
• Bus inverting
Juinn-Dar Huang
copyright © 2004 29
Other Techniques
• Balanced logic
A A
B + B +
Juinn-Dar Huang
C + C +
D + D +
• Resource sharing
System-Level Design Issues
• Operand reduction
jdhuang@mail.nctu.edu.tw
– (A*X) + (X * X) + B Î (A + X) * X + B
copyright © 2004 30
Design for Test (DFT)
• Memory test
– memory BIST is recommended
• Processor test
Juinn-Dar Huang
copyright © 2004 31
Single Stuck-At Fault Model
• Stuck-at-0
– a signal permanently low regardless the control
• Stuck-at-1
Juinn-Dar Huang
– reduce complexity
jdhuang@mail.nctu.edu.tw
copyright © 2004 32
Detecting Stuck-At Fault
Juinn-Dar Huang
System-Level Design Issues
• Detectable
jdhuang@mail.nctu.edu.tw
– Controllable
– Observable
copyright © 2004 33
Deterministic Pattern Generation
• Apply pattern detecting the fault should be able to
– propagate the fault effect to PO (observability)
– exercise the fault from PI (controllability)
Juinn-Dar Huang
System-Level Design Issues
jdhuang@mail.nctu.edu.tw
copyright © 2004 34
Fault Simulation
• Determine the faults detected by a test vector
• Performing logic simulation on
– one fault-free circuit
Juinn-Dar Huang
copyright © 2004 35
Automatic Test Pattern Generation
• ATPG
– read netlist
– build fault list/fault collapsing
Juinn-Dar Huang
– vector generation
– fault simulation
System-Level Design Issues
– vector compression
– vector writing (done)
jdhuang@mail.nctu.edu.tw
copyright © 2004 36
Fault Coverage and Defect Level
• Yield (Y):
– the fraction of dies that are produced free of defects
• Fault Coverage(FC):
Juinn-Dar Huang
– fraction of bad parts among the parts that pass all the
tests and are shipped
jdhuang@mail.nctu.edu.tw
copyright © 2004 37
Sequential Circuit Pattern Generation
• Sequential circuit behavior
– hard to set internal FF to a desired value
• Long test pattern generation time
Juinn-Dar Huang
copyright © 2004 38
Full-Scan Methodology
Juinn-Dar Huang
System-Level Design Issues
jdhuang@mail.nctu.edu.tw
Lecture 3
(Soft) Macro Design Process
September 2004
Macro Design Process
4 Major Phases
• Design top-level macro
Juinn-Dar Huang
copyright © 2004 1
Characteristics of Good Soft IPs
• Configurability
• Standard interface
Juinn-Dar Huang
copyright © 2004 2
Top-Level Macro Design Flow
Partition
into subblocks
copyright © 2004 3
Contents of Design Specification
• Overview • Manufacturing test method
• Functional description • S/W programming model
• Physical requirements – register map, ...
Juinn-Dar Huang
• External interface
– I/O pin list
– timing constraints on I/O
ports
– clock, reset signals
copyright © 2004 4
Subblock Design Flow
Write
function spec.
Write
Juinn-Dar Huang
technical spec.
enough
Meet all
specified
Write creation guide
constraints
Pass - ready for integration
copyright © 2004 5
Subblock Integration Flow
Subblock 1 Subblock 2 Subblock n
Determine configuration
Generate top-level RTL
Juinn-Dar Huang
Generate
top-level synthesis scripts
Functional Test
Run lint
Pass coverage test Synthesize
with reference library
Macro Design Process
jdhuang@mail.nctu.edu.tw
Productize
hard macro
copyright © 2004 6
Soft Macro Productization
Ready for Productization
Synthesize chip
Test chip
on demo board Release
copyright © 2004 7