Академический Документы
Профессиональный Документы
Культура Документы
Table of Contents
Module 1:
Lab 1-1
Objective:
In this lab, EDI is used to implement and practice Multi-Mode-Multi-Corner (MMMC) on the simple
DMA design through the Cadence Low Power Design Foundation Flow by using CPF. This tutorial
helps you to take advantage of CPF to implement designs with multiple supply voltage (MSV) and
power shut-off (PSO) architecture, and show you how to use the LP foundation flow. This workshop
requires the EDI license with LP options to run.
The DMA gate-level netlist was generated by Cadence RTL Compiler (RC) using the same CPF.
There are separate LABs for the frontend parts such as RC and CLP.
Multiple Supply Voltages (MSV) and Power Shut Off (PSO)
Cadence Encounter Low Power Design Flow supports advanced power management techniques such
as multiple power domains with power shut-off (PSO) scheme, which can only be implemented at the
physical level (post synthesis). By adopting CPF, the designers intent for advanced power
management techniques can be captured as design and technology-related power constraints in a single
file format for use throughout the RTL and GDSII design flow including verification, validation,
synthesis, test, physical implementation, and signoff analysis.
In this workshop, CPF captures the following implementation techniques and will be loaded and
committed before power planning in this low power design flow. The explicit power domain creation
and shifter/isolation insertion will not be needed any more:
Level shifter, isolation cell, state retention cell, power switch cell definition.
Level shifter, isolation cell, power switch cell insertion rule definition.
Power/ground net creation.
Power domain and power/ground net connection creation.
Hard macro/IP low power intent modeling
Library set creation.
Different analysis view creation based on combination of different operating corner or
power mode creation and bind with different library set.
Based on different analysis views, you can practice MMMC clock tree insertion and design
optimization on different stages such as preCTS, postCTS, and postRoute stages, respectively.
Refer to the foundation flow document for detailed info. Here is a brief description about the low
power foundation flow and how to run the flow in this workshop.
The low power foundation flow consists of three flow setup/environment scripts and a number of the
implementation scripts.
Flow Setup/Environment Scripts
setup.tcl: It is unique for each design. It specifies variables for the design (netlist), libraries,
constraints including CPF, and some timing views.
edi_config.tcl: it specifies variables for the EDI flow options; and plug-in scripts.
lp_config.tcl: It specifies variables for low power related options in the EDI flow.
Implementation Scripts
Lab 1-2
2. It will run run_init.tcl. The script loads the design; do the floorplan, power switch insertion,
power planning and routing; and then saves the init.enc DB in the ./DBS under your working
directory.
The followings are some detailed descriptions about the major stages in the run_init.tcl.
CPF
The completed CPF file../INPUT/rc.pfi_dac.cpf contains:
Technology
Level shifter, isolation cell, state retention cell, power switch cell definition.
COPYRIGHT 2014, CADENCE DESIGN SYSTEMS, INC.
ALL RIGHTS RESERVED.
Design
10
11
MinGap is a halo around the domain fence, and serves as a placement blockage. The row
will cut in MinGap so that there is no row overlap between domains.
RouteSearchExt is a search distance for the power router to look for a legal target to connect
the power net.
12
The power domains need to be resized and reshaped after they have been placed in the core area. To
place, resize and reshape the power domain in the core area, use the EDI command setObjFPlanBox
for rectangular power domain or setObjFPlanBoxList for rectilinear power domain. The power domain
floorplan is in ../PLUG/EDI/post_init.tcl .
Power Switch Insertion
There are two types of the power switches: column and ring switches. This workshop uses the columntype power switches. Those switches are inserted in the switchable domains after power domain
floorplan by addPowerSwitch.
Power Planning
Examine the../PLUG/EDI/scripts/post_init.tcl script.
In this workshop, a power and ground ring is created for each power domain. An M8 stripe over the
PDmac1 and PDmac2 power domains is created to connect the column-type power switch cell. In the
addStripe command, combining option -over_power_domain 1, -over_pin 1 and -master HSWX1 to
generate and connect the stripe based on the pattern of power switch cell HSWXl in both PDmacl and
PDmac2 power domains.
COPYRIGHT 2014, CADENCE DESIGN SYSTEMS, INC.
ALL RIGHTS RESERVED.
13
14
Power Routing
The ../PLUG/EDI/post_route.tcl connects power pins for blocks and standard cells in each power
domain as shown here.
15
Lab 1-4
Generating DB by run_init.tcl
After running the run_init.tcl script, the low power DB is created in DBS/init.enc. You can check low
power setup DB. Use reportShifter and reportIsolation to report shifter and isolation connections.
1. Restore DBS/init.enc by entering
encounter -init DBS/init.enc
Use verifyPowerDomain to check whether the power domains are correctly setup.
16
17
Lab 2-1
1. The ../SCRIPTS/EDI/run_place.tcl does the domain aware placement. It has two plugin scripts: pre_place.tcl and post_place.tcl under ../PLUG/EDI.
2. The pre_place.tcl script is running before placement. You can put setPlaceMode to control
place behavior such as controlling ISO/LS placement(no show in this workshop).
3. The post_place.tcl script is executed after placement. It does tie-high/low insertion and
highlight ISO/LS for ISO/LS placement checking
4. The run_place.tcl does the placement using the placeDesign EDI command
5. To run this foundation step, at the command prompt, enter the following:
make f ../SCRIPTS/Makefile place
The placement result is shown here.
18
DB Generated by run_place.tcl
After running run_place.tcl, the placed DB is created in DBS/place.enc.
1. You can restore it using the restoreDesign EDI command and checking the placed result
such as shifter/isolation placement.
19
20
Lab 3-1
The ../SCRIPTS/EDI/run_prects.tcl does the domain aware preCTS optimization. It has two plug-in
scripts: pre_prects.tcl and post_prects.tcl under ../PLUG/EDI.
The pre_prects.tcl is run before optimization; it can be used for mode setting such as setOptMode
and/or setTrialRouteMode and always-on buffer availability check. From EDI 11 user can use
command called reportAlwaysOnBuffer. It reports how many always-on buffers optDesign can see per
domain. Always-on buffering has big impact on the optimization QoR. It is useful to check the alwayson buffer availability during always-on buffering. The followings are several reason that always-on
buffer is not available for buffering:
1. Always-on buffer needs to define in CPF using define_always_on_cell
2. Always-on buffer is set DontUse (using cmd setDontUse to set it false)
3. Always-on buffers should be bound to that power domain
4. Always-on buffer Site must be defined in that power domain
In this workshop, you will need to buffer the always-on nets using always-on buffers. The
pre_prects.tcl sets the always-on buffers to dont use and dont touch to false and use
reportAlwaysOnBuffer to check the always-on availability as follows:
Always on buffers found for each power domain:
PowerDomain "PD09" (pd tag = "1") has 2 always on buffer(s) to use PowerDomain
"PDmac1" (pd tag = "2") has 2 always on buffer(s) to use PowerDomain "PDmac2" (pd
tag = "3") has 2 always on buffer(s) to use PowerDomain "PDcore" (pd tag = "4") has
2 always on buffer(s) to use
Once always-on buffer is available, optDesign is able to use them whenever the always-on buffers are
necessary during DRV fixing.
The run_prects.tcl runs EDI command verifyPowerDomain to check if there is any low power violation
generated by optDesign.
1. To run this foundation step, at the command prompt, enter the following:
make f ../SCRIPTS/Makefile prects
2. After completing the preCTS optimization, you can find the initial timing summary and the
preCTS optimization final summary in the optDesign log in ./LOG/prects.log.
What is the initial worse negative slack?
What is the worst max_tran violation?
What is the prects final worse negative slack?
What is the prect final worst max_tran violation?
21
Always-on Buffering
In designs that contain modules that are shut-off, there will be nets that need to be always-on buffering.
Here are some examples:
22
23
Lab 4-1
The ../PLUG/EDI/pre_cts.tcl and ../PLUG/EDI/cts.tcl do the domain-aware clock tree synthesis. The
clock specification is automatically generated by ../PLUG/EDI/pre_cts.tcl; and the clock buffers are
defined with both regular buffers and always-on buffers. clockDesign is able to choose which buffer it
need during clock synthesis. If it uses always-on buffers, it can automatically connect the always- on
buffers 2nd power pin.
The ../PLUG/EDI/cts.tcl synthesizes the clock trees using the generated clock specification. To run this
foundation step, at the command prompt, type the following:
make f ../SCRIPTS/Makefile cts
2. To view the clock tree that crosses the power domains, choose Clock Browse
Clock Tree.
3. Select the first clock in the list.
4. Click Select in Clock Selection.
5. Select Pre-Route in Route Selection.
6. Click OK.
7. The clock tree inside a power domain is built from the fence buffers. The fence buffers
are inserted to divide the global clock net into the local clock net inside a power domain. The
fence buffers also ensure that the single entry/exit point to t/from the power domain. Fence
buffer can be either regular or always-on buffers. clockDesign decides it based on the driver,
receiver and location power domains. After you have browsed the clock tree, close the browser.
Viewing the Clock Tree in the Graphical Interface
1. To visualize the clock tree in the GUI, select Clock Display Display Clock Tree.
2. Select Pre-Route in Route Selection.
3. Select Display Clock Tree and All level and then click OK.
You might want to turn off the view of nets and snets to better view the clock tree.
COPYRIGHT 2014, CADENCE DESIGN SYSTEMS, INC.
ALL RIGHTS RESERVED.
24
4. To clear the clock tree display after you finished looking at it, select Clock Display
Clear Clock Tree Display.
25
26
Lab 5-1
The ../SCRIPTS/EDI/run_postcts.tcl does the domain aware postCTS optimization. The optimization
setups are the same as those in preCTS optimization. Always-on buffers are available whenever
necessary. In this workshop, we skip the postCTS hold optimization.
1. To run this foundation step, at the command prompt, type the following:
make f ../SCRIPTS/Makefile postcts
DB Generated by run_postcts.tcl
After running the run_postcts.tcl script, the postCTS optimized DB is created in DBS/postcts.enc.
1. You can restore it using the restoreDesign EDI command.
27
28
Lab 6-1
The ../SCRIPTS/EDI/run_route.tcl routes the design. It has two plug-in scripts: pre_route.tcl and
post_route.tcl under ../PLUG/EDI.
The pre_route.tcl script is run before the routing. It routes the secondary power pin for always-on
buffers, level shifters, and SRPG cells using the routePGPinUseSignalRoute command.
setNanoRouteMode routeStripeLayerRange 4:8 to control the 2nd power pin routing layers. It then
sets the route mode using the setNanoRouteMode EDI command.
The post_route.tcl script is run after the routing. It inserts the fillers using the addFiller EDI command.
1. To run this foundation step, at the command prompt, type the following:
make f ../SCRIPTS/Makefile route
DB Generated by run_route.tcl
After running the run_route.tcl script, the routed DB is created in DBS/route.enc. You can restore it
using the restoreDesign EDI command.
Next, explore GUI highlight and power debug using the routed DB.
Highlighting the Results
1. Restore DBS/route.enc by entering
encounter init DBS/route.enc
2. Select Physical View above the All Colors button. Deselect the visibility for types Net
and Special Nets. This choice turns them off and allows better visibility of the analysis results.
29
5. Deselect the objects and Clear All to clear the highlights and then try other objects.
6. Click the Signal Nets/HLS Cell tab, select the PDcore power domain for Src. of PD.
7. Click Add to add one entry to the left panel, and then select this new added entry
Net:PDcore
30
8. Click Highlight to see nets inside PDcore to be highlighted in the interface. Deselect Net and
Special Net under All Colors.
Do you find any net routed as feed through?
31
32
33
34
Congratulations on finishing the Encounter Low-Power Design Flow CPF Implementation lab.
Workshop Summary
You completed the following steps to implement a multiple-power-domain design by CPF
under MMMC.
Create Power Domain and Insert Level Shifter and Isolation Cell using CPF.
MSV floorplanning
MSV power gating
MSV power planning and routing
MMMC optimization and always-on buffering.
Power mode aware clock tree synthesis
2nd power pin routing
We have used the EDI LP foundation flow to go through each step. You can see the default
command/option setups throughout the flow by checking the EDI run logs in the LOG directory
of your run directory.
Although the test case design is small, all steps that have been performed are applicable to a
design of a larger size.
Workshop Limitation
This workshop uses the general library developed by Cadence so that we can deliver the
workshop to customers. However, the library is still in the first release, it still needs some
enhancements such as the pin access for the route.
35