Getdb PDF
Getdb PDF
Getdb PDF
Product version:
Innovus 18.10
Tempus 18.10
Genus 18.10
June 2018
Cadence Design Systems, Inc., 2655 Seely Avenue, San Jose, CA 95134, USA
Trademarks: Trademarks and service marks of Cadence Design Systems, Inc. (Cadence) contained in
this document are attributed to Cadence with the appropriate symbol. For queries regarding
Cadence’s trademarks, contact the corporate legal department at the address shown above or call
800.862.4522.
Contents
Contents
Introduction .................................................................................................................................................. 4
How to get the RAK Database ............................................................................................................... 5
Points to Note ....................................................................................................................................... 5
Module 1: Using get_db to Query Attribute Values ............................................................................... 6
Module 2: Using the “.” to Traverse to Child Objects ............................................................................ 9
Module 3: Using <TAB> completion to find attribute names .............................................................. 11
Module 4: Using conditions to filter get_db return results............................................................... 13
Module 5: Using help to get information about attributes, objects, commands, and messages ........ 15
Module 6: Getting attribute definition parameters ............................................................................. 18
Module 7: Finding out the timing related information for a relevant object type .............................. 20
Module 8: Defining attributes and parameters .................................................................................... 24
Introduction
The Common User Interface (Common UI) has been designed to be used across Genus,
Innovus, and Tempus tools. By providing a common interface from RTL to signoff, the Common
UI enhances your experience by making it easier to work with multiple Cadence products.
The Common UI simplifies command naming and aligns common implementation methods
across Cadence digital and sign-off tools. For example, the processes of design initialization,
database access, command consistency, and metric collection have all been streamlined and
simplified. In addition, updated and shared methods have been added to run, define, and deploy
reference flows. These updated interfaces and reference flows increase productivity by
delivering a familiar interface across core implementation and signoff products. You can take
advantage of consistently robust RTL-to-signoff reporting and management, as well as a
customizable environment.
➢ Unified and holistic metrics generated, which make it easier to summarize and compare
The purpose of this RAK is to provide you with information about how to access the database in
Common UI. It aims at making you familiar with the new features of Common UI and how these
features can be used interactively.
At the end of the session, you will be able to:
Use get_db to query attributes.
Use the ‘.’ operator to traverse to child attributes.
Use <TAB> completion to find attribute names.
Use conditions to filter the get_db return results.
Use help for extra information.
Define and get attribute definition parameters.
Find out the timing related information for a relevant object type
Points to Note
• The working directory is get_db_CUI_RAK/DBTCL
• It contains
- common_init.tcl => This is the run script
- INPUT/ => This folder contains the necessary input files mentioned in common_init.tcl
- design/ => This folder contains the routed def and saved databases for innovus.
• The output value(s) of an attribute across the tools might vary due to difference in the architecture
of the tools and the way the tools work.
In this section, you are provided with the basics of the get_db command that is used for
interactive queries of attributes through a particular Dual-Ported Object (DPO).
a. For Genus
UNIX> genus
genus> source common_init.tcl
b. For Innovus
UNIX> innovus -stylus
innovus> source common_init.tcl
c. For Tempus
UNIX> tempus -stylus
tempus> source common_init.tcl
(Note: Common UI is not the default UI in Innovus and Tempus. You can invoke CUI by
using -stylus)
a. The get_db command takes one of the following— a dual-ported object, a dual-
ported object list, a collection as the input, then uses a period (.) to traverse to
other related objects or to access attributes.
‒ A netlist name will have the current design name included, so an instance
named i1/i2 in design top, would look like inst:top/i1/i2.
‒ An object with no name, like a wire, will just show the pointer hex-value
like wire:0x22222.
The root object has the current design data under the current_design attribute, while
the technology and library data are normally directly accessible as root attributes (for
example, layers, libraries, and so on.). The root object is the default starting point if there
is no input list or collection.
Thus,
This returns a list of all the dual ported objects of that object type. The string form is
normally a useful name preceded by the obj_type, so a base_cell object string form might
look like base_cell:leon.
A particular DPO (or a set of DPOs) can be obtained by the root attribute alias
followed by the name. Wildcards (*) can be used in the name.
➢ All the values of a particular attribute of a particular object type can be obtained
by using the root attribute alias name followed by a period and the attribute name.
2. Select a DPO and get the delay corner of the particular analysis view.
3. To get the late timing condition of this particular delay corner, append the name child
attribute to the parent attribute separated by a period (.).
4. To get the library set of this particular timing condition, append library_sets
immediately after the previous string separated by a period.
To summarize,
In this section, you learn how to use <TAB> completion for finding available attributes to more
quickly identify available attributes. Functionality is the same as with the .*, but does not require
going back to a previous line and copying or pasting the attribute names. The .* usage is more
flexible as complete patterns can be specified, while the <TAB> completion is only for finding
attributes starting with a fixed prefix (or no pattern).
The underscore at the end of the object indicates there are multiple objects that have the
same first word. To find all the object with that first name, use the first word and then
press <TAB>.
innovus>get_db lib<TAB>
lib_ libraries library_sets
3. Display attributes of a particular prefix. For example, the arrival time related attributes
(arrival_*) on pin object type
In this section, you will learn how to use conditions to filter the get_db return results.
Some attributes represent an array of values. For example, a pin .slack_max_rise attribute
has a different value for each analysis_view and each clock that can affect that pin. With no
index, a default method defined for that attribute is used (for example, the maximum, or
minimum of all values in the array).
If you want to return a specific value, you must include the index value. The index values are
object pointers, or a pair of obj_type name and object name (for example, "clock clk1"). The
word view is accepted as an abbreviation for analysis_view.
innovus> get_db
pin:asic_entity/coreinst/ks_core1/amba_dsp1/mcore0/ahb0/r_reg_hcac
he/DFF/D .slack_max -index
{analysis_view:asic_entity/func_fast_min}
no_value
innovus> get_db
pin:asic_entity/coreinst/ks_core1/amba_dsp1/mcore0/ahb0/r_reg_hcac
he/DFF/D .slack_max -index
{analysis_view:asic_entity/func_slow_max}
5.08266
Note: The value displayed for any timing information might vary across tools for various
reasons.
Introducing help
The help command is one of the most powerful features introduced in the get_db schema.
It searches the given help string across the tool commands, attributes, and parameters. The
wildcard asterisk operator '*' can also be used.
Attributes:
is_settable: false
is_user_defined: false
skip_in_db: false
type: double
The above command (place_design) is specific to innovus, however the help command
can be used for tempus and genus commands as well.
To know more about the detailed options regarding usage of the help command, refer to the
manual page
innovus> man help
To summarize,
help <attribute/obj_type/command>
Observe that the DPOs of the “attribute” object type are of the form
attribute:<obj_type>/<attribute>
Example of querying for the attribute definition of a particular object with a particular object type;
area (attribute) of a base cell (object type).
indices:
is_computed: false
is_obsolete: false
is_settable: false
is_user_defined: false
name: base_cell/area
obj_type: attribute
parent: obj_type:base_cell
set_function: {}
skip_in_db: false
To summarize,
get_db attribute:<obj_type>/attribute .*
Use the first DPO and create a query for related attributes.
a. This query returns the period of the clock. The period is either specified directly
with the create_clock command or derived from a generated clock
To find all the source latency related attributes, a wildcard operator (*) can be used after
source_latency_
source_latency_early_rise_max: no_value
source_latency_early_rise_min: no_value
source_latency_late_fall_max: no_value
source_latency_late_fall_min: no_value
source_latency_late_rise_max: no_value
source_latency_late_rise_min: no_value
c. Make a query for the ideal latency related attributes (ideal_transition_*) and
network latency related attributes (network_latency_*) in the same way.
Use the first DPO and make a query for the related attributes.
.
arrival_sigma_min_rise: NC
arrival_window: NC
There are two ways to see the computed value of these attributes.
innovus> get_db
pin:asic_entity/coreinst/ks_core1/amba_dsp1/mcore0/ahb0/r_r
eg_hcache/DFF/CK .arrival_max_fall
21.466
(and so on)
Use the first DPO and make a query for the related attributes.
In this section, you will learn to use the get_db functionality to define an attribute.
Usage Model:
To know more about the individual parameters in defining the attribute, refer to the manual page.
is_user_defined: true
name: clock/my_attribute
obj_type: attribute
parent: obj_type:clock
skip_in_db: false