Lecture 6 Import Design and Floorplan
Lecture 6 Import Design and Floorplan
Lecture 5:
Moving to the Physical Domain
Semester A, 2016-17
Lecturer: Dr. Adam Teman
12/12/2016
Disclaimer: This course was prepared, in its entirety, by Adam Teman. Many materials were copied from sources freely available on the internet. When possible, these sources have been cited;
however, some references may have been cited incorrectly or overlooked. If you feel that a picture, graph, or code example has been copied from you and either needs to be cited or removed,
please feel free to email adam.teman@biu.ac.il and I will address this as soon as possible.
1
3 5 6
Moving to 2 4
MSV Hierarchical Power
Physical Design MMMC Floorplanning
Design Design Planning
2
Definition and Planning
So, what’s next?
Design and Verification
• We’ve basically finished the Front-End of the design process
Logic Synthesis
and we will now start the Back-End:
• To start, we will move between tools with a logical approach Physical Design
to ones with a physical approach to design implementation.
• Then, we will make a physical foundation for our design Signoff and Tapeout
by drawing up a floorplan.
Silicon Validation
• This will include making decisions where “big” or “important” pieces
will sit, such as IPs, I/Os, Power grids, special routes, etc.
• After that, we can place our gates taking into account congestion and timing.
• With our flip-flops in place, we can go about designing a clock-tree.
• And finally, we can route all our nets, according to DRCs, timing, noise, etc.
• Before tapeout, we will clean things up, verify, etc.
Definition and Planning
Design Import
Floorplan
Initial floorplan Power Planning Placement
and Pad ring
Placement
CTS
Route
Finish Design
4
Prepare Tapeout Detailed Route Clock Tree Synthesis
Moving from Logical to Physical Design Import
Finish Design
5
SDC constraints
Design Import
Placement
CTS
• During synthesis, our world view was a bit idealistic. OFF
Route
• We didn’t care about power supplies. 0.9V
Finish Design
• We didn’t care about physical connections/entities. 0.7V 0.9V
6
Design Import
Placement
CTS
• During synthesis, we (usually) target timing for a worst-case scenario. Route
Placement
CTS
Mode VDD1 FREQ1 VDD2 FREQ2
• But real SoCs are much more complex: Route
F1 1.2 V 2 GHz 0.8 V 500 MHz
• Many operating modes. Finish Design
F2 0.8 V 400 MHz 0.8 V 400 MHz
• Many voltage domains.
F3 Off Off 0.5 V 50 MHz
• With real clock, need to check hold. TEST 1.2 V 10 MHz 1.2 V 10 MHz
• We easily get to hundreds of corners
• Setup and hold for every mode.
• Hold can be affected by SI
check hold for all corners
• Temperature inversion – what is the worst case?
• RC Extraction – what is the worst case?
• Leakage – what is the worst case?
• Aaaaarrrrrgggghhhh!
8
Design Import
Placement
Route
Finish Design
9
1
3 5 6
Moving to 2 4
MSV Hierarchical Power
Physical Design MMMC Floorplanning
Design Design Planning
Multi-Mode Multi-Corner
Or how to deal with the corner crisis!
10
Design Import
Placement
CTS
• MMMC to the rescue! Route
Placement
CTS
• Defining Analysis Views is done in hierarchical fashion. Route
• A delay corner tells the tool how the delays are supposed to be calculated.
Therefore it contains timing libraries and extraction rules.
• A constraint mode is basically the relevant SDC commands/conditions for the
particular operating mode.
12
Design Import
Placement
CTS
• So now, let’s define the lower levels of the MMMC hierarchy. Route
• A constraint mode is simply a list of relevant SDC files. When you move Finish Design
between analysis views, the STA tool will automatically apply the relevant
constraints to the design.
create_constraint_mode –name turbo_mode –sdc_files {turbo.sdc}
create_constraint_mode –name low_power_mode –sdc_files {low_power.sdc}
Placement
CTS
• Confused yet? Well, we still have more to go. Route
• A library set is a collection of the .lib characterizations that should be Finish Design
used for timing the relevant gates. This includes the standard cells and
other macros, such as RAMs and I/Os. There also may be special “SI”
characterizations for noise.
create_library_set -name ss_1p2V_125C \
-timing [list ${sc_libs}/ss_1p2V_125.lib ${mem_libs}/ss_1p2V_125.lib \
${io_libs}/ss_1p8V_125.lib] –si ${sc_libs}/ss_1p2V_125.si
• And finally, an RC corner is a collection of the rules for RC extraction.
There may be a “capacitance table” for quick extraction and a “QRC
rulefile” for accurate extraction. The temperature is also defined in the
RC corner, but it is taken into account in the .lib file, as well.
create_rc_corner -name RCmax -cap_table ${tech}/RCmax.CapTbl} -T {125} \
-qx_tech_file ${tech}/RCmax.qrctech
14
Design Import
Placement
CTS
Route
Finish Design
Constraint
Analysis View 1 Mode 1
Constraint
Mode 1
Analysis View 2 Constraint
Selected Mode 3
Setup Views
Analysis View 3
Library Set 1
Selected Hold Analysis View 4 Library Set 2
Views Library Set 3
Delay
Analysis View 5 Corner 1
Delay
Analysis View 6 Corner 1 RC Corner 1
Delay
Corner 3 RC Corner 2
RC Corner 3
15
Design Import
Placement
CTS
• What if I have multiple voltage domains? Route
• Now, for example, in a certain operating mode, one inverter is operated Finish Design
16
1
3 5 6
Moving to 2 4
MSV Hierarchical Power
Physical Design MMMC Floorplanning
Design Design Planning
A bit about
Multiple Voltage Domains
Often referred to as “Low Power Design” Methodologies
17
Design Import
Placement
CTS
• Define power domains Route
Placement
CTS
Route
VDD1 VDD2 logic model Finish Design
IN OUT
VSS
0.7 – 1.08
Dual H-L and L-H level shifter
LS
LS
VDD1
LS
LS
LS
0.9 0.7 VSS
IN OUT a possible
LS
FP view
VDD1
VDD2
VSS
19
Design Import
Placement
Global VDD
CTS
sleep_control (on/off)
Route
Finish Design
VDD
VDD
VDDV
VDD
Global VDD
VVDD1 VVDD2
VVDD1 VVDD2
VDD VDD
VVDD1 VVDD2
20
Design Import
Placement
CTS
• Well, we probably will leave that to an advanced course or your MSc Route
Floorplanning
Floorplanning Goals and Objectives
Design Import
• Floorplanning is a mapping between
the logical description (the netlist) Floorplan
and the physical description (the floorplan).
Placement
• Goals of floorplanning:
• Arrange the blocks on a chip, CTS
• Decide the location of the I/O pads,
• Decide the location and number of the power pads, Route
• Decide the type of power distribution
• Decide the location and type of clock distribution. Finish Design
• Clocking Scheme
Periphery
• Flat or Hierarchical? (I/O) area
24
Design Import
Placement
• Inputs
CTS
• Outputs Route
• Design netlist (required) • Die/block area Finish Design
• Area requirements (required) • I/Os placed
• Power requirements (required) • Macros placed
• Timing constraints (required) • Power grid designed
• Physical partitioning information • Power pre-routing
(required)
• Standard cell
• Die size vs. performance vs. placement areas
schedule trade-off (required)
• I/O placement (optional) • Design ready for
• Macro placement information standard cell placement
(optional)
25
Design Import
IO Ring Floorplan
Placement
CTS
• The pinout is often decided by front-end designers, with input from Route
Placement
CTS
Route
Finish Design
27
Design Import
Utilization Floorplan
Placement
CTS
• Utilization refers to the percentage of core area that is Route
taken up by standard cells. Finish Design
• A typical starting utilization might be 70%
• This can very a lot depending on the design
Low standard-cell
• High utilization can make it difficult to close a design utilization
• Routing congestion,
• Negative impact during optimization legalization stages.
• Local congestion
• Can occur with pin dense cells like multiplexers, so
utilization is not completely sufficient for determining
die size.
• Run a quick trial route to check for routing congestion
• Refine the synthesis or increase routing resources High standard-cell
utilization
28
Uniquifying the Netlist
• When moving to the physical domain, the netlist must be unique
• A unique netlist, means that each sub-module is only referenced once.
• In the example, the non-unique netlist cannot optimize instance m1/u1 without
changing instance m2/u1
module amod (); bmod module amod1 ();
bmod BUFFD1 u1 ();
BUFFD1 u1 ();
endmodule endmodule
m1 m2 m1 m2
module bmod (); module amod2 ();
amod m1 ; u1 u1 u1 u1 BUFFD1 u1 ();
amod m2 ; endmodule
endmodule
Non-unique Unique module bmod ();
amod1 m1 ;
• A synthesized netlist must be uniquified before placement amod2 m2 ;
endmodule
can begin. This can be done either by the synthesizer or
during design import.
29
Design Import
Placement
Route
timing and power. Usually push them to the sides of the floorplan. Finish Design
• Placement algorithms generally perform better with a single large
rectangular placement area.
• For wire-bond place power hungry macros away from the chip center.
• After placing hard macros, mark them as FIXED.
Possible
routing
congestion
hotspots
30
Design Import
Placement
CTS
• Sometimes, we want to “help” the tool put certain Route
31
Design Import
Placement
CTS
• Placement blockages halos are areas that Route
the tools should not place any cells. Finish Design
Keepout margin
• These, too, have several types:
• Hard Blockage – no cells can be placed
inside.
• Soft Blockage – cannot be used during
placement, but may be used during
optimization. RAM5
• Partial Blockage – an area with lower
utilization.
• Halo (padding) – an area outside a
macro that should be kept clear of
standard cells. Pins are on left
and right
32
Design Import
Placement
CTS
Route
Finish Design
Hard blockage
always created on
all four sides
33
Design Import
Placement
CTS
• Similar to placement blockage, Route
Routing
blockage
(20,20)
34
Design Import
Placement
Use blockage to
Single large improve pin CTS
core area RAMS out of the
way in the corner accessibility Route
Finish Design
Large RAM 1 RAM 2 RAM 3
routing
channels
RAM RAM 4 RAM 5 RAM 6
Avoid
Standard cells area constrictive
channels
RAM
Pins away
from corners
35
1
3 5 6
Moving to 2 4
MSV Hierarchical Power
Physical Design MMMC Floorplanning
Design Design Planning
A bit about
Hierarchical Design
Or how do you deal with a really big chip
36
Design Import
Placement
37
Design Import
Placement
CTS
• Chip level constraints must be mapped correctly to block level Route
Block Boundary
• Interface Logic Models (ILMs) help simplify and speed-up design
A X A X
B Y B Y
Clk
Placement
CTS
• Pin constraints include parameters, such as: Route
Partition
39
Design Import
Placement
Route
Finish Design
Net1
I/O Pin IN
Net2
OUT IN
Feedthrough
Candidates
40
1
3 5 6
Moving to 2 4
MSV Hierarchical Power
Physical Design MMMC Floorplanning
Design Design Planning
Power Planning
Design Import
Placement
CTS
Dynamic Power IR-Drop /
Route
Voltage Drop
Average Power Finish Design
problem
42
Design Import
IR Drop Floorplan
Placement
CTS
• The drop in supply voltage over the length of the supply line Route
VDD
VDD Pad Ideal voltage level
Minimum
Tolerance
Level
Actual voltage level
43
Design Import
Placement
CTS
• Electromigration refers to the gradual displacement of the Route
44
Design Import
Placement
BUT
• Maintain stable voltage with low noise
• Provide average and peak power demands
• Provide current return paths for signals More (Wider) Power Lines:
• Avoid electromigration & self-heating wearout • Fewer (signal) routing
• Consume little chip area and wire resources
(i.e., higher congestion)
• Easy to lay out
45
Design Import
Placement
CTS
• Assume we have a 1mm long power rail in M1. Route
• So what do we do?
• Make the power rails as wide and as thick as possible!
46
Design Import
Placement
CTS
• We generally map the IR drop of a chip using a color map to Route
Source:
Cadence
Placement
CTS
• Each standard cell or macro has power and ground Route
Placement
CTS
• Power Grid Route
• Interconnected vertical and horizontal power bars. Finish Design
• Common on most high-performance designs.
• Often well over half of total metal on upper thicker layers used for
VDD/GND.
• Dedicated VDD/GND planes.
• Very expensive.
• Only used on Alpha 21264.
• Simplified circuit analysis.
• Dropped on subsequent Alphas.
• Some thoughts/trends:
• P/G I/O pad co-optimization with classic physical design
• Decoupling capacitors to reduce P/G related voltage drop
• Multiple voltage/frequency islands make the P/G problem
and clock distributions more challenging
49
Design Import
Placement
CTS
• Tradeoff IR drop and EM versus Route
routing resources Power lines
Finish Design
• Require power budget
• initial power estimation
• average current, max current density
Mx Mx
• Need to determine
• General grid structure (gating or multi-voltage?) Mx-1 Mx-1
• Number and location of power pads (per voltage)
• Metal layers to be used
• Width and spacing of straps Mx-2 Mx-2
• Via stacks versus available routing tracks
• Rings / no rings
• Hierarchical block shielding
• Run initial power network analysis to confirm design
50 Signal routing area
Design Import
Placement
CTS
Route
Finish Design
51
Design Import
Placement
CTS
• In the exercise, we will go over this, hand on, but in general, the Route
• Initialize Design:
• Define Verilog netlist, MMMC (timing, sdc, extraction, etc.), LEF, IO placement
• Specify floorplan
• Define floorplan size, aspect ratio, target utilization
• Place hard macros
• Absolute or relative placement
• Define halos and blockages around macros
• Define regions and blockages
• If necessary, define placement regions and placement blockage
• If necessary, define routing blockage
52
Design Import
Placement
CTS
• Define Global nets Route
• Tell the tool what the names of the global nets (VDD, GND) are and what their
Finish Design
names are in the IPs.
• Create Power Rings
• Often rings for VDD, GND are placed around the chip periphery, as well as around
each individual hard IP.
• Build Power Grid
• Connect standard cell ‘follow pins’
• Build power stripes on metal layers
• Make sure power connects to hard IPs robustly
• Assign Pins
• If working on a block (not fullchip), assign pins to the periphery of the floorplan.
53
Main References
• IDESA
• Rabaey
• EPFL Tutorial
• Experience!
54