Anda di halaman 1dari 25

RAK - Common UI: Using get_db for Database Access

Rapid Adoption Kit

Common UI (User Interface):


Using get_db for Database Access

Product version:

Innovus 18.10
Tempus 18.10
Genus 18.10

June 2018

COPYRIGHT ©2018 CADENCE DESIGN SYSTEMS, INC.


ALL RIGHTS RESERVED. 1
RAK - Common UI: Using get_db for Database Access

2018 Cadence Design Systems, Inc. All rights reserved.

Printed in the United States of America.

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.

All other trademarks are the property of their respective holders

COPYRIGHT ©2018 CADENCE DESIGN SYSTEMS, INC.


ALL RIGHTS RESERVED. 2
RAK - Common UI: Using get_db for Database Access

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

COPYRIGHT ©2018 CADENCE DESIGN SYSTEMS, INC.


ALL RIGHTS RESERVED. 3
RAK - Common UI: Using get_db for Database Access

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.

Common UI has been developed with certain key points in mind.

➢ Common initialization flow across all tools.

➢ Commands updated to a consistent naming style


‒ optDesign is now opt_design

➢ Attributes aligned across database objects.


‒ preserve and avoid in Genus, .isDontTouch and .isDontUse in Innovus =>
.is_dont_touch in Common UI

➢ Unified and holistic metrics generated, which make it easier to summarize and compare

COPYRIGHT ©2018 CADENCE DESIGN SYSTEMS, INC.


ALL RIGHTS RESERVED. 4
RAK - Common UI: Using get_db for Database Access

results, and lead to effective debugging.

➢ Streamlined data model navigation


‒ find/filter/dbGet/get_property => get_db

➢ Better and consistent report formats

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

How to get the RAK Database


RAK database and references can be found at ‘Attachments’ and ‘Related Solutions’ sections
below the PDF. This RAK pdf can be searched with the document title ‘Common UI: Using get_db
for Database Access’ on https://support.cadence.com

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.

• Throughout these labs, the following style is used:


- Anything to be typed in the command prompt is shown in “blue bold Courier font
style”.
- Any information returned as an output or shown in terms of usage of attribute/command
is shown in “black Courier font style”.

• 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.

COPYRIGHT ©2018 CADENCE DESIGN SYSTEMS, INC.


ALL RIGHTS RESERVED. 5
RAK - Common UI: Using get_db for Database Access

Module 1: Using get_db to Query Attribute Values


Objective: To introduce get_db’s features of querying for an attribute value using Dual-
Ported Object (DPO)

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).

Lab Setup — starting the software and loading a design

1. Set the working directory


From a new xterm window:
UNIX> cd DBTCL/

2. Load the design

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)

The get_db syntax

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 dual-ported object (DPO) is a Tcl_Obj in the C++ programming interface. In


other words, a dual-ported object can be described as a handle to an instance of a
given object type in the design.

COPYRIGHT ©2018 CADENCE DESIGN SYSTEMS, INC.


ALL RIGHTS RESERVED. 6
RAK - Common UI: Using get_db for Database Access

Generally, a DPO is expressed as

<obj_type>:<path to the specific instance of that object type>

Thus, a dual-ported object can have the following forms:


‒ 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:and2.

‒ 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,

innovus> get_db program_version


18.10-p002_1
(Note: Your current program version might differ)

This implicitly starts at the root.

Frequently used current_design attributes like insts or hinsts (hierarchical insts)


have root attribute aliases (or shortcuts). These attributes can be accessed by just typing
the root attribute alias name.

innovus> get_db base_cells


base_cell:leon base_cell:PADVSS2 base_cell:PADVSS1
base_cell:PADVDD2 . . . (and so on)

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.

genus> get_db hinsts


A similar example for the genus tool which returns all the hierarchical instances.

b. Finding a particular DPO of an object type

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.

innovus> get_db base_cells PAD*

COPYRIGHT ©2018 CADENCE DESIGN SYSTEMS, INC.


ALL RIGHTS RESERVED. 7
RAK - Common UI: Using get_db for Database Access

base_cell:PADVSS2 base_cell:PADVSS1 base_cell:PADVDD2


base_cell:PADVDD1 base_cell:PADI base_cell:PADCORNER
base_cell:PADO base_cell:PADIO

c. Querying for current design attributes through a dual-ported object

➢ All the attributes belonging to a particular object type can be obtained by


using a period (.) after the DPO and followed by an asterisk.

innovus> get_db base_cell:leon .*


Object: base_cell:leon
aocv_weight: no_value
area: 0.0
base_class: none
.
.
.
(and so on)

➢ The value of a particular attribute of that object type can be obtained by


mentioning the name of the attribute after the period (.) in the above
syntax

innovus> get_db base_cell:leon .base_name


leon

➢ 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.

innovus 18> get_db base_cells .base_name


leon PADVSS2 PADVSS1 PADVDD2 . . . (and so on)

To summarize the get_db syntax,

get_db <dual_ported_object> .<attribute>

(Note: The <dual_port_object> and .<attribute> are separated by a <space>)

COPYRIGHT ©2018 CADENCE DESIGN SYSTEMS, INC.


ALL RIGHTS RESERVED. 8
RAK - Common UI: Using get_db for Database Access

Module 2: Using the “.” to Traverse to Child Objects


Objective: Learning how to use the get_db command to traverse the database

Introducing the '.' operator to traverse to child objects or access specific


attributes for an example in the timing space.

Select an Analysis View


(Select a DPO)

Get the Delay Corner of the


above Analysis View

Get the Timing Condition of


the above Delay Corner

Get the Library Set of the


above Timing Condition

COPYRIGHT ©2018 CADENCE DESIGN SYSTEMS, INC.


ALL RIGHTS RESERVED. 9
RAK - Common UI: Using get_db for Database Access

1. Get the dual-ported object of a parent object type.

innovus> get_db analysis_views


analysis_view:asic_entity/func_slow_max
analysis_view:asic_entity/func_fast_min

2. Select a DPO and get the delay corner of the particular analysis view.

innovus> get_db analysis_view:asic_entity/func_slow_max \


.delay_corner
delay_corner:asic_entity/slow_max

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 (.).

innovus> get_db analysis_view:asic_entity/func_slow_max \


.delay_corner.late_timing_condition
timing_condition:default_mapping_tc_1

4. To get the library set of this particular timing condition, append library_sets
immediately after the previous string separated by a period.

innovus> get_db analysis_view:asic_entity/func_slow_max \


.delay_corner.late_timing_condition.library_sets
library_set:slow

To summarize,

get_db <Parent DPO>


.<attribute>.<child_attribute>.<child_of_child_attribute>

(Note: NOT separated by a <space>)

COPYRIGHT ©2018 CADENCE DESIGN SYSTEMS, INC.


ALL RIGHTS RESERVED. 10
RAK - Common UI: Using get_db for Database Access

Module 3: Using <TAB> completion to find attribute names


Objective: Learning to use the <TAB> completion to match attribute names
while using get_db

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).

Using <TAB> completion to match attribute names more quickly


For interactive queries, the <TAB> and '_*' return the list of available attributes from the current
object

1. Display all root attributes.

innovus> get_db <TAB>

. / add_ analysis_views analyze_ assign_ attributes to_


base_ budget_ bumps busses categories ccopt_ check_ clock_
clocks cmd_ constraint_modes
.
.
.
rc_corners read_ reorder_ report_ resize_ route_ rows run_
selected si_ sites skew_groups source_ tcl_ timing_ via_
write_

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

2. Display attributes of a particular object type starting with n


innovus> get_db base_cells .n<TAB>
name num_base_pins

COPYRIGHT ©2018 CADENCE DESIGN SYSTEMS, INC.


ALL RIGHTS RESERVED. 11
RAK - Common UI: Using get_db for Database Access

3. Display attributes of a particular prefix. For example, the arrival time related attributes
(arrival_*) on pin object type

innovus> get_db port:asic_entity/BG_scan_out_3 .arrival_<TAB>


arrival_max_fall arrival_max_rise
arrival_mean_max_fall arrival_mean_max_rise
arrival_mean_min_fall arrival_mean_min_rise arrival_min_fall
arrival_min_rise arrival_sigma_max_fall arrival_sigma_max_rise
arrival_sigma_min_fall arrival_sigma_min_rise arrival_window

COPYRIGHT ©2018 CADENCE DESIGN SYSTEMS, INC.


ALL RIGHTS RESERVED. 12
RAK - Common UI: Using get_db for Database Access

Module 4: Using conditions to filter get_db return results


Objective: To introduce the get_db feature for filtering results.

In this section, you will learn how to use conditions to filter the get_db return results.

Introducing filtering the returned values

Using the –if {} condition

• Example of get_db without filtering results

innovus> get_db timing_conditions


timing_condition:default_mapping_tc_2
timing_condition:default_mapping_tc_1
• Example of get_db with filtering using –if {}

innovus> get_db timing_conditions -if {.library_sets.name == fast}


timing_condition:default_mapping_tc_2

• Example of using the wildcard operator while filtering using –if {}


innovus> get_db timing_conditions -if {.library_sets.name == fa*}
timing_condition:default_mapping_tc_2

COPYRIGHT ©2018 CADENCE DESIGN SYSTEMS, INC.


ALL RIGHTS RESERVED. 13
RAK - Common UI: Using get_db for Database Access

Using the –index {} condition

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.

• Example of using get_db with the –index condition

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.

COPYRIGHT ©2018 CADENCE DESIGN SYSTEMS, INC.


ALL RIGHTS RESERVED. 14
RAK - Common UI: Using get_db for Database Access

Module 5: Using help to get information about attributes, objects,


commands, and messages
Objective: To introduce Common UI’s help feature to display information.

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.

innovus> help delay_max_*

Attributes:

delay_max_fall(arc) Returns the largest falling delay


through the arc across all concurrent MMMC views. You can use -
index to return the value for a specific view.

delay_max_rise(arc) Returns the largest rising delay through


the arc across all concurrent MMMC views. You can use -index to
return the value for a specific view.
.
.
.

delay_max_fall(port) Returns the maximum falling delay. You


can use -index to return the value from a specific analysis
view.

delay_max_rise(port) Returns the maximum rising delay. You


can use -index to return the value from a specific analysis
view.

COPYRIGHT ©2018 CADENCE DESIGN SYSTEMS, INC.


ALL RIGHTS RESERVED. 15
RAK - Common UI: Using get_db for Database Access

1. Example of displaying the help information for an object type


innovus> help -obj base_cell
Obj_type base_cell: base cell
Attributes:
aocv_weight: (double) # Returns the AOCV stage
weight specified for the cell either explicitly in the
library or as a user-defined library attribute
area: (area) # The area of the cell
Description: All the base_cells from .lib,
Verilog stubs, LEF or OA.
.
.
(and so on)

2. Example of displaying the help information for an attribute

innovus> help –attribute slack_max


Attributes:
slack_max(pin) Returns the worst slack across all
concurrent MMMC views for Setup-style late data path
checks. You can use -index to return the value for a
specific view and/or clock.
slack_max(port) Returns the worst slack across all
concurrent MMMC views for Setup-style late data path
checks. You can use -index to return the value for a
specific view and/or clock.

To display the detailed help of an attribute of a particular object type


innovus> help pin slack_max
Attribute: slack_max (on obj_type: pin)
Description: Returns the worst slack across
all concurrent MMMC views for Setup-style late data
path checks. You can use -index to return the value
for a specific view and/or clock.
category:
default:
is_computed: true

COPYRIGHT ©2018 CADENCE DESIGN SYSTEMS, INC.


ALL RIGHTS RESERVED. 16
RAK - Common UI: Using get_db for Database Access

is_settable: false
is_user_defined: false
skip_in_db: false
type: double

3. Example of displaying the help information for a command in innovus


innovus> help place_design
Command: place_design:

Usage: place_design [-help] [-clock_gate_recloning] [-


incremental] [-no_pre_place_opt]

-help # Prints out


the command usage
-clock_gate_recloning # Clock Tree
declone/clone (bool, optional)
-incremental #
Incremental placement (bool, optional)
-no_pre_place_opt # Disable
pre-place optimization (bool, optional)

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>

COPYRIGHT ©2018 CADENCE DESIGN SYSTEMS, INC.


ALL RIGHTS RESERVED. 17
RAK - Common UI: Using get_db for Database Access

Module 6: Getting attribute definition parameters


Objective: To introduce attribute definition parameters using get_db.

Introducing attribute definition


get_db can be used to obtain the attribute definition of any attribute. They fall in the “attribute”
obj_type. To get started, create a query for an attribute on the root level.

innovus> get_db attributes


attribute:obj_type/accept_user_defined_attributes
attribute:obj_type/attributes attribute:obj_type/help
attribute:obj_type/name
.
.
attribute:design/analysis_views attribute:design/area
attribute:design/bbox
.
.
(and so on)

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).

innovus> get_db attribute:base_cell/area .*


Object: attribute:base_cell/area
base_name: area
category: {}
check_function: {}
compute_function: {}
data_type: area
default_value: {}
help: {The area of the cell}

COPYRIGHT ©2018 CADENCE DESIGN SYSTEMS, INC.


ALL RIGHTS RESERVED. 18
RAK - Common UI: Using get_db for Database Access

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 learn more about the individual attribute definition parameter,

innovus> help -obj attribute

To summarize,

get_db attribute:<obj_type>/attribute .*

COPYRIGHT ©2018 CADENCE DESIGN SYSTEMS, INC.


ALL RIGHTS RESERVED. 19
RAK - Common UI: Using get_db for Database Access

Module 7: Finding out the timing related information for a


relevant object type
Objective: To introduce the get_db functionality to get the timing information
on a relevant object type.

Reviewing examples of timing attributes on a clock

innovus> get_db clocks


clock:asic_entity/func_slow_max/my_clk2x
clock:asic_entity/func_slow_max/my_clk
clock:asic_entity/func_slow_max/pclk … (and so on)

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

innovus> get_db clock:asic_entity/func_slow_max/my_clk2x .period


4.0

b. To get source latency related values,

innovus> get_db clock:asic_entity/func_slow_max/my_clk2x


.source_latency_early_fall_max
no_value

This returns a specific insertion delay specified by an explicit set_clock_latency on the


clock.

To find all the source latency related attributes, a wildcard operator (*) can be used after
source_latency_

innovus> get_db clock:asic_entity/func_slow_max/my_clk2x


.source_latency_*
Object: clock:asic_entity/func_slow_max/my_clk2x
source_latency_early_fall_max: no_value
source_latency_early_fall_min: no_value

COPYRIGHT ©2018 CADENCE DESIGN SYSTEMS, INC.


ALL RIGHTS RESERVED. 20
RAK - Common UI: Using get_db for Database Access

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.

Reviewing examples of timing attributes on a pin

innovus> get_db pins


pin:asic_entity/coreinst/ks_core1/amba_dsp1/mcore0/ahb0/r_reg_hcache/D
FF/CK
pin:asic_entity/coreinst/ks_core1/amba_dsp1/mcore0/ahb0/r_reg_hcache/D
FF/D
.
.
.
(and so on)

Use the first DPO and make a query for the related attributes.

a. To find the arrival time related attributes (arrival_*) on the pin,


innovus> get_db
pin:asic_entity/coreinst/ks_core1/amba_dsp1/mcore0/ahb0/r_reg_hca
che/DFF/CK .arrival_*
Object:
pin:asic_entity/coreinst/ks_core1/amba_dsp1/mcore0/ahb0/r_reg_hca
che/DFF/CK
arrival_max_fall: NC
arrival_max_rise: NC
.
.

COPYRIGHT ©2018 CADENCE DESIGN SYSTEMS, INC.


ALL RIGHTS RESERVED. 21
RAK - Common UI: Using get_db for Database Access

.
arrival_sigma_min_rise: NC
arrival_window: NC

Observe that the obtained values indicate NC  Not Computed.

Why does it display NC and not the values directly?


 Attributes that require significant computation will take time for the calculation of their
return values. For a larger design, the computations will take a very long time. Thus, to limit
the computation to the specific attributes of a particular DPO, the NC feature is introduced.

There are two ways to see the computed value of these attributes.

i. Make a query using the “-computed” feature

innovus> get_db -computed


pin:asic_entity/coreinst/ks_core1/amba_dsp1/mcore0/ahb0/r_r
eg_hcache/DFF/CK .arrival_*
Object:
pin:asic_entity/coreinst/ks_core1/amba_dsp1/mcore0/ahb0/r_r
eg_hcache/DFF/CK
arrival_max_fall: 21.466
arrival_max_rise: 17.466
.
.
.
my_clk {max_r_f 17.466 NA min_r_f 17.466 NA}
my_clk {max_r_f NA 21.466 min_r_f NA 21.466}
}

ii. Make queries for individual 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

COPYRIGHT ©2018 CADENCE DESIGN SYSTEMS, INC.


ALL RIGHTS RESERVED. 22
RAK - Common UI: Using get_db for Database Access

b. To find the slack related attributes (slack_*) on the pin


innovus> get_db
pin:asic_entity/coreinst/ks_core1/amba_dsp1/mcore0/ahb0/r_reg_hca
che/DFF/CK .slack_max
inf

c. Create a query for the input slew (input_slew_*), network latency


(network_latency_*), and source latency (source_latency_*) related attributes in the
same way.

Reviewing examples of timing attributes on a port

innovus> get_db ports


{port:asic_entity/bist_fh[2]} {port:asic_entity/bist_fh[1]}
{port:asic_entity/bist_fh[0]}.

(and so on)

Use the first DPO and make a query for the related attributes.

a. To find the arrival time related attributes (arrival_*) on the port,


innovus> get_db port:asic_entity/BG_scan_out_3
.arrival_max_fall
2.684

b. To find the slack related attributes (slack_*) on the pin


innovus> get_db port:asic_entity/BG_scan_out_3 .slack_max
inf

c. Create a query for the input slew (input_slew_*), network latency


(network_latency_*, and source latency (source_latency_*) related attributes
in the same way.

COPYRIGHT ©2018 CADENCE DESIGN SYSTEMS, INC.


ALL RIGHTS RESERVED. 23
RAK - Common UI: Using get_db for Database Access

Module 8: Defining attributes and parameters


Objective: To introduce get_db’s functionality to set up an attribute on a
relevant object type and define the required parameters.

In this section, you will learn to use the get_db functionality to define an attribute.

Usage Model:

innovus> define_attribute [-help] <attribute_name> -category


<category> [-check_function <check_function>] [-compute_function
<compute_function>] -data_type [-default <default>] [-help_string
<description>] [-hidden] [-obj_type <object_type>] [-obsolete] [-
quiet] [-set_function <set_function>] [-skip_in_db] [-system]

To know more about the individual parameters in defining the attribute, refer to the manual page.

innovus> man define_attribute

Reviewing examples of defined attributes on a clock object.

innovus> define_attribute my_attribute -category cts -data_type {bool}


-default false -help_string This_is_a_user_defined_attribute -obj_type
clock

To check the attribute definition parameters of this attribute.

innovus> get_db attribute:clock/my_attribute .*


Object: attribute:clock/my_attribute
base_name: my_attribute
category: cts
data_type: bool
default_value: false
help: This_is_a_user_defined_attribute
indices:
is_computed: false
is_obsolete: false
is_settable: true

COPYRIGHT ©2018 CADENCE DESIGN SYSTEMS, INC.


ALL RIGHTS RESERVED. 24
RAK - Common UI: Using get_db for Database Access

is_user_defined: true
name: clock/my_attribute
obj_type: attribute
parent: obj_type:clock
skip_in_db: false

COPYRIGHT ©2018 CADENCE DESIGN SYSTEMS, INC.


ALL RIGHTS RESERVED. 25

Anda mungkin juga menyukai