Académique Documents
Professionnel Documents
Culture Documents
Encounter Workshop 2
What you will learn - Partitioning a design
Importing a design
Designing a top level floorplan
Specifying partitions
Creating partition pin guides for partitions
Preparing to commit the partitions
Partitioning and generating pins for partitions
Moving partition pins
Viewing into the partitions
Saving partitioned design to directories
Chip assembly information
1/2007
Page 1
1.
DTMF_INST/clk
DTMF_INST/spi_clk
scan_clk
1/2007
Imported,
Floorplanned
NanoPlaced
Scan chain optimized
Trial routed
Wire parasitic extracted
Setup timing analyzed
Timing optimized for setup timing
Clock tree synthesized
Hold time analyzed
Timing optimized for close timing
NanoRoute routed
Signal integrity analyzed
Fix violating noisy nets
Page 2
2.
Note: The following setting up instruction is the same for Workshop1. If you have
already run Workshop 1, you can skip to section 3. Starting an Encounter Session.
The following is the instruction to setup and use the Encounter design tool. You need to
find the installed Encounter directory to get access to the both the Encounter software and
the DTMF design. The design is located in the <install_dir>/share/fe/gift/tutorials/dtmf
directory.
Checklist a. Locate the Encounter install directory.
b. Create a work directory to run the DTMF design.
c. Login to the Cadence Learning Management System at:
http://learning.cadence.com
Setting the Encounter environment In an UNIX window (shell tool, xterm, or etc.), you must set a path to the installation
directory and set an environment variable for the cdslmd license:
set path=(<install_dir>/tools/bin $path)
setenv LM_LICENSE_FILE
\
<install_dir>/share/license/<cdslmd_lic>
which encounter (to see if the path is set properly?)
Note that this UNIX window becomes the Encounter Console where Encounter
commands are entered and Encounter messages are outputted.
Setting up your work directory for the workshop
This requires three steps.
1) Copying the DTMF design data
Copy all the contents (files and directories) from the ~share/fe/gift/tutorial/ directory to
your work directory. Use the UNIX commands:
mkdir <work_directory_name>
cd <work_directory_name>
cp r <install_dir>/share/fe/gift/tutorials/* .
1/2007
Page 3
1/2007
Page 4
3.
Make sure you are in the dtmf/work_fe work directory and type:
encounter
Now the Encounter Main Window displays.
Menu
Toolbar
Widget
s
Status
Select bar
Selectability
toggles
Design
Views
Tool
Widget
Color
Preference
form
Visibility
toggles
Color
options
Satellite
window
Displays name of
selected or
queried object
1/2007
Auto Query
of object
when enabled
Coordinates of
Number of selected objects cursor location
Page 5
Action
Focus
Focus
Populates
Description
Changes the focus of stacked objects.
Changes the focus of previous stacked object.
Populates the Edit Route form with the net name and more
Page 6
1/2007
domain
eco
filler
fix
floorplan
footprint
group
hier
import
load
noise
partition
place
preference
power
restore
route
save
scan
sdf
select
snap
timing
verify
Page 7
4.
Importing the design - The Design Import form is used to load the Verilog netlist,
physical libraries, process technology libraries, timing libraries, and timing constraints.
Other important items are also loaded during design import and they are contained in the
2 tabs of the Design Import form. Open the Design Import form and make the following
entries.
Form Design -> Design Import
Load The configurations file dtmfLef.conf and examine the entries in the Design
Import form.
Click the OK button when ready to import.
1/2007
Page 8
5.
Changing the die size The die size and aspect ratio need to be changed to
accommodate the 2 partitions and blocks, and this is done in the Specify Floorplan form.
Form Floorplan -> Specify Floorplan
Select Die Size by: Width and Height option and
Enter Core Width: 1623.96
Enter Core Height: 1392.12
Click the Apply button when ready.
Now, make sure the Core to IO Boundary option is selected and
Enter Core to Left: 100
Enter Core to Right: 100
Enter Core to Top: 100
Enter Core to Bottom: 100
Click the OK button when ready.
The die shape is now rectangular and the IO pads are spaced away from the core area.
Pre-placing the block in the floorplan The blocks need to be pre-placed and block
halos added. Since this sequence is similar to the relative floorplanning work done in
Workshop1, a floorplan file is loaded.
Form Design -> Load Floorplan
Select file dtmf_p.block.fp and
Click the Open button after selecting the file.
Now, the blocks along with their halos are placed in the floorplan.
Pre-Placing blocks information In this design, there are 4 large blocks and all
were pre-placed before NanoPlace Placement is run. It is not always
recommended to pre-place all block in a design, especially the small size blocks.
The thinking is to pre-place the blocks that are critical in timing and the large size
blocks such as memories (since the arrangement is known). The NanoPlace
Placement program will place all remaining blocks that were not pre-placed along
with the standard cell instances.
1/2007
Page 9
6.
Knowing your partitions Designing a partition floorplan starts with knowing exactly
which modules or submodule that is to become a partition. In the DTMF design, there
are 2 submodules that are to become partitions in the design.
Use the Design Browser to view the 2 submodules and this is done by Tools -> Design
Browser. The hierarchical names of the 2 submodules are:
DTMF_INST/TDSP_CORE_INST and DTMF_INST_ARB_INST.
The DTMF_INST/TDSP_CORE_INST contains all standard cell instances and the
DTMF_INST/ARB_INST module contains a block and 24 standard cell instances.
Pushing down the design hierarchy Make sure the design view is in the Floorplan
view. Now, position the view area so you can see the DTMF_INST module (the large
pink colored top module), and this is done by panning left (left arrow key). Select the
DTMF_INST module by clicking on it, and then, enter the G-key (ungroup) or Hierarchy
Down widget in the Toolbar.
We have pushed down 1 level into the design hierarchy and five submodules are now
visible.
Display preference information The display of submodules that contain few
instance in the floorplan view is controlled by the Display page of the Design ->
Preference form. The default Min. Floorplan Module Size is 100, and this means
that any submodule that contains 100 or more instances (standard cell + block) is
displayed. Note that any submodule that contains one or more blocks, this
submoule will always display, no matter of the value entered.
1/2007
Page 10
Guiding submodules in the floorplan The 2 submodules need to be guided into the
floorplan and this is done with the Move/Resize/Reshape widget in the Tools area. Move
the 2 submodules as in Figure 1 or for a closer view see also Figure 2.
Figure 1 - Sample Partition Floorplan
DTMF_INST/TDSP_CORE_INST
DTMF_INST/ARB_INST and child block
(Note: Keep the Target Utilization (TU=#) around 75%)
1/2007
Page 11
7.
1/2007
Page 12
Displaying the Effective Utilization (EU= #%) Click the Display/Calculate Effective
Utilization % widget, and the EU value will display next the TU value on the 2 fences.
Creating a Partition Pin Guide Adding a Partition Pin Guide is optional. The
Partition Pin Guide is used to create pins for the partitions with user assigned a net name,
a bus name, or a net group name, and the pins are created at a specified location and in
the order specified.
Creating a Net Group In this workshop, we are creating a net group and assign it to a
Partition Pin Guide. There are two ways to create a Net Group. The first way is using
the Edit Net Group form.
Form Edit -> Ediing -> Net Group
Enter Name: group1 and Click the Add/Update button which creates group1 net
group.
Enter Add Nets: *rom_data[8] and Click the Add Nets button.
Enter Add Nets: *p_read and Click the Add Nets button.
Enter Add Nets: *p_addrs[5] and Click the Add Nets button.
Now you should have all three net names listed for group1.
Click the OK button when ready.
The second way is to use the Encounter commands.
Type the following commands in the Encounter console:
createNetGroup group1
(note: group1 is an user assign name)
addNetToNetGroup group1 DTMF_INST/rom_data\[8\]
addNetToNetGroup group1 DTMF_INST/p_read
addNetToNetGroup group1 DTMF_INST/p_addrs\[5\]
1/2007
Page 13
Creating a Partition Pin Guide The Partition Pin Guide is created in the floorplan.
To create the Partition Pin Guide, click on the Partition Pin Guide widget in the Tools
area, then create a pin guide as shown in Figure 2.
Figure 2 Sample Partition Pin Guide
1/2007
Page 14
8.
Creating the power and ground for the design for this workshop is optional. If you want
to skip this portion, go to Section 9 Preparing to Partition the Design.
Preparing to create power/ground rings Before designing any power and ground
rings or stripes, the global nets for power and ground must be assigned for the entire
design, and this is done with the Global Net Connections form. From the netlist, the
power pins, tie high pins, and tie low pins need to be connected to power and ground
nets. Also, from the LEF file, the vdd! and gnd! ring pins need to be connected to power
and ground nets. There are 6 sets of entries required and they are shown in the table
below.
Form Floorplan -> Connect Global Nets
For Set 1:
Enter Set 1 from table (follow Figure 3).
Click Add to List button.
Continue for Sets 2 through 6 and when done, the completed form looks like Figure 4.
Click the Apply button when all 6 sets appear in the Connection List.
1/2007
Page 15
Entry
Pin Name(s)
Instance
Basename
Tie High
Tie Low
Apply All
To Global Net
n/s = not selected.
Set 1
VDD
*
Set 2
vdd!
*
Set 3
VSS
*
Set 4
gnd!
*
Set 5
n/s
*
Set 6
n/s
*
n/s
n/s
Selected
VDD
n/s
n/s
Selected
VDD
n/s
n/s
Selected
VSS
n/s
n/s
Selected
VSS
n/s
Selected
Selected
VSS
Selected
n/s
Selected
VDD
1/2007
Page 16
After applying the 6 sets, click the Check button. There should be no warning messages.
Viewing Block Information Notice that once you have completed the Global
Net Connections form, the power and ground rings display their VDD and VSS
net names in the 3 rectangular blocks. The pin names in the LEF file are vdd! and
gnd!.
1/2007
Page 17
Creating power/ground rings Now with the power and ground nets assigned, power
planning can be done. In this design, power and ground rings are added around the core
area and around one of the blocks. Power and ground stripes are also added to the top
level design. The Synthesize Power Plan form is used and this form contains design and
block/IP templates which are used to customize the power rings and stripes. See the
Figure 5 which helps identifies the templates. There are 6 major steps in the following
instruction set.
Figure 5 The Synthesize Power Plan form
Note these buttons:
New template form
Opens an existing template form
1/2007
Page 18
The 1st major step is to assign power rings to the pllclk block. Make the following
entries:
Form Power -> Power Planning -> Synthesize Power Plan
Enter Total Average Power (mW): 6.0
Select Use template to create power plan
Select IP
Click New template icon (blank sheet icon) and this opens the Edit Power Plan
Template form.
In the Edit Power Plan Template form,
Click the IP Block tab.
Select pllclk in the IP Block List
In the Block Ring tab,
Select Require Block Ring
Deselect Allow sharing with others
Select Offset and enter 1.0.
In the Layer section,
Select M6/M5 and enter 8.0 for Bit width.
No power stripes are required for the pllclk block and the Stripe tab is skipped
Click the Set button and this both bolds pllclk and changes the color blue in the IP Block
List.
Click the Save As button and this opens the Specify Template Name form.
In the Specify Template Name form,
Enter the Template Name: block. This is the power planning template for the block and
will be used later.
Click the OK button to save pllclk block template work.
1/2007
Page 19
The 2nd major step is to assign power rings and stripes to the entire design. Note that the
Synthesize Power Plan form redisplays after you clicked OK in the last step. Keep this
form displaying since it is used several more times. Make the following entries
In the Synthesize Power Plan form, make the selection changes:
Select Design and
Click New template icon (blank sheet icon) and this opens the Edit Power Plan
Template form.
Select Ring and
Select M6/M5.
Select Stripe and
Select M6.
Note the Illustration window that displays the ring and stripes for the entire design.
Enter Region Name: chip
Enter IP Library Template: block (use the down-arrow stepper).
Click the Add/Modify button to set the ring and stripe specifications.
Click the Save As button and this opens the Specify Template Name form.
In the Specify Template Name form,
Enter Template Name: chip.
Note that this is the power planning template for the entire design including the block.
Click the OK button to save design template work.
1/2007
Page 20
The 3rd major step is to assign power planning options for the rings and stripes. Leave
the Synthesize Power Plan form displaying since it will be used once more. Make the
following entries.
Form Power -> Power Planning -> Edit Power Planinng Option
Click Object: Stripe button.
Select Stripe Breaking in the Options window and note the illustration on the
right side of the form.
Underneath the illustration,
Select Omit stripes inside block rings and
Click the Add/Modify button located above the illustration.
Enter Power Planning Option Set breaking and
Click the Save button.
Click the Close button to close this form.
The 4th major step is to assign rings and stripes options to the chip template, and the
Synthesize Power Plan form is used. Make the following entries:
In the Synthesize Power Plan form (which should be displaying), make sure the template
selection are still Design and the template name is chip.
Click Open template icon (sheet with text icon) and this opens the Edit Power Plan
Template form.
Enter Power Planning Option Set: breaking (use the down-arrow stepper) and
Click the Add/Modify button.
Click the Save button to save the final setting for the power planning template. Note that
you can overwrite the chip template file since the content is being modified.
1/2007
Page 21
The 5th step is to assign the width and space parameters to the ring and stripes for the top
level in the Specify Template Parameter form. Make the following entries:
In the Synthesize Power Plan form (which should be displaying), make sure the template
selection are still Design and the template name is chip.
Click Specify Template Parameter icon (text icon on the far right) and this opens the
Specify Template Parameter form.
Note the left side of the form in the Design section which displays the DTMF power and
ground design according to the preceding template work. By selecting/highlighting
DTMF_CHIP: chip, this allows you to assign the parameters to the rings and stripes. By
selecting DTMF_CHIP/PLLCLK_INST: pllclk, this allows you to view the parameters
assigned by the block template. Make sure that DTMF_CHIP: chip is selected before
making the following entries:
In the Ring section, leave the options deselected and make the following changes:
For Metal6-Metal5,
Change Width to 8.0, Spacing to 1.0, and leave Offset at center.
In the Stripe section, leave the Wire Group deselected since only a single set/group of
power stripes is required and make the following changes:
For Metal6,
Change Width to 8.0, Spacing to 1.0, Offset from auto to 70
Select Pitch and
Change Count/Pitch to 100.
In Configure Template section, make sure 6.0 mW is entered for the Total Power.
Click the OK button when ready.
The 6th and final step is generating the rings and stripes for the entire design after
entering our specification into the power plan templates. This is done in the Synthesize
Power Plan form. Make the following entries:
In the Synthesize Power Plan form (which should be displaying), make sure the template,
Total Average Power entry is 6 mW, selection are still Design, the template name is
chip.
Click the Apply or the OK button.
Now you should see to power and ground rings and stripe created for the design. You can
ignore the Invalid EM message since no EM limits were entered.
1/2007
Page 22
Routing the power/ground structures To route the remaining power and ground
structure, the SRoute form is used. The SRoute program routes the block pins, pad pins,
pad rings, standard cell pins, and unconnected stripes. For our exercise, power and
ground needs to be routed to the block pins, pad pins, and standard cell pins. Make the
following entries:
Form Route -> Special Route
In the Basic page, make the changes in the Route section to:
Deselect Pad rings and
Use the remaining defaults in the Basic page.
Click the Advanced tab and then click Extension control from the list. Make changes to
2 selections as follows:
In the Primary Connection for: and under Standard Cell Pins and stripe section, change
selection to:
Select None
In the Secondary Connection/Stop (Standard Cell Pins Only) (if the primary connection
fails) section, change selection to:
Select Last cell in the row
No changes are required in the Via Generation tab/page.
Click the OK button when ready.
Now the block pins are connected, power rings are all connected, and standard cell follow
pins are generated and connected.
1/2007
Page 23
Verifying connectivity and geometry After designing the power and ground for the
design, the connections and geometries can be verified (DRC). These 2 tools are in the
Verify menu. To verify the power and ground connectivity, make the following entries:
Form Verify -> Verify Connectivity
In the Net Type section, make a selection change to:
Select Special only and
Deselect Antenna checking.
Use the remaining defaults..
Click the OK button when ready.
There are violations markers because of antenna warnings and these warning can be
ignored since these are power and ground.
Identifying violation marker information Open the Verify -> Violation
Browser to display the violations. In this form, you can automatically zoom-in to
display the violation location.
The violation markers are cleared using Verify -> Clear Violation menu item.
To verify the geometries, use the Verify Geometry form and make the following entries:
Form Verify -> Verify Geometry
Use the form defaults which do not check for antenna geometries.
Click the OK button when ready.
Under the Verify menu, clear the DRC markers if any.
1/2007
Page 24
Editing routes - You can also interactively create or edit power and ground nets by using
the Edit Route form, and to display this form, enter the e-key. To use this form, you
must first change the metal layers and enter the route width and spacing, and click the
Nets tab and enter the power/ground net names, such as VDD and VSS. Click the Pencil
widget (in the Tool Widget menu) to start drawing the power/ground routes and each
click (LMB) allows a change in direction. Double-click the (LMB) in end the route
drawing. The Backspace-key removes the most recent drawn segment. The Undo
widget in the Tool Widget menu completely removes the last drawn route.
Routes can be moved by selecting the segment(s), and then selecting the Move Wires
widget in the Tool Widget menu. The moving of the selected segment is done by 3
mouse clicks (LMB). The first click (cursor is circular shape) selects the segment, the
second click starts the interactive move, and third click places the segment. The Undo
widget in the Tool Widget menu undoes the last move. The are also the Add Via, Cut
Wires, Stretch Wires, and Add Polygon widgets to help in editing routes.
9.
Clearing the floorplan (optional) This is an optional step. You can use your designed
floorplan but as an option there is a workshop supplied floorplan file. To use workshop
supplied floorplan file, use Load Floorplan file form otherwise, you can skip this step. .
Loading the floorplan file Make the following entries.
(Optional step)
Form Design -> Load -> Floorplan
Select file dtmf_p.fp and
Click the Open button after selecting the file.
Now you see the loaded floorplan which is a result of combined work in the Learning
Floorplanning and Creating Power/Ground Rings and Stripes sections.
Several important steps before partitioning the design The following steps and checks must
be run in the listed sequence. The 6 steps or checks before actually partitioning the design are:
1.
2.
3.
4.
5.
6.
7.
8.
1/2007
The floorplan that is used to commit partition must be saved to a file. This floorplan
file is used later to assemble the chip after design work is complete for each partition
and the top level.
1/2007
Page 26
Running NanoPlace Placement and Trial Route Before the design can be partitioned,
NanoPlace and Trial Route must be run. Running Trial Route is necessary to create the
pins for the partitions and these partition pins are optimally placed since the routes
determine the pin placement (except for the pin in the Partition Pin Guide).
Before running NanoPlace and Trial Route, use the Placement Blockage form to make
standard cell placement constraints.
Specifying placement blockage under power and ground stripes Open the
Placement Blockage form to specify that no standard cell will be placed under power and
ground stripes. This is to avoid routing congestion that may occur under the power and
ground stripes.
Form Place -> Specify -> Placement Blockage
Select M2
Select M3
Select M4
Select M5
Select M6 options and
Click the OK button when ready.
Use the Place form to run NanoPlace Placement.
Form Place -> Standard Cells and Blocks
Select Run Full Placement and
Deselect Include Pre-Place Optimization
Click the Mode button to bring up the Placement Mode Setup
Keep the defaults
Click the OK button in both the Mode Setup and Place forms.
Use the Trial Route form to run trial routing.
Note - Another way to run Trial Route is to type trialRoute in the Encounter
console.
Form Route -> Trial Route
Select Prototyping
Click the OK button when ready.
1/2007
Page 27
10.
Saving top level floorplan to a file Before partitioning the design, we need to save the
floorplan to a file. This floorplan file will be used to assemble the entire design after
work is done in each partition and the top level.
Form Design -> Save -> Floorplan
Enter File name of your choice.
Click the Save button when ready.
Now, the design can be partitioned (commit partition) and the Partition form is used.
Form Partition -> Commit Partition
Use the defaults and
Click the OK button when ready.
Note that the 2 submodules have changed to blocks and pins are generated. To view the
generated the pins, make sure you are in the Floorplan view and zoom (RMB) into the
Partition Pin Guide where it overlaps the partition. Click on the pin to view the name.
You may have to cycle through the objects and this is done with the Space Bar-key.
More on commit partition information In the case where the design has been
partitioned and if there are any changes in the floorplan that involves the partitions,
the design must be flattened. This is done by the Partition -> Unpartition form.
1/2007
Page 28
11.
Moving selected partition pins Groups of pins may be moved from one edge to another
edge on a partition. To move a few partition pins, follow the instructions:
First, make sure the design is in the Physical view. Then zoom into (RMB) an edge of a
partition and locate some pins.
Select (Shift-key + LMB) a few pins (it is best to select pin with same metal layer).
Click the Move/Resize/Reshape widget.
Click one of the selected pins and a white bounding box appears. Move the mouse and the
pins will follow. You can zoom out (Z-key) so you can view the other edges of the partition.
Enter the F3-key and the Group Pin(s) Move form displays, and this allows changing the
metal layer.
Click the location for the final pin placement.
Pin Editor information The editor can be used to view and modify pin
location, depth, width, and spacing. Also, grouping of pins of a bus, grouping
pins into a group, and assigning pins as fixed can be done. The Pin Editor is
located in the Edit menu.
1/2007
Page 29
12.
To pushdown into a partition, first select the one of the partitions in the Floorplan view
and then choose Partition -> Change Partition View menu item. Now you are only
viewing in that partition. While viewing the partition, note that the power strips are cut
from the top level floorplan. All floorplan objects that belong to this partition is now part
of the partition.
While down in a partition, the Partition -> Change Partition View will bring you back up
to the top level.
13.
When the design is partitioned, the design is saved. Make sure to change the partition
view to the top level and use the Save Partition form.
Form Design -> Save -> Partition
Select your choice of Output Format and
Enter A name for the Partition Result Directory: PTN
Select your choice of Timing Constraint Output format and
Click the OK button when ready.
It is important to see what files are created in the 2 partition directories and the top level
directory. These directories are created under the PTN directory, and these are the
directories for you to do your design work for the 2 partitions and the top level. Now,
change directory (cd) into each of the created directories, and you should see files for the
netlist, floorplan, import configuration, and etc. These files are for Encounter and for
third party tool use.
Save Partition information For a partition design, your work is saved by the
Save Partition form. Do not use the Save Design or Save Floorplan form. The
Save Partition form saves the partition work in separate directories for each
partition and the top level. Saved in these directories are design import files,
floorplan files, and many more files.
Once the partitioned design is saved, exit the Encounter session since this ends the
top-down partition design work. Now, the design work begins for each partition
and the top level design in their individual created directories.
1/2007
Page 30
14.
1/2007
Page 31
1/2007
Page 32