0% found this document useful (0 votes)
4 views20 pages

Design Creation Lab0

The document outlines a lab focused on familiarizing users with the Fusion Compiler GUI, detailing objectives such as invoking the GUI, navigating layout views, and performing timing analysis. It includes step-by-step tasks for launching the compiler, adjusting layout settings, exploring logical hierarchies, and saving view settings. The lab is designed to be completed in 75 minutes and provides instructions for various functionalities within the GUI to enhance user experience and efficiency.

Uploaded by

yofel14
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views20 pages

Design Creation Lab0

The document outlines a lab focused on familiarizing users with the Fusion Compiler GUI, detailing objectives such as invoking the GUI, navigating layout views, and performing timing analysis. It includes step-by-step tasks for launching the compiler, adjusting layout settings, exploring logical hierarchies, and saving view settings. The lab is designed to be completed in 75 minutes and provides instructions for various functionalities within the GUI to enhance user experience and efficiency.

Uploaded by

yofel14
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Fusion Compiler Design Creation

0 Fusion Compiler GUI

Learning Objectives

This lab’s purpose is to familiarize you with the


Fusion Compiler GUI.

After completing this lab, you should be able to


• Invoke and exit the Fusion Compiler GUI
• Navigate the layout view
• Control object visibility and selectibility
• Select and query layout objects
• Control the object view level
• Rearrange panels in the GUI
• Use the Recent menu and Favorites
• Perform timing analysis
• Use Command Search, as well as help and man to get
help and additional information about commands and
options

Lab
Duration:
75 minutes

Fusion Compiler GUI Lab 0-1


Synopsys I-101-00-LG-05
Lab 0

Task 1. Launch Fusion Compiler and Open a Block


Log in to your Linux environment. If you are using a Synopsys-provided
compute environment, use the assigned user id and password.
If you are running this lab using your company’s compute environment (skip
if using a Synopsys-provided compute environment), and if a
.synopsys_fc_gui directory exists in your home directory, rename it:

% ls -a ~/.synopsys_fc_gui
% mv ~/.synopsys_fc_gui ~/orig.synopsys_fc_gui

Note: This directory is created when you first lauch Fusion


Compiler, and it stores GUI window and preference
settings. By renaming the directory we are ensuring that the
GUI will have its default window and settings setup when
first invoked, so that the lab steps match what you see.
After the lab you can restore your original GUI environment
by deleting the newly-created .synopsys_fc_gui and
renaming the orig.synopsys_fc_gui directory.

From the lab’s installation directory, change to the following working directory
and invoke Fusion Compiler:

% cd lab0_gui
% fc_shell

The Linux terminal prompt becomes fc_shell>, the Fusion Compiler shell
command prompt.
Some of the Linux commands also exist at the Fusion Compiler prompt. Have
a look at your current directory:

fc_shell> ls

You will see that command and output log files were created
(fc_shell.cmd.* and fc_shell.log.*, with date/time).
The .cmd file records all commands, including initialization commands
invoked during start-up. The .log file records commands and command
output after tool start-up. Log/cmd file naming is defined through application
variables in the initialization file .synopsys_fc.setup. If these were not
defined, commands and output would have been stored in the files
fc_command.log and fc_output.txt respectively.
Note: While loading the block, the user can either use Step 5 OR
Steps 6 to 8

Lab 0-2 Fusion Compiler GUI


© 2024 Synopsys, Inc. Fusion Compiler Design Creation
Lab 0

Start the GUI and load the existing block in the current library by using the
following commands

fc_shell> open_lib ORCA_TOP.dlib


fc_shell> open_block ORCA_TOP/compiled
fc_shell> link
fc_shell> start_gui

The Fusion Compiler - BlockWindow opens.


Many GUI commands can be invoked by selecting icons, pull-down menus or
by using hotkey shortcuts.
Bring up the Open Block dialog by
clicking the corresponding icon as
shown here:

You could have also selected the pull-down menu


File → Open Block …, or used the [Ctrl+O] hotkey (shown to the right of the
Open Block pull-down menu command) or clicked on “Open an existing
block”

In the Open Block dialog that opens, click on the yellow symbol in the
top-right corner and choose a design library called “ORCA_TOP.dlib”.
Notice that design libraries are identified by this symbol:

Now that a library has been chosen, select “ORCA_TOP/compiled” from the
blocks listed in the Open Block dialog and click OK.
You should now see the Layout view in the GUI:

Fusion Compiler GUI Lab 0-3


Fusion Compiler Design Creation © 2024 Synopsys, Inc.
Lab 0

If you later close the layout view (can not


close it now, only when you have multiple
windows open), you can always reopen it by
clicking on the Layout View button from the top bar or by selecting the menu
View→Layout View.

To enable the size of text in the Layout view to scale when zooming in (for
better readability), you can select the Settings tab under View Settings, then
the View tab. There, under Label settings, check Scale fonts and Apply. (If
Apply option is disabled due to default Auto Apply, refer next point)

Turn on “auto-apply” as follows, so you no longer have to explicitly click the


Apply button for subsequent steps: Click on the Show Options gear icon in
the top-right of the View Settings tab, then click on Auto apply.

Lab 0-4 Fusion Compiler GUI


© 2024 Synopsys, Inc. Fusion Compiler Design Creation
Lab 0

Task 2. Layout View Settings


The layout displays the power mesh metal layers
by default, which cover the entire block. This
makes it difficult see the underlying standard
cells and macros. There is also a voltage area
defined inside the top voltage area, which is not
shown, by default. Perform the following steps to
turn off the visibility of the power mesh, and to
turn on the voltage area outlines:

In the View Settings, select the Objects


tab.
To the right of Route object, uncheck the
left “Toggle object visibility” box.
The power mesh should no longer be
visible.
Check the Voltage Area visibility box.
You should now see the dashed-yellow
outlines of the DEFAULT_VA and
PD_RISC_CORE voltage areas.
Change the color of voltage area outlines
and labels to make them more clearly
visible: Click on the dashed-purple icon
and chose yellow, for example.
The layout should look like this now:
What you are seeing is the L-
shaped boundary of the block,
with its I/O logical ports, I/O
and P/G physical terminals
along the boundary edges, the
outlines of the two voltage
areas, and placement of the
hard macros (light blue-green
outline with dotted internal
pattern). The small purple
shapes inside the core are the
placed standard cells.

Note: The physical/metal shapes of the block’s I/O logical ports


and P/G connections are called terminals. Physical shapes
of I/O’s and P/G connections inside the block are called
pins.

Fusion Compiler GUI Lab 0-5


Fusion Compiler Design Creation © 2024 Synopsys, Inc.
Lab 0

Task 3. Explore the Logical Hierarchy


Open the hierarchy browser by clicking on the
button shown from the top bar or by selecting
the menu View→Hierarchy Browser.
You should now see something like this:

The Hierarchy Browser lists cell (instance) names of sub-design modules (M)
and hard-macros (HM), along with their statistics.
Expand the width of the hierarchy tab to see the columns displaying the
statistics, or you can simply double-click on the title bar (to the right of
Hier.1) to maximize the view.
The following statistics are displayed: Utilization percentage; pin count; hard
macro, standard cell, and net count (at the current level only and
hierarchically).

Click on the “+” sign to the left of the I_SDRAM_TOP module to expand its
hierarchy. You should see that I_SDRAM_TOP contains a sub-module with
cell name I_SDRAM_IF, and four hard macro RAMs.

Lab 0-6 Fusion Compiler GUI


© 2024 Synopsys, Inc. Fusion Compiler Design Creation
Lab 0

Select one of the hard macros (HM). Notice that the selected hard macro is
highlighted with a white “X” in the layout view (you may have to make the
layout view visible again by double-clicking on the hierarchy view title bar).
You can select and highlight multiple hard macros by using the [Ctrl] or [Shift]
keys.
Unselect the hard macro(s) by clicking your cursor in any black area around
the layout.
Right-click on any module (M), and from the context menu select Color by
Hierarchy → Initialize Color by Hierarchy. You should see that most
hierarchies/modules were highlighted in the layout using a different color.

Note that Fusion Compiler will draw hierarchical module boundaries (MB)
around the various modules in the design.
Smaller modules are not highlighted in the GUI to reduce clutter, for example
the module I_PARSER remains shown as M, and if you select I_PARSER
nothing is highlighted in the layout view.
Right-click on the I_PARSER module, from the context menu select Color by
Hierarchy → Create Selected. The I_PARSER module is now shown as MB,
and you can see the corresponding standard cells in a new color in the layout
view.
You have many options under the Color by Hierarchy menu to set specific
colors as well, but in the interest of time, we will skip this.
To disable all coloring, right-click a module, then select
Color by Hierarchy → Remove All

Fusion Compiler GUI Lab 0-7


Fusion Compiler Design Creation © 2024 Synopsys, Inc.
Lab 0

Task 4. Layout Panning and Zooming


Maximize the Layout View by double-clicking on the title bar of the Layout
tab, or by clicking on the Maximize Current View icon in the top-right corner
of the Layout tab.
Explore the zoom and pan buttons shown below. Note that once you select
Zoom or Pan, your cursor changes to the magnifying glass or hand icon
(shown below, left of the commands), and the tool remains in that mode.
To exit the zoom and pan mode press the [Esc] key or pick the Selection

Pres [Esc] to exit Zoom or Pan mode

Tool (the arrow icon ). The cursor returns to an arrow or pointer shape.
Use hot keys: [F] or [Ctrl F] both correspond to Zoom Fit All (or full view), [+]
or [=] is Zoom In 2x, [-] is Zoom Out 2x.
Find out about other hot key definitions by selecting the pull-down menu
Help → Report Hotkey Bindings. A new panel appears, listing the hot key
definitions. When done, close the hot keys report:
Note: Hotkeys can be defined by using gui_set_hotkey.
In the interest of time, do not attempt this during the lab.

Use your mouse scroll wheel to zoom in/out (2X or ½X) around the area of
the mouse’s pointer

Lab 0-8 Fusion Compiler GUI


© 2024 Synopsys, Inc. Fusion Compiler Design Creation
Lab 0

You can also use mouse strokes to pan and zoom, instead of using GUI
buttons or keyboard hotkeys. Try using strokes as follows:
Zoom in on an area of interest: Lower-case [Z] and [Esc].
Now click and hold the middle mouse button or wheel while moving the
pointer straight up or down and holding it there.

The stroke menu appears near the pointer:

Release the middle button and the design should zoom to fit the display
window (Zoom Fit All). To zoom in on an area place your cursor in the area of
interest then stroke (move mouse with middle button or wheel depressed) in
a 45° direction upward (to the left or right) – the view should zoom-in to a
rectangular area defined by the stroke. Stroking 45° downward zooms out.
Stroking in the east/west direction pans the display such that the start point of
the stroke is moved to the center of the window.
Note: You can query or define your own strokes by using the
commands get_gui_stroke_bindings and
set_gui_stroke_binding.

Fusion Compiler GUI Lab 0-9


Fusion Compiler Design Creation © 2024 Synopsys, Inc.
Lab 0

Task 5. Saving the View Settings


If you want to keep the view settings you have made so far, you need to save them.
Otherwise, they will revert to the default settings the next time you start Fusion
Compiler.

Make sure the View Settings tab (to the right of the Layout tab) is visible and
expanded. If you collapsed the View Settings tab, expand it by clicking on the
left-pointing arrow so you see:

Save the view settings: Click the


“preset” button and select Save
preset as…
Type MyPreset into the preset name
field, check the Include color and
pattern settings box (to save the
new voltage area color setting) and
click OK. Fusion Compiler creates a
file [Link] in the
~/.synopsys_fc_gui/presets/Layout
directory. All saved presets will be
loaded automatically whenever
Fusion Compiler is started again.

Select Default from the pull-down list


to restore the default settings. Fit the
view to the window [F].
Select MyPreset to return to your
saved view settings.
Make one or more changes to your
view settings (turn off Cell visibility,
for example). You can easily return to
your MyPreset settings
by clicking the “reload” circular arrow.

Lab 0-10 Fusion Compiler GUI


© 2024 Synopsys, Inc. Fusion Compiler Design Creation
Lab 0

Task 6. Querying and Selecting Objects


To be able to query or select objects, the mouse cursor must be an arrow,
which denotes select mode. If your cursor is not in select mode either click
the arrow button (Select Tool) or press the [Esc] key.
Hover the pointer over an object without clicking the mouse. The object is
highlighted with dashed white lines, and an InfoTip box appears in the
bottom-left of the Layout view, displaying some key attributes of the object.
Select a single object, 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.
To obtain a full query of a selected object press lower-case [Q]
or use the menu: Select → Query Selection. A new Query tab opens below
the layout that lists all the attribute values of the selected object.

If you query more than one object you can cycle through individual objects by
clicking the  and → arrows at the top of the Query panel:

Type [Ctrl-D] to deselect all objects.


Close the Query tab by clicking the “X”, and make sure the Objects tab of the
View Settings panel is visible on the right.
Enable Route visibility, zoom into a small area, then click on an area with
multiple objects stacked on top of each other (for example, a via connecting a
horizontal and a vertical PG route). Notice that one object will be selected
(solid white), while a different object will be queried (dashed white). The
InfoTip box is associated with the dashed object.
Cycle through the stacked objects by repeatedly clicking the left mouse
button, without moving the cursor: Notice that both the solid and dashed line
objects cycle. Alternatively, press F1 to cycle through just the object queries.
It may be difficult to see the highlighted objects among other bright objects.
You can reduce the brightness of the unselected objects, thereby increasing
the contrast. A Brightness control is located near the top of the
View Settings panel.
Disable Route visibility and return to 100% brightness.

Fusion Compiler GUI Lab 0-11


Fusion Compiler Design Creation © 2024 Synopsys, Inc.
Lab 0

Task 7. Controlling the View Level


By default, the GUI displays all shapes at the current block level, e.g. metal shapes,
blockages, pins etc. To see shapes inside standard cells or hard macros, you have
to increase the view level, and enable them to be “expanded”.

To better see the objects inside the


macros, remove the fill pattern of the
macro shapes:
In the Objects tab of the View Settings
panel, expand Cell, then click on the
aquamarine outline pattern of Hard
Macro.

In the Select Style dialog, go to the Fill pattern


section in the upper-right, and select the black
(no fill) pattern, then click OK.

Increase the viewing Level from 0 to 1, then click on the Hierarchy Settings
button to the right of the Level field, and check Hard Macro.

If you zoom into one of the RAMs you should see the structures inside the
macro. To see what these are, select the small button
to the right of the Level setting (Multiple Levels Active).
You can turn layer visibilities off/on to see individual
layers using the Layers tab. Since these are frame views, what you are
seeing are mostly routing blockages.
Uncheck the Multiple Levels Active box and return to a view level of 0

Lab 0-12 Fusion Compiler GUI


© 2024 Synopsys, Inc. Fusion Compiler Design Creation
Lab 0

Task 8. Rearranging Panels, Overview


You can switch back and forth between the panels (or tabs) on the right (View
Settings and Favorites, for example). Sometimes it can be useful to display more
than one panel at the same time.

Select a macro and press


q to bring up a query
panel.
Right-click on the query
tab – a context menu
should be displayed.
From that context menu
click the Dock ‘Query’
Right arrow to move the
tab to the right.
Right-click on the query
tab again and in the
context menu click on the Split ‘Query’ Below button. The panel area on the
right will now split into a top and a bottom area, with the query panel being in
the bottom area.
Now that you have two panel areas, you can drag and drop tabs from one
area to the other. For example, try dragging the Favorites tab (explained in a
later Task) from the top to the bottom area. Of course, you can also
rearrange the tabs within the same panel area using drag and drop.
When you right-click on the empty area under or to the right of the tabs, or on
a tab (as done above), you can also open new panels, for example the
Property Editor, which can be used to display or change attributes of selected
objects.
Try the other menu banner icons, like Detach, Dock and Collapse. Note that
you are not limited to just two panel areas – you can split the panels again.
In the bottom-right of the BlockWindow, click on the Display overview of
view icon (the Layout view has to be active).

The Overview panel is a miniature


version of the layout view. Zoom in
to an area in the layout, and you
will see a yellow box outlining that
area in the overview panel. You
can move and resize the yellow
box within the overview panel and
the layout view will adjust
accordingly. Note that the overview
window is on-demand – it closes
once you click anything in the full
layout window.

Fusion Compiler GUI Lab 0-13


Fusion Compiler Design Creation © 2024 Synopsys, Inc.
Lab 0

Task 9. Timing Analysis


Use the menu Window→Timing Analysis Window. In the TimingWindow
that appears, press the Update button in the top-left to update the timing.

Select the scenario func.ss_125c and the path group SYS_2x_CLK.

A histogram for the timing distribution is shown for the currently selected
scenario. By default, only violating paths are shown as red bars. If there are
no bars, there are no violations. If you want to see paths that meet timing as
green bars, then unselect the Failing box above the scenario list (if you do
this, when done, re-check the Failing box and re-select the scenario
func.ss_125c and the path group SYS_2x_CLK).
Click on the left-most red bar (turns yellow) and you should see timing
end-points displayed on the bottom.
Select the first entry, then right click
and choose “Select Worst Paths”
from the context menu: The timing
path is selected and highlighted (white
lines and arrows) in the layout view.

Lab 0-14 Fusion Compiler GUI


© 2024 Synopsys, Inc. Fusion Compiler Design Creation
Lab 0

From the TimingWindow try the Path Inspector by right-clicking a timing path
endpoint and choosing Inspect Worst Paths from the context menu. The
reporting format is similar to the output of report_timing. Selecting an
item from this window will automatically select the same object in the layout
view window.

Close the TimingWindow (containing the TimingStatus, PathInspector and


SourceBrowser tabs).

Fusion Compiler GUI Lab 0-15


Fusion Compiler Design Creation © 2024 Synopsys, Inc.
Lab 0

Task 10. Using the Recent Menu and Favorites


Bring the BlockWindow to the foreground.
Whenever you perform a GUI function, like
analyzing timing, this function can be
repeated by using the Recent pull-down
menu, as shown here (top-left in the GUI,
under Select Tool).
In addition, if you have certain functions that
you use over and over, it might make sense
to add them to your Favorites.
Pull down the Recent menu, then right-click
on a function, and select Add to Favorites.

You will see this function listed in the Favorites pane as shown here:

Lab 0-16 Fusion Compiler GUI


© 2024 Synopsys, Inc. Fusion Compiler Design Creation
Lab 0

Task 11. Getting Help


The quickest way to get help is to use Command Search. Access Command
Search by using the keyboard shortcut lower-case [H] or by clicking on the
magnifying glass at the top of the BlockWindow, on the right end of the
menus.

In the “Search for commands” field, begin typing compile. Notice that as you
type, it lists all the menus, commands and application options that relate to
that search string.
Select one of the Application Options, for example,
[Link].enable_ccd.
A second window will open, titled Application Options.
In this window you can change the settings of application options or you can
search for them.
Application options are used to configure various aspects of how Fusion
Compiler works. You will learn more about them during the workshop.
Fusion Compiler supports command, variable, file name and command option
completion through the [Tab] key. Try the following in the console at the
fc_shell> prompt:

h[Tab]e[Tab] –v[Tab] [Enter]

To view the man page on a command or application option you need to enter
the exact command or variable name. Alternatively, you can enter the starting
characters of a command and use command completion to find the rest
(auto-completion is not available for application options). If you are not sure
what the exact name is, use help for commands, use get_app_options
or report_app_options for application options, and use
report_app_var for variables, along with the * wildcard. Here are some
examples:
Let’s say you are looking for more information about the command to modify
GUI hotkeys, but you do not remember the exact command name. You know
it contains the string “key”. To list all commands that contain this string enter:

help *key*

From the displayed list of commands, you find the one you are interested in,
namely, gui_set_hotkey.
Of course, you could have entered key in Command Search as well.

Fusion Compiler GUI Lab 0-17


Fusion Compiler Design Creation © 2024 Synopsys, Inc.
Lab 0

The above command only searches through all command names. If you want
to search through command options as well, use the following:

apropos key

This will return all commands that have the substring “key”, as well as all
commands with options (or man page descriptions) that match “*key*”.
To list the available options for a command, for example gui_set_hotkey:

gui_set_hotkey –[Tab]
or
help gui_set_hotkey –verbose
or
help gui_set_hotkey –v
or
gui_set_hotkey -help

To get a full help manual page – a detailed description of the command and
all of its options, type:

man gui[Tab]_set[Tab]ho[Tab]
or
man gui_set_hotkey

Now let’s say you need help on a specific application option, but again, you
don’t remember its exact name, but it pertains to compile. To list all
application options that start with “compile”, enter:

report_app_options compile*

From the list you can identify the option of interest.


Notice that the report_app_options command also lists the current value
of each option. This report output will be explained in an upcoming lecture.
To get a full help manual page of the application option, type:

man [Link].enable_ccd

You can also get additional help for an error or warning message, using the
unique message code, for example:

man SQM-1034

Lab 0-18 Fusion Compiler GUI


© 2024 Synopsys, Inc. Fusion Compiler Design Creation
Lab 0

Finally, specifically for this workshop, we are providing a few custom


functions for the shell that can simplify your work. They are defined in the file
../ref/tools/[Link]. Try the following:

aa gate

The aa function searches through commands, application options and


variables that match the given string. In addition, it shows the current value.
Use the -v (verbose) option to also search through apropos.
If you want to redirect content to a separate window, try this:

v aa gui

v is a user-defined alias that calls the “view” custom function, useful for
viewing long reports, and allows for regular expression searches.
To list the workshop-provided helper functions and aliases, type “ces_help”.
Quit Fusion Compiler by using the menu File→Exit, or by typing exit at the
command prompt. In the exit dialog, you can choose if you want preferences
and/or window settings to be saved, and if you want to disable this exit
window confirmation dialog from popping up the next time

You have completed the Fusion Compiler GUI lab.

Fusion Compiler GUI Lab 0-19


Fusion Compiler Design Creation © 2024 Synopsys, Inc.
Lab 0

This page was intentionally left blank

Lab 0-20 Fusion Compiler GUI


© 2024 Synopsys, Inc. Fusion Compiler Design Creation

You might also like