Professional Documents
Culture Documents
ECE 2140
Alex K. Jones
Spring 2011
1
SoC Features
! Canonical definition
! 100,000+ gates?
! Programmable core?
! Memory?
! Plenty of virtual components?
! Moderate volume product?
! Short time-to-market?
! Consumer electronics product?
2
Canonical SoC
Peripherals Software
Memory
Processor Memory
Controller
! Examples
! Microprocessor core
! A/D converter
! Digital filter
! Audio compression algorithm
3
“Obtain” vs. “Create”
! The SoC paradigm
4
Building Block Components
(roughly equivalent terms)
! Macros
! Cores
! IP (Intellectual Property)
! Firm
5
Hard IP
! Delivered in physical form
(e.g., GDSII file)
! Fully
! Designed
! Placed and routed
! Characterized for timing, power, etc.
Hard IP
! Tied to a manufacturing process
! Actual physical layout
! Fixed Shape
! Complete characterization
! Guaranteed performance
! Known area, power, speed, etc.
! No flexibility
6
Power
Hard
Macro
A-Input
Data Out
B-Input
Ground
7
Examples of Hard IP Blocks
! A microprocessor core
Soft IP
! Delivered as synthesizable RTL
HDL code (e.g., VHDL or
Verilog)
8
Soft IP Blocks
! Synthesizable Verilog/VHDL
ENTITY example IS
PORT(clock, a, b, sel:IN BIT; d:OUT BIT);
END example;
9
Examples of Soft IP
! Counter, Comparator, Arithmetic/Logic Unit
! Register File (Memory)
! PCI bridge
! Microprocessor core possible (not typical)
! Representation form less process dependent
! Final performance is still process and
synthesis dependent
Firm IP Blocks
! Intermediate form between hard and soft IP
10
Design Domains and Levels of
Abstraction
Design Domains
! Represent different aspects
of a system
System
! System or behavioral domain Behavior
Data Flow
! Structural or RTL domain RTL
Physical Design
! Physical domain
11
Levels of Abstraction
! Architectural
! Algorithmic
! Module (functional block)
! Logical
! Switch
! Circuit (transistor)
! Materials (device)
Instructions Transistors
The Y
Cells
Chart Modules
12
System Domain
Structural Domain
13
Physical Domain
Physical Domain
! Build the physical structures
to implement behavior
! Devices (transistors)
! Interconnections (wires)
! Physical qualities: dielectrics,
conductors, etc.
14
Example
! An n-bit adder
Behavioral Representation
! How a design responds to a set
of inputs?
! Specification of behavior
! Boolean equations
! HDL, e.g., Verilog or VHDL
15
Example Adder
! Boolean equations
! Verilog HDL
module carry (co, a, b, c);
output co;
input a, b, c;
assign
co = (a&b) | (b&c) | (a&c);
endmodule
Structural Representation
! How components are
interconnected to perform the
required function
! Specification
! Typically a list of modules and
their interconnections
16
Example Adder
! Verilog HDL 1-bit component
17
module Add4 (S, c4, ci, a, b);
input [3:0] a, b;
input ci;
output [3:0] s;
output c4;
wire [2:0] co;
add a0(co[0],s[0],a[0],b[0],ci );
add a1(co[1],s[1],a[1],b[1],co[0]);
add a2(co[2],s[2],a[2],b[2],co[1]);
add a3(c4, s[3],a[3],b[3],co[2]);
endmodule
modules interconnections
Physical Representation
! How to build a part to guarantee
specific structure/behavior
! Physical specifications
! Materials qualities
! Resistance, capacitance, etc.
! Photo-masks required by various
fabrication steps
18
Design Methodology
! Also called Design Flow
19
Top-Down Design
! Progressively descend into
lower abstraction levels
Top-Down Design
! System specification
! Refine architecture,algorithms
! Decompose into blocks
! Design or select macros
! Integrate macros
! Deliver to next level integration
! Verify
20
System Design Flow
! SoC challenges force chip
designers to alter design flow
! Top-down methodology to
Top-down/Bottom-up combination
Waterfall Model
! Step-to-step handoff
21
Waterfall Methodology
Specification RTL Code Functional
Development Development Verification
ASIC Specification
! Typical design style for ASIC’s
(Application-Specific IC)
22
Waterfall Flow Limitations
! Handoff between teams rarely clean
! May have to tell the system designers
algorithm will not work
23
Spiral Methodology
System Design and Verification
PHYSICAL TIMING HW SW
Software:
Hardware:
• Platform
• Architecture
• Language
• Sub-system
• Application
• RTL
Others…
• Testing
• Verification
• Etc.
Physical:
• Technology Timing:
• Floorplan • System I/O
• Placement • Sub-system
• Clocking
24
Spiral Design Characteristics
! Concurrent HW & SW development
! Parallel verification and synthesis
! Floorplanning and place-and-route included in the
synthesis process
! Modules developed only if a predesigned hard or
soft macro is not available
! Planned iteration throughout
Simultaneous Development
! For aggressive projects,
simultaneous development of
! Top-level system specifications
! Algorithms for critical sub-blocks
! System-level verification suites
! Timing budget for final chip
integrations
! All aspects of hardware and
software designed concurrently
25
System Level Design
! What a particular system does?
! Functionality
! User interface
! Applications
! Operating system
! Subroutines
26
The Design Process
WRITE DEVELOP
IDENTIFY
preliminary REFINE
requirements
specs Algorithms
WRITE DEVELOP
IDENTIFY
preliminary REFINE
requirements
specs Algorithms
27
IDENTIFY
Requirements requirements
! Preliminary specifications
! Joint venture: engineering
and marketing
! Based on systems
requirements
IDENTIFY
Top-Down Perspective requirements
Product
Product Product requirements
Description Requirements from marketing
System
System Block Block specification to
Specification Requirements Specification meet product
requirements
28
IDENTIFY
Components of a Price requirements
List price
Average
Discount
33% for direct costs 33% for gross margin 50% for average discount
WRITE DEVELOP
IDENTIFY
preliminary REFINE
requirements
specs Algorithms
29
WRITE
IDENTIFY
Specifications preliminary
requirements
specs
WRITE
IDENTIFY
Formal Specification preliminary
requirements
specs
30
WRITE
Executable Specs preliminary
specs
WRITE
preliminary
Executable Specs specs
! Permit functionality
verification before
start of design
31
Specification WRITE
preliminary
Requirements specs
! HW & SW equally
important
! Must be
specified
! Describe behavior
and interface
to world
! Functionality
! Timing
! Performance
! Interface to HW
! SW structure,
kernel
32
Hardware Specification WRITE
preliminary
Requirements specs
! Functionality
! Timing
! Performance
! External interfaces
to other hardware
! Interface to SW
! Area, power
WRITE DEVELOP
IDENTIFY
preliminary REFINE
requirements
specs Algorithms
33
DEVELOP
High-level Model REFINE
Algorithms
! C and C++
behavioral model
! High-level model
! Refine and test high-level model
! Verify performance of algorithm
! Used later to verify models for
hardware/software
34
DEVELOP
Performance Analysis REFINE
Algorithms
DEVELOP
Throughput REFINE
Algorithms
35
DEVELOP
Latency REFINE
Algorithms
! Latency: Same as response time
! How long it takes a transformation (or system) to
produce an answer
! Users care about response time!
10 ns 8 ns 12 ns
From time request received to time an answer is produced is sum of
the latency of the blocks (10 ns + 8 ns + 12 ns = 30 ns)
DEVELOP
Software vs. Hardware REFINE
Algorithms
! Software
! Flexible – field changes!
! Increased performance needed
SW is abstraction (adds overhead)
! Efficient use of HW (processor)
! Hardware
! Less flexible
! Achieve best power/performance
tradeoff
36
The Design Process
WRITE DEVELOP
IDENTIFY
preliminary REFINE
requirements
specs Algorithms
DETERMINE
HW/SW Partitioning HW/SW
partition
37
DETERMINE
HW/SW
Define Interface partition
DETERMINE
HW/SW
Block Specification partition
! Software specification
! Hardware specification
! Functions
! Timing
! Area
! Power requirements
! Physical interfaces
38
DETERMINE
IP Selection HW/SW
partition
DETERMINE
IP Sources HW/SW
partition
Internal External
IP IP
Software Developed
Libraries IP
39
DETERMINE
Selecting IP HW/SW
partition
! Identify potential IP’s in design,
type, and where to get it
! Evaluate potential macros
! Documentation, cost, licensing, etc.
! Functionality (meet specs?)
! Effort to integrate?
TSMC Free Library Products
Process CL025 CL018 CL015 CL013
(Click on product below to view datasheet ) G E G LV LP G LV G LV LV-LK LV-LK-OD
SAGE Standard Cell Library X X X
SAGE-X Standard Cell Library X X X X X X X X
SAGE-HS Standard Cell Library Eval
Kit
High-Speed/Density Diffusion ROM X X X X X X X
High-Speed/Density Via ROM X X
High-Speed/Density Single Port Memory Generator w/ Flex Repair™ redundancy X
High-Speed/Density Single-Port Memory Generator X X X X X X X X X X
High-Speed/Density Dual-Port Memory Generator X X X X X X X X X X
High-Speed/Density Single-Port Register File Generator X X X X
High-Speed/Density Two-Port Register File Generator X X X X X X X
High-Density Single Port Memory Generator X
High Density Dual Port Memory Generator X
I/O Cell Library X X X X X
DETERMINE
IP Selection Check List HW/SW
partition
Vendor support
40
DETERMINE
Verification of IP’s HW/SW
partition
DETERMINE
IP Licensing Model HW/SW
partition
41
DETERMINE
Sources of Internal IP HW/SW
partition
Organizational IP
Department IP
Group
IP
Ease of Amount of
getting it IP
DETERMINE
External IP’s HW/SW
partition
! Solutions:
! Web searches (www.google.com)
! IP repositories, such as Design and
Reuse B2B web-site
http://www.us.design-reuse.com
42
DETERMINE
Integrating Blocks HW/SW
partition
Physical Verification
Timing Closure
Final checks before layout
Adding clocks and detailed
Check power distribution,
routing, fix remaining
Design rule checking,
timing problems
Layout vs. scheme
WRITE DEVELOP
IDENTIFY
preliminary REFINE
requirements
specs Algorithms
43
DEVELOP
Software IP for SoC’s software
DEVELOP
Unique Challenges software
44
DEVELOP
Writing SoC Software software
DEVELOP
Structuring SoC Software software
45
DEVELOP
Software Development software
DEVELOP
Phase 1 software
46
DEVELOP
Phase 2 software
DEVELOP
Phase 3 software
47
DEVELOP
Phase 4 software
DEVELOP
Getting SoC Software software
! Processor vendor
! A few selections:
! Mentor: www.mentor.com
! QNX: www.qnx.com
! WindRiver: www.windriver.com
! MontaVista: www.mvista.com
! GNU and Redhat: www.redhat.com
! Metrowerks: www.metrowerks.com
48
DEVELOP
Software Architecture software
Error Memory
GUI Diagnostics,
Host Handler Allocation
Debug,
Applications State
Messaging Scheduler Test
Machine
Application Program Interface
Display Timer/Alarm Event
Services Services Manager
Protocol Kernel
File Library Data
Stack Manager Routines I/O Services
Device Drivers
Hardware
WRITE DEVELOP
IDENTIFY
preliminary REFINE
requirements
specs Algorithms
49
VERIFY/TEST
Behavioral Model HW models
VERIFY/TEST
Codesign/Coverification HW models
50
Structural Design Domain
! Data handed off from System
domain
Structural Milestones
! Detailed top-level architecture
! Testing/verification
! Functionality
! Performance
51
Architecture Partitioning
! Recall system level partitioning
! More refined and detailed specs
! Virtual components
52
IP Design Methodology
! Specification: Functional
Modeling and Partitioning
! Sub-Component Specs and Design
! Testbench Design
! Speed, power, and area
considerations
! Integration and productization:
documentation of functionality,
testing/synthesis environment
53
Specifications for IP Design and
Reuse
! Define IP specificationss
! Process-Flow Graphs
! Block Diagrams
! Finite State Machine Descriptions
! Choice of test methodology
! Prepare software models
requirements for embedding
! Set of deliverables
! Verification Plan
54
High Level Synthesis
! Synthesis issues: coding for synthesis
! Supported Data-Types
55
Sub-Component Design
! Write RTL vs. high level synthesis
! Sub-Component Interfacing
! Verification Issues:
Top-Level VHDL behavioral model vs.
Synthesized Design(s)
56
Hardware Wrappers
! Interfaces consistency to ensure
inter-block communication
! Between interfaces (to a bus, block)
! Between different protocols
! Between different data rates
! Between exception models
Wrappers
! Need to judge likely wrapper complexity
when selecting a piece of IP
! Don’t under-estimate importance, difficulty,
and time of developing a wrapper
! Include development time estimate and
chip cost of wrappers
! Wrappers must be tested and verified too!
57
58
Example Wrapper Between Blocks
Block with
narrow data
interface
59
Physical Design Domain
! Final chip integration
! Various verifications
! Example 1: Power and clock verification
delivered everywhere?
! Example 2: Interconnections correspond
exactly to transistor-level schematic?
60
Example Verification: Chip
Power
! Ensure good power distribution
! Voltage (IR) drop
! Ground bounce
! Electro-Magnetic (EM) problems
! Routing
! Power pins
61
Key Points
! Waterfall to spiral design methodology
! Hardware/Software interaction
! Common architectural platform
! Importance of correct
integration of IP blocks
62