Icc Report
Icc Report
TITLE :
ICC LAB REPORT
PREPARE BY :
NAME STUDENT NO GROUP
MUHAMMAD AMIR LUQMAN BIN 2016348665 PEE2007D2
SUJANA
MUHAMMAD NUR HADI BIN AB SAMAT 2016343615 PEE2007D2
OBJECTIVES
PnR 1
1. To familiarize you with the IC Compiler GUI
2. To learn how to get help with command and variables
PnR 2
1. Explore additional features of the IC Compiler GUI
2. Perform GUI based analysis
PnR 3
1. Walk through the data setup process of creating and maintaining a Milkyway database
to hold your design
2. Run a complete basic flow, from loading a floorplan through routing
PnR 4
1. To create power/ground rings and straps using Power Network Synthesis
2. To able analyse IR drop using Power Network Analysis
PROCEDURE
PnR 1 IC Compiler GUI
Task 1 Start IC Compiler
1. Log in to the UNIX environment with the assigned user id and password
2. Before invoking IC Compiler, we want to remove a GUI window configuration file, if
it exists. This file exists if you have previously invoked IC Compiler in this login
account – its purpose is to remember the last GUI window configuration you had
before exiting the tool, so that the configuration will look the same the next time you
invoke the tool. For this lab we need you to start with a default window configuration.
If the following file exists in your home directory, delete it.
rm ~/.config/Synopsys/icc_shell.conf
3. Form the lab’s installation directory, change to the following working directory and
install the lab
UNIX% cd ~lab_work/icc/lab0/ORCA_TOP/rm_icc.tmp
UNIX% make restore_lab0
4. Start IC Compiler and load a routed design using the provided make script
UNIX% make load
5. Have a look in current directory. In the IC Compiler shell type
icc_shell> ls
6. Start the GUI
7. Bring the LayoutWindow to the foreground, enlarge or maximize the LayoutWindow
Task 2 Navigating the Layout View
1. Spend few minutes to familiar with the zoom and pan buttons in the LayoutWindow
2. Hot keys are also available when the LayoutWindow is active
3. You can find out about other hot key definitions in two ways: Hover with the mouse
over a button and a “balloon help” will appear showing the name of the function and
the keyboard shortcut. You can also select the pull down menu Help Report
Hotkey Bindings. A new view appears, listing the hot key definitions. To close this
view select Window Close View or [Ctrl W].
4. Some people like to use mouse “strokes” to pan and zoom, instead of using GUI
buttons or keyboard “hot keys”. Zoom in on an area of interest: Lower-case [Z] and
[Esc].
5. The keyboard arrow keys can also be used to pan the display North/South/East/West.
6. If your mouse has a scroll wheel, it can be used to zoom in/out (2X or ½X) around the
area of the mouse’s pointer.
Task 3 Controlling Object and Layer Visibility
1. In the Vis. Column (Visible), uncheck everything except Cell. The fastest way to do
this is to right-click on the Vis. label and select Hide All, then check the Cell box.
2. Now check PIN
3. Check Labels
4. In selection mode, draw a box to fully enclose one of the standard cells. This selects
all selectable objects inside the box, which highlighted in white
5. Make pins un-selectable by unchecking the box under the Sel. column (Selectable).
Draw the same box again to see that only the standard cell is selected
6. Check Route. All routes are displayed. Expand Route and Net Type under it, turn off
Power and Ground
7. Save the view setting.
8. Select Default from the pull down list to restore the default settings.
9. Select Layers tab, which can be used to “fine tune” the routing visibility further on a
layer by layer basis
10. Zoom into the middle of the block
11. This design uses a total of seven metal routing layer.
12. Observe the routes as you turn on one layer at a time.
13. The individual object type can be turned on/off by clicking the patterned colour
squares.
14. The check marks control layer selectability
Task 4 Querying and Selecting Objects
1. To be able tp query or select objects, the mouse cursor must be an arrow.
2. Hover the cursor arrow over an object without clicking the mouse. The object is
highlighted with dashed white lines, and an “InfoTip” box appears in the bottom left,
displaying some key attributes of the object.
3. Now select a single object with a left mouse click. The selected object is highlighted
with solid white lines, and remains highlighted until un-selected, or a different object
is selected. Keep the object selected.
4. While one object is selected, hover the mouse cursor over a different object. Notice
that the “InfoTip” box displays information about the “dashed white line” object, not
the selected (solid white line) object.
5. To obtain a “full query” of a selected object press lower-case [Q] or use the menu:
Select Query Selection. A query panel opens and lists all the attribute values of the
selected object.
6. Close the query panel by clicking the “Hide” minus sign in its upper right corner, or
by right-clicking in the top or bottom banner area of the panel and selecting “Hide”.
7. Unselect all objects by either clicking on an empty area in the layout, by using the
menu Select Clear, or by typing [Ctrl D].
8. Select multiple objects in the same area with a left button “drag-and-draw”. All
selectable objects within the drawn rectangle are selected.
9. Keep what is selected and select additional objects by holding down the [Ctrl] key
while selecting with the left mouse click.
10. Click on an area with multiple objects stacked on top of each other (for example, a via
connecting a horizontal and a vertical metal route). Notice that one object will be
selected (solid white), while a different object will be queried (dashed white). The
“InfoTip” box goes with the “dashed” object.
11. Cycle through the “stacked” objects by repeatedly clicking the left mouse button.
Notice that both the solid and dashed line objects cycle.
12. Select the Objects tab at the top of the View Settings panel and turn off Route
visibility.
13. Select a handful of standard cells by dragging a selection box around them.
14. If it is difficult to notice the highlighted objects among other bright objects, it is
possible to reduce the “brightness” of the unselected objects, thereby increasing the
contrast. A “Brightness” control is located at the top of the View Settings panel.
15. Reduce the brightness to 50% to see the improved contrast.
16. From the MainWindow or LayoutWindow use File Close Design to remove the
current design from the tool’s memory. If the Close Design dialog box appears, click
on Discard All to close the design without saving it.
17. You are done using the GUI. To close the GUI, while keeping the IC Compiler
session active, type:
stop_gui
Task 5 Getting Help with Command and Variables
1. IC Compiler supports command name, variable name, file name and command option
“completion” through the [Tab] key. Try the following in the IC Compiler command
shell window:
h[Tab]e[Tab] –v[Tab] help[Enter]
2. To view the man page on a command or variable you need to enter the exact
command or variable name. Alternatively, you can enter the starting characters of the
command/variable and use command completion to find the rest. If you are not sure
what the exact name is, use help for commands, and printvar for variables, along with
the * wildcard. Here are some examples:
Let’s say you are looking for more information about a certain optimization command.
You do not remember the exact command name, but you know it contains the string
“syn” (for “synthesis”). To list all commands that contain this string enter:
help *syn*
3. To list the available options for psynopt:
help –verbose psynopt
4. To get a full help manual page – a detailed description of the command and all of its
options, type:
man psynopt
5. Now let’s say you need help on a specific variable, but again, you don’t remember its
exact name, but it contains “library”. To list all variables containing this string, enter:
printvar *library*
6. To get a full help manual page of the variable, type:
man target_library
7. Lastly, get additional help with an error or warning message, using the unique
message code
man PSYN-025
8. Quit the IC Compiler shell
Click the browse button, then double-clock as needed to locate the ref
directory. Enter paths to the files shown below. Click OK to load the TLU Plus
parasitic files.
Select the Flylines button from the top banner section of the
LayoutWindow.
In the “Show flylines” panel that appears on the right side of the window click on the
pull-down menu and choose Selected to IO and Apply.
Reduce the “brightness” to 50% or less to better see the three flylines. The lower left
three macros show connections to IO pads near the top.
3. Keep the “Show flylines” panel open and, if needed, adjust the viewing area
(pan/zoom) to see the picture below. If you accidentally unselect the macros and the
flylines disappear, use the [Ctrl] key to re-select the three circled macros shown here,
and the flylines will re-appear.
4. The three macros with a direct connection to IO pad cells are called
I_CLOCK_GEN/I_PLL_PCI, I_CLOCK_GEN/I_PLL_SD and
I_CLOCK_GEN/I_CLKMUL. Hover your mouse arrow over a cell to see its
information window in the lower-left area. The two PLLs in this design should be
placed towards the top left and right corners of the chip so they are closer to their
respective clock pads.
5. Now you will manually move the I_PLL_PCI macro, which is connected to the left
pad, into the core area. Keep in mind that you can use the undo button to back
track your steps.
a. Select just the I_PLL_PCI macro using Selection Tool button.
b. Select the Start edit Tool button (may be in the left banner of the
window) to begin the moving process.
Drag the I_PLL_PCI macro to approximately the top-left corner of the core
area. Leave some room to the edges of the core.
c. With the PLL still selected, use the align functions to align the PLL to the top
and left edges of the core:
Click the Align Objects to Left button to align it to
the core’s left edge
From the pull-down menu select the Align Objects to Top
button to align it to the core’s top edge
The PLL is now aligned with the edges of the core.
d. To make sure that the cell is not moved by virtual flat
placement, click on the “padlock” button to lock it
down. You should see an X through the cell now.
6. Try to move the “fixed” I_PLL_PCI macro. You should not be able to do so. If you
are able to move it, use the undo button to put it back and “fix” it in place. Don’t
worry if you make a mistake since you will be provided with a script to place these
macros at the expected coordinates in a later step.
Use the [ESC] key as needed to return the cursor to the “select” mode.
7. In the next steps you will repeat the steps above to move the other two macros into the
core area and near their respective IO pad cells. DO NOT spend too much time on this
step to get them perfectly placed. A script in the next step will ensure correct
placement:
Click on I_PLL_SD to select it.
Select and drag it to the top-right corner of the core area.
Align it to the top and right edges.
Rotate 180o to reduce its wirelength.
Click the “padlock” button to lock it down.
Close the flylines panel on the right by clicking on the small “x” .
8. To ensure that the three macros are placed as expected, you can source the following
script:
Source –echo scripts/preplace_macros.tcl
RESULTS
PnR 2
PnR 3
Report timing
Task 4
Report timing
Task 5
Report timing
Task 6
Design route
Report timing
Hold time (no violation)
PnR 4
Macros and IO pad cell
Task 2
Metal route
Task 3
Task 5
IR drop map
Task 6
Report timing
Setup timing
Task 8
Floorplan
DISCUSSION
In PnR 3, the congestion heat map shown in the layout, as well as an overflow
distribution graph. Zero overflow are highlighted because those areas could become
congested if any additional routing resources will be needed after optimization, CTS, etc. in
order to allow IC Compiler to calculate the actual clock skews during clock tree synthesis,
instead of incorporating the estimated skew from the constraints, remove the clock
uncertainty first and enable hold time fixing. The logical netlist from the synthesis does not
contain physical only cells such as power and ground pad cell or corner pad cells. It have to
create the extra cell before being able to physically place them in the periphery area in the
chip. To make sure that no shorts were caused enter the following commands to turn on short
checking under Metal 2 and Metal 3. To complete power plan, it need to hook up the power
pins on all macros and create the standard cell power rails. The DEF floorplan file will be
used by Design Compiler Topographical to re-synthesis the design using the floorplan.
CONCLUSION
As a conclusion, in PnR 1 lab have all the steps needed to learn about the IC Compiler
GUI. It is consist of basic steps to learn how to get help with the commands and variables.
After that, it continues to the PnR 2 which is deep explore in the additional features of the IC
Compiler GUI. It also the show the steps to perform GUI based analysis. In the PnR 3 which
is about the data setup and basic flow. It show step through the data setup process of creating
and maintaining a Milkyway database to hold design data. It will run a complete basic flow,
from loading a floorplan through routing. Lastly on PnR 4 is about the basic flow of design
flow. The logical netlist from synthesis does not contain physical-only cell such as power and
ground pad cell.