Professional Documents
Culture Documents
Konstantinos Masselos
Department of Electrical & Electronic Engineering
Imperial College London
URL: http://cas.ee.ic.ac.uk/~kostas
E-mail: k.masselos@ic.ac.uk
Design Methodologies and Tools Introduction to Digital Integrated Circuit Design Lecture 10 - 1
Based on slides/material by…
J. Rabaey http://bwrc.eecs.berkeley.edu/Classes/IcBook/instructors.html
“Digital Integrated Circuits: A Design Perspective”, Prentice Hall
W. Wolf http://www.princeton.edu/~wolf/modern-vlsi/Overheads.html
“Modern VLSI Design: System-on-Chip Design”, Prentice Hall
Design Methodologies and Tools Introduction to Digital Integrated Circuit Design Lecture 10 - 2
Recommended Reading
Design Methodologies and Tools Introduction to Digital Integrated Circuit Design Lecture 10 - 3
Outline
Introduction
Design flows and CAD tools
Design analysis and verification
Design creation
Register Transfer design
Hardware Description Languages
Floorplanning
Layout design
Logic synthesis and state machine optimization
High level synthesis and hardware/software codesign
Design Methodologies and Tools Introduction to Digital Integrated Circuit Design Lecture 10 - 4
Digital IC Implementation Approaches
Custom Semi-custom
Cell-Based Array-Based
Design Methodologies and Tools Introduction to Digital Integrated Circuit Design Lecture 10 - 5
Design Methodology
Source: sematech97
Design Methodologies and Tools Introduction to Digital Integrated Circuit Design Lecture 10 - 7
Outline
Introduction
Design flows and CAD tools
Design analysis and verification
Design creation
Register Transfer design
Hardware Description Languages
Floorplanning
Layout design
Logic synthesis and state machine optimization
High level synthesis and hardware/software codesign
Design Methodologies and Tools Introduction to Digital Integrated Circuit Design Lecture 10 - 8
Design Methodologies
Design Methodologies and Tools Introduction to Digital Integrated Circuit Design Lecture 10 - 9
Generic Design Flow
architectural
design
detailed register-transfer logic
specs design design
floorplan
functional/
performance circuit
verification layout
design
tapeout
testability
Design Methodologies and Tools Introduction to Digital Integrated Circuit Design Lecture 10 - 10
IBM ASIC design flow
Design Methodologies and Tools Introduction to Digital Integrated Circuit Design Lecture 10 - 11
IBM ASIC design flow
Design hand off: when the design is ready for physical design, a netlist,
timing assertion data, pad placement, and floorplanning information are
given to the IBM design center
At this point physical design is handled by the manufacturing center:
Front end processing. Clock trees and test logic are generated at this
step and static timing analysis is used to check performance
Prelayout sign off: ensures that no errors have been introduced by front
end processing
Layout is performed by automatic tools guided by professional
designers. Layout can be performed either on a flat or hierarchical
design
Post layout sign off: verifying the logic and timing at this step ensures
that no errors were introduced during layout
Tape out to manufacturing. ATPG is used to generate test vectors and
the mask data is generated and sent to the manufacturing line
Design Methodologies and Tools Introduction to Digital Integrated Circuit Design Lecture 10 - 12
CAD Systems
Design Methodologies and Tools Introduction to Digital Integrated Circuit Design Lecture 10 - 13
CAD Tool Interactions
xlate a
tool 1 tool 2 tool 1 tool 2
xlate b
xlate c
xlate d
database
xlate e
tool 3 tool 4 tool 3 tool 4
Design Methodologies and Tools Introduction to Digital Integrated Circuit Design Lecture 10 - 14
Outline
Introduction
Design flows and CAD tools
Design analysis and verification
Design creation
Register Transfer design
Hardware Description Languages
Floorplanning
Layout design
Logic synthesis and state machine optimization
High level synthesis and hardware/software codesign
Design Methodologies and Tools Introduction to Digital Integrated Circuit Design Lecture 10 - 15
Design Analysis and Verification
Design Methodologies and Tools Introduction to Digital Integrated Circuit Design Lecture 10 - 16
Digital Data treated as Analog Signal
VD D
Sp
Vin Vou t
5.0
Bp
3.0
Vo ut (V)
Gn ,p
In Dn,p Out tpHL
1.0
Bn
Sn
–1.0
0 0.5 1 1.5 2
t (nsec)
Circuit Simulation
Both Time and Data treated as Analog Quantities
Also complicated by presence of non-linear elements
(relaxed in timing simulation)
Design Methodologies and Tools Introduction to Digital Integrated Circuit Design Lecture 10 - 17
Representing Data as Discrete Entity
V 0 1 0 VDD
VM Rp
t1 t2 t
CL
Design Methodologies and Tools Introduction to Digital Integrated Circuit Design Lecture 10 - 18
Circuit versus Switch-Level Simulation
5.0
CIN OUT[2]
3.0
Circuit
OUT[3]
1.0
–1.0
0 5 10 15 20
time (nsec)
Switch
Design Methodologies and Tools Introduction to Digital Integrated Circuit Design Lecture 10 - 19
Delay Models
Design Methodologies and Tools Introduction to Digital Integrated Circuit Design Lecture 10 - 20
Structural Description of Accumulator
entity accumulator is
port ( -- definition of input and output terminals
DI: in bit_vector(15 downto 0) -- a vector of 16 bit wide
DO: inout bit_vector(15 downto 0);
CLK: in bit
);
end accumulator;
Design Methodologies and Tools Introduction to Digital Integrated Circuit Design Lecture 10 - 21
Behavioral Description of Accumulator
entity accumulator is
port (
DI : in integer;
DO : inout integer := 0;
CLK : in bit
); Design described as set of input-output
end accumulator;
relations, regardless of chosen
architecture behavior of accumulator is implementation
begin
process(CLK)
variable X : integer := 0; -- intermediate variable
begin
if CLK = '1' then Data described at higher abstraction
X < = DO + D1;
DO <= X;
level (“integer”)
end if;
end process;
end behavior;
Design Methodologies and Tools Introduction to Digital Integrated Circuit Design Lecture 10 - 22
Behavioral simulation of accumulator
Discrete time
Integer data
Design Methodologies and Tools Introduction to Digital Integrated Circuit Design Lecture 10 - 23
Timing Verification
Critical path
No simulation needed!
(Synopsys-Epic Pathmill)
Design Methodologies and Tools Introduction to Digital Integrated Circuit Design Lecture 10 - 24
Issues in Timing Verification
In
4-bit adder
Out
MUX
bypass
False Timing Paths
Design Methodologies and Tools Introduction to Digital Integrated Circuit Design Lecture 10 - 25
Timing Analysis
Design Methodologies and Tools Introduction to Digital Integrated Circuit Design Lecture 10 - 26
Outline
Introduction
Design flows and CAD tools
Design analysis and verification
Design creation
Register Transfer design
Hardware Description Languages
Floorplanning
Layout design
Logic synthesis and state machine optimization
High level synthesis and hardware/software codesign
Design Methodologies and Tools Introduction to Digital Integrated Circuit Design Lecture 10 - 27
Automatic Cell Generation
Random-logic layout
generated by CLEO
cell compiler (Digital)
Design Methodologies and Tools Introduction to Digital Integrated Circuit Design Lecture 10 - 28
Macrocell Design Methodology
Macrocell
Design Methodologies and Tools Introduction to Digital Integrated Circuit Design Lecture 10 - 29
Module Generators — Compiled Datapath
bus0
buffer
adder
mux
reg0
reg1
bus2
bus1
Design Methodologies and Tools Introduction to Digital Integrated Circuit Design Lecture 10 - 30
Taxonomy of Synthesis Tasks
state
Behavioral View
0 a
(i: 1..16) :: b
sum = sum*z–1 +
2 1
coeff[i]*In*z–1 c x
3 tp
a
mem b 4
fsm x
c a 2
* 1 c
b 2
D
Design Methodologies and Tools Introduction to Digital Integrated Circuit Design Lecture 10 - 31
Outline
Introduction
Design flows and CAD tools
Design analysis and verification
Design creation
Register Transfer design
Hardware Description Languages
Floorplanning
Layout design
Logic synthesis and state machine optimization
High level synthesis and hardware/software codesign
Design Methodologies and Tools Introduction to Digital Integrated Circuit Design Lecture 10 - 32
Register-Transfer Design
Q D combinational
logic
combinational D Q combinational D Q
logic logic
Design Methodologies and Tools Introduction to Digital Integrated Circuit Design Lecture 10 - 33
Register-Transfer Simulation
Design Methodologies and Tools Introduction to Digital Integrated Circuit Design Lecture 10 - 34
Data Path-Controller Systems
Design Methodologies and Tools Introduction to Digital Integrated Circuit Design Lecture 10 - 35
Data Operators
Design Methodologies and Tools Introduction to Digital Integrated Circuit Design Lecture 10 - 36
Conditionals and Multiplexers
if x = ‘0’ then
reg1 <= a;
else
reg1 <= b;
end if;
code
register-transfer
Design Methodologies and Tools Introduction to Digital Integrated Circuit Design Lecture 10 - 37
Alternate Data Path - Controller Systems
Design Methodologies and Tools Introduction to Digital Integrated Circuit Design Lecture 10 - 38
Outline
Introduction
Design flows and CAD tools
Design analysis and verification
Design creation
Register Transfer design
Hardware Description Languages
Floorplanning
Layout design
Logic synthesis and state machine optimization
High level synthesis and hardware/software codesign
Design Methodologies and Tools Introduction to Digital Integrated Circuit Design Lecture 10 - 39
Hardware Description Languages
Design Methodologies and Tools Introduction to Digital Integrated Circuit Design Lecture 10 - 40
Simulation vs. Programming
Design Methodologies and Tools Introduction to Digital Integrated Circuit Design Lecture 10 - 41
Types of Simulation
Design Methodologies and Tools Introduction to Digital Integrated Circuit Design Lecture 10 - 42
Timewheel
Design Methodologies and Tools Introduction to Digital Integrated Circuit Design Lecture 10 - 43
Modeling
Design Methodologies and Tools Introduction to Digital Integrated Circuit Design Lecture 10 - 44
Testbenches
Design Methodologies and Tools Introduction to Digital Integrated Circuit Design Lecture 10 - 45
Synthesis Subsets
Design Methodologies and Tools Introduction to Digital Integrated Circuit Design Lecture 10 - 46
Register-Transfer Synthesis
Design Methodologies and Tools Introduction to Digital Integrated Circuit Design Lecture 10 - 47
Outline
Introduction
Design flows and CAD tools
Design analysis and verification
Design creation
Register Transfer design
Hardware Description Languages
Floorplanning
Layout design
Logic synthesis and state machine optimization
High level synthesis and hardware/software codesign
Design Methodologies and Tools Introduction to Digital Integrated Circuit Design Lecture 10 - 48
Floorplanning Strategies
Design Methodologies and Tools Introduction to Digital Integrated Circuit Design Lecture 10 - 49
Purposes of Floorplanning
Early in design:
• Prepare a floorplan to budget area, wire area/delay. Tradeoffs between
blocks can be negotiated.
Late in design:
• Make sure the pieces fit together as planned.
• Implement the global layout.
Design Methodologies and Tools Introduction to Digital Integrated Circuit Design Lecture 10 - 50
Block Placement
Blocks have:
• area
• aspect ratio
Blocks may be placed at different rotations and reflections.
Uniform size blocks are easier to interchange.
Design Methodologies and Tools Introduction to Digital Integrated Circuit Design Lecture 10 - 51
Blocks and Wiring
Design Methodologies and Tools Introduction to Digital Integrated Circuit Design Lecture 10 - 52
Channels and Switchboxes
channel
Design Methodologies and Tools Introduction to Digital Integrated Circuit Design Lecture 10 - 53
Channel Definition
ch 1 channel 1 ch 2
ch 3
B ch 2 C
Design Methodologies and Tools Introduction to Digital Integrated Circuit Design Lecture 10 - 54
Global Routing
Design Methodologies and Tools Introduction to Digital Integrated Circuit Design Lecture 10 - 55
Channel Utilization
Want to keep all channels about equally full to minimize wasted area.
Important to route time-critical signals first.
Shortest path may not be best for global wiring.
In general, may need to rip-up wires and reroute to improve the global
routing.
Design Methodologies and Tools Introduction to Digital Integrated Circuit Design Lecture 10 - 56
Switchbox Routing
A
B
A B B blocks A
Design Methodologies and Tools Introduction to Digital Integrated Circuit Design Lecture 10 - 57
Outline
Introduction
Design flows and CAD tools
Design analysis and verification
Design creation
Register Transfer design
Hardware Description Languages
Floorplanning
Layout design
Logic synthesis and state machine optimization
High level synthesis and hardware/software codesign
Design Methodologies and Tools Introduction to Digital Integrated Circuit Design Lecture 10 - 58
Transistor Sizing
Design Methodologies and Tools Introduction to Digital Integrated Circuit Design Lecture 10 - 59
Layout Synthesis
Design Methodologies and Tools Introduction to Digital Integrated Circuit Design Lecture 10 - 60
Placement Metrics
Design Methodologies and Tools Introduction to Digital Integrated Circuit Design Lecture 10 - 61
Wire Length as a Quality Metric
Design Methodologies and Tools Introduction to Digital Integrated Circuit Design Lecture 10 - 62
Placement Techniques
Placement by Partitioning
• Works well for components of fairly uniform size.
• Partition netlist to minimize total wire length using min-cut criterion.
• Partitioning may be interpreted as 1-D or 2-D layout.
Design Methodologies and Tools Introduction to Digital Integrated Circuit Design Lecture 10 - 63
Min-Cut Bisecting Partitioning
1 net B
A
3 nets
C D
partition 1 partition 2
Design Methodologies and Tools Introduction to Digital Integrated Circuit Design Lecture 10 - 64
More Partitioning Algorithms
Kernighan-Lin Algorithm
• Compute min cut criterion:
Ê count total net cut change
• Algorithm exchanges sets of nodes to perform hill-climbing—finding
improvements where no single swap will improve the cut
• Recursively subdivide to determine placement detail
Simulated Annealing
• Powerful but CPU-intensive optimization technique.
• Analogy to annealing of metals:
Ê temperature determines probability of a component jumping position;
Ê probabilistically accept moves.
Ê start at high temperature, cool to lower temperature to try to reach good
placement.
Design Methodologies and Tools Introduction to Digital Integrated Circuit Design Lecture 10 - 65
Routing
Design Methodologies and Tools Introduction to Digital Integrated Circuit Design Lecture 10 - 66
Maze Routing
Will find shortest path for a single wire, if such a path exists.
Two phases:
• Label nodes with distance, radiating from source.
• Use distances to trace from sink to source, choosing a path that always
decreases distance to source.
Design Methodologies and Tools Introduction to Digital Integrated Circuit Design Lecture 10 - 67
Detailed Routing
Design Methodologies and Tools Introduction to Digital Integrated Circuit Design Lecture 10 - 68
More Routing Algorithms
Design Methodologies and Tools Introduction to Digital Integrated Circuit Design Lecture 10 - 69
Layout Analysis
M2
M1
Design Methodologies and Tools Introduction to Digital Integrated Circuit Design Lecture 10 - 70
Scan Line Algorithm
Design Methodologies and Tools Introduction to Digital Integrated Circuit Design Lecture 10 - 71
Back Annotation
Design Methodologies and Tools Introduction to Digital Integrated Circuit Design Lecture 10 - 72
Outline
Introduction
Design flows and CAD tools
Design analysis and verification
Design creation
Register Transfer design
Hardware Description Languages
Floorplanning
Layout design
Logic synthesis and state machine optimization
High level synthesis and hardware/software codesign
Design Methodologies and Tools Introduction to Digital Integrated Circuit Design Lecture 10 - 73
Logic Synthesis
Design Methodologies and Tools Introduction to Digital Integrated Circuit Design Lecture 10 - 74
Boolean Network
primary outputs
out1 = k2 + x2’ out2 = k3 + x1
k2 = x1’ x2 x4 + k1
k3 = k1 x4’
k1 = x2 + x3
primary inputs
x1 x2 x3 x4
Design Methodologies and Tools Introduction to Digital Integrated Circuit Design Lecture 10 - 75
Terms
Design Methodologies and Tools Introduction to Digital Integrated Circuit Design Lecture 10 - 76
Technology-Independent Logic Optimization
Design Methodologies and Tools Introduction to Digital Integrated Circuit Design Lecture 10 - 77
Simplification
Partially-Specified Functions
• Don’t-cares can be implemented in either the on-set or off-set.
• Don’t-cares provide the greatest opportunities for minimization in many
cases.
Design Methodologies and Tools Introduction to Digital Integrated Circuit Design Lecture 10 - 78
Espresso
Design Methodologies and Tools Introduction to Digital Integrated Circuit Design Lecture 10 - 79
Don’t-Cares in Boolean Networks
Design Methodologies and Tools Introduction to Digital Integrated Circuit Design Lecture 10 - 80
Partial Collapsing
before after
Design Methodologies and Tools Introduction to Digital Integrated Circuit Design Lecture 10 - 81
Factorization
Based on division:
• formulate candidate divisor
• test how it divides into the function
• if g = f/c, we can use c as an intermediate function for f
Algebraic division: don’t take into account Boolean simplification. Less
expensive then Boolean division.
Design Methodologies and Tools Introduction to Digital Integrated Circuit Design Lecture 10 - 82
Factorization for Delay
Remove factors from critical path, add them off critical path:
f1 fa
f1 fb
late late
Design Methodologies and Tools Introduction to Digital Integrated Circuit Design Lecture 10 - 83
Library Binding
Design Methodologies and Tools Introduction to Digital Integrated Circuit Design Lecture 10 - 84
Breaking into Trees
Design Methodologies and Tools Introduction to Digital Integrated Circuit Design Lecture 10 - 85
Technology Mapping Example
Design Methodologies and Tools Introduction to Digital Integrated Circuit Design Lecture 10 - 86
Sequential Machine Optimizations
Design Methodologies and Tools Introduction to Digital Integrated Circuit Design Lecture 10 - 87
Outline
Introduction
Design flows and CAD tools
Design analysis and verification
Design creation
Register Transfer design
Hardware Description Languages
Floorplanning
Layout design
Logic synthesis and state machine optimization
High level synthesis and hardware/software codesign
Design Methodologies and Tools Introduction to Digital Integrated Circuit Design Lecture 10 - 88
High Level Synthesis - Scheduling and Binding
Design Methodologies and Tools Introduction to Digital Integrated Circuit Design Lecture 10 - 89
Force-Directed Scheduling
Design Methodologies and Tools Introduction to Digital Integrated Circuit Design Lecture 10 - 90
Scheduling Extensions
Design Methodologies and Tools Introduction to Digital Integrated Circuit Design Lecture 10 - 91
Binding
Design Methodologies and Tools Introduction to Digital Integrated Circuit Design Lecture 10 - 92
Clique Partitioning
A B
C D
E F
Design Methodologies and Tools Introduction to Digital Integrated Circuit Design Lecture 10 - 93
Hardware/Software Co-Design
Design Methodologies and Tools Introduction to Digital Integrated Circuit Design Lecture 10 - 94
Co-Synthesis Styles
Hardware/software partitioning:
• Architectural template consists of 1 CPU + n ASICs.
• Put operations on CPU or ASIC.
Distributed system synthesis:
• No fixed architectural template.
• Allocate function units and communication, schedule operations.
Design Methodologies and Tools Introduction to Digital Integrated Circuit Design Lecture 10 - 95