0% found this document useful (1 vote)
280 views9 pages

Cadence Genus Command Guide

Uploaded by

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

Cadence Genus Command Guide

Uploaded by

nevem81163
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as ODT, PDF, TXT or read online on Scribd
  • Introduction and Commands
  • Documentation Conventions and Log Files
  • Library Settings and Usage
  • Running Scripts in Genus
  • Reading HDL Files

To invoke the cadence tool, follow the below steps

csh

source /home/install/cshrc

USEFUL COMMANDS TO HANDLE THE WARNING / ERROR

Assume there is an error of TUI-202 , we can explore it using

help TUI-202

vls -a TUI-202

report_messages – This command gives the detailed information for each message issued in your
current Genus run including the number of times a particular errors or warning has been appeared as
below. By default this command displays only the messages which were not reported till last report. Use -all
option to display all the messages
We can also use man command as below. It displays in detail as well as in new window

==> The help command displays in the script itself whereas man takes exclusive window to display it

==>Specify a section number with man command to look for the command or attribute information in the
specific section of the on-line manual.
Commands are in section 1, attributes are in section 2, and messages are in section 3 of the on-line
manual. In the absence of section number, man will search through sections 1, 2, 3 (in this sequence) and
display the first matching manual page.
This is useful in cases where both commands and attributes exist with the same name.
CADENCE DOCUMENTATION CONVENTION

CREATION OF LOG FILE

==> The .log file contains the normal logging output, the .cmd file contains the TCL commands that were
executed.

– If you specify two arguments, such as -log "a b", Genus uses these names as the file names without
adding any extension. If you specify -log "mylog mycmd", Genus creates the mylog and mycmd files.

– If you specify one argument, Genus uses it as the prefix for the log and command files. If you specify -
log test, Genus creates the [Link] and [Link] files.

– If the prefix has a period in it, the last extension is stripped off for the .cmd usage. For example, -log
[Link] will result in [Link] and [Link], and -log [Link] will result
in [Link] and [Link].

If you do not specify the -log option, Genus creates the [Link] and [Link] files by default.
The count will be incrementing for each session like log1 , log2 , cmd1 , cmd2

You can prevent creation of a file by using /dev/null. For example, -log "[Link]
/dev/null" only creates [Link].
Customize the log file within a Genus session through the stdout_log attribute:

genus:root: 1> set_db stdout_log log_file_name

If a log file already exists, the new log file will have either the number “ 1” appended to it, or the number will
be incremented with “1”.

•To customize the command file name, use the command_log attribute within a Genus session. The
following example changes the default name of [Link] to genus_command_list.txt:

genus:root: 2> set_db command_log genus_command_list.txt

If a command file already exists, the new command file will have the number “ 1” appended to it, or the
number will be incremented with “1”.

==> To control the amount of information written in the output logfiles, use the following command:

genus:root: 6> set_db information_level value

The value can be range between 0 and 9. For debugging the value should be 9 and the
recommended value in general is 6

All commands in the Genus shell output their data to the standard output device ( stdout). To save a
record of the data produced, you can redirect the command’s output to a file. This redirection has
the same form as the standard UNIX redirection:

•One greater-than sign (>) writes output to the specified file, overwriting any existing file.

•Two greater-than signs (>>) appends output to an existing file, or creates a new file if none exists.

The following example redirects the output from a timing report into a file:
genus:root: 20> report_timing > [Link]
This example appends the timing report to an existing file:
genus:root: 21> report_area >> [Link]

SPECIFYING LIBRARIES

If your design requires multiple libraries, you must load them simultaneously. Genus uses the operating and
nominal conditions, thresholds, and units from the first library specified. If you specify libraries sequentially,
Genus uses only the last one loaded.

In the following example Genus uses only lib_name2.lib as the target library:
set_db library lib_name.lib
set_db library lib_name2.lib
To specify multiple libraries using the library variable:

[Link] the library variable to include both libraries:


set library {lib_name1.lib

lib_name2.lib}

When listing files, use the Tcl list syntax: {entry1 entry2 ...}.

[Link] the library attribute to $library:


set_db library $library

To specify multiple libraries by specifying all of the library names:


•Type both libraries with the set_db command, as shown:
set_db library { lib_name.lib lib_name2.lib }

Preventing the Use of Specific Library Cells

You can specify individual library cells that you want to be excluded during synthesis with
the avoid attribute:
set_db cell_name(s) .avoid {true | false}
•The following example prevents the use of cells whose names begin with snl_mux21_prx and all cells
whose names end with nsdel:
set_db { lib_cell:nlc18_custom/snl_mux21_prx* } .avoid true
set_db { lib_cell:nlc18/*nsdel } .avoid true

•The following example prevents the use of the arithmetic shift right ChipWare component
(CW_ashiftr):
set_db hdl_component:CW/CW_ashiftr .avoid true

Forcing the Use of Specific Library Cells

You can instruct Genus to use a specific library cell even if the library’s vendor has explicitly marked the cell
as “don’t use” or “don’t touch”. The following sequential steps illustrate how to force this behavior:
[Link] the preserve attribute to false on the particular library cell:
set_db libcell_name .preserve false

[Link], set the avoid attribute to false on the same cell:


set_db libcell_name .avoid false

RUNNING THE SCRIPTS IN GENUS

genus is a Tcl-based tool and therefore you can create scripts to execute a series of commands instead of
typing each command individually. The entire interface is accessible through Tcl and true Tcl syntax and
semantics are supported. You can create the script(s) in a text editor and then run them in one of two ways:

•From the UNIX command line, use the -f option with the genus command to start Genus and run your
scripts immediately:
unix> genus -f script_file1 -f script_file2 ...

– Include -f switch as many number of times for the scrip files to run

•You can simultaneously invoke Genus as a background process and execute a script by typing the
following command from the UNIX command line:
unix> genus < script_file_name &

•If Genus is already running, use the include or source command followed by the names of the
scripts:
genus:root: 1> include script_file1 script_file2 ...
or:
genus:root: 2> source script_file1 script_file2 ...

READ HDL FILES

Use the -mixvlog option to ask Genus to automatically read Verilog source file in Verilog1995,
Verilog2001, or SystemVerilog standard languages, according to the file extension. It will also consider any
other extension as specified by the hdl_set_vlog_file_extension command.
The default file extensions for Verilog standards are as follows: Verilog 1995: .v95, .v95p Verilog
2001: .v, .v2k, .vp System Verilog: .sv, .svp
Examples:

read_hdl -mixvlog bot.v [Link]

The above command will automatically parse bot.v in v2001 format and [Link] in System Verilog
format.
read_hdl -mixvlog -f optionfile

Another example with hdl_set_vlog_file_extension

hdl_set_vlog_file_extension -v2001 .v1

hdl_set_vlog_file_extension -sv .v2 .v3

read_hdl -mixvlog bot.v1 test.v2

The above command will automatically parse bot.v1 in v2001 language and test.v2 in System
Verilog.

ecifying the HDL Language Mode

•Specify the default language version to read HDL designs using the following attribute:
set_db hdl_language {v2001 | v1995 | sv | vhdl}

Default: v2001
This attribute ensures that only HDL files that conform to the appropriate version are parsed
successfully.
Using the -language option with the

read_hdl command will override the setting of

the hdl_language attribute.

By default, Genus reads Verilog, not VHDL. When reading in Verilog, by default Genus reads Verilog-2001
not Verilog-1995. When reading VHDL, by default Genus reads VHDL-1993, not VHDL-1987.

n Genus, a clock waveform is a periodic signal with one rising edge and one falling edge per period. Clock
waveforms may be applied to design objects such as input ports, clock pins of sequential cells, external
clocks (also known as virtual clocks), mapped cells, or hierarchical boundary pins.

•To define clocks use the create_clock (SDC) command.

Genus uses picoseconds and femtofarads as units.

It does not use nanoseconds and picofarads.

You can group clocks that are synchronous to each other, allowing timing analysis to be performed between
these clocks. This group of clocks is called a clock domain. If a clock domain is not specified, Genus will
assume all the clocks are in the same domain.
By default, Genus assigns clocks to domain_1, but you can create your own domain name with the -
domain argument to create_clock.

The following example demonstrates how to create two different clocks and assign them to two separate
clock domains:
create_clock -domain domain1 -name clk1 -period 720 [get_db ports *SYSCLK]
create_clock -domain domain2 -name clk2 -period 720 [get_db ports *CLK]
To remove clocks, use the delete_obj command. If you have defined a clock and saved the object variable,
for example as clock1, you can remove the clock object as shown in the following example:
delete_obj $clock1
The following example shows how to remove the clock if you have not saved the clock object as a variable:
delete_obj [get_db clocks clock_name]
When a clock object is removed, external delays that reference it are removed, and timing exceptions
referring to the clock are removed if they cannot be satisfied without the clock.

Common questions

Powered by AI

In Genus, clock waveforms, which are periodic signals with rising and falling edges per period, are defined using the create_clock command. Clocks can be managed by grouping them into clock domains with the -domain argument; without specification, Genus defaults all clocks into domain_1. For example, 'create_clock -domain domain1 -name clk1 -period 720 [get_db ports *SYSCLK]' assigns a clock to domain1. Synchronous clocks are grouped for coherent timing analysis within these domains, facilitating better design timing management .

HDL language modes in Genus are specified using the set_db hdl_language attribute, which can be set to v2001, v1995, sv, or vhdl, with v2001 as the default for Verilog. The command ensures only HDL files that conform to the specified version are parsed. This setting can be overridden using the -language option with the read_hdl command. Genus defaults to Verilog-2001 for Verilog and VHDL-1993 for VHDL unless specified otherwise .

In Genus, multiple libraries can be specified simultaneously by defining a library variable with Tcl list syntax and setting it with set_db: 'set library {lib_name1.lib lib_name2.lib}' followed by 'set_db library $library'. Listing libraries by name directly in the set_db command is another method: 'set_db library { lib_name.lib lib_name2.lib }'. When libraries are specified sequentially, Genus only uses the last library loaded, ignoring previously specified ones. This can affect which library attributes are applied to the synthesis process .

To force Genus to use specific library cells marked as 'don't use' or 'don't touch', you must perform two steps: first, set the preserve attribute to false for the cell using 'set_db libcell_name .preserve false'; second, set the avoid attribute to false with 'set_db libcell_name .avoid false'. These commands override the restrictions set by the library vendor, allowing Genus to include the cell in the synthesis process .

Output from Genus commands can be redirected using standard UNIX redirection syntax. A single greater-than sign ('>') redirects output to a specified file, overwriting any existing content, like 'report_timing > timing.rpt'. Using two greater-than signs ('>>') appends output to an existing file or creates a new file if none exists, for example, 'report_area >> design.rpt'. This distinction is crucial for managing file content and ensuring that necessary output data is preserved or refreshed as desired .

Scripts in Genus can be executed using Tcl scripts. From a UNIX command line, scripts can be run immediately with the -f option: 'genus -f script_file1 -f script_file2'. Genus can also be run as a background process with script execution using 'genus < script_file_name &', allowing Genus to run independently while completing tasks specified in scripts. If Genus is already running, the include or source command can be used: 'include script_file1 script_file2' or 'source script_file1 script_file2' .

To explore specific errors or warnings in Genus, you can use the command 'help TUI-202' for a specific error, such as TUI-202. The 'report_messages' command provides detailed information on each message issued in the current Genus run, including the frequency of a particular error or warning. By default, it displays newly reported messages only, but using the -all option shows all messages. This helps in understanding the context and frequency of errors or warnings .

In Genus, log files and command files are generated based on user inputs using the -log option. If you specify two file names, like -log "a b", Genus uses these names without adding extensions. Specifying one name, such as -log test, results in the creation of test.log and test.cmd files. If the name includes a period, the last extension is stripped for the .cmd file, so -log out.log creates out.log and out.cmd. By default, if the -log option isn't used, Genus creates genus.log and genus.cmd files. Users can prevent specific files from being created using /dev/null, as in -log "my.log /dev/null" to only produce my.log .

The level of detail in output log files in Genus is controlled with the 'set_db information_level value' command, where 'value' ranges from 0 to 9. A value of 9 is used for debugging purposes, providing the most detailed information, while a recommended general setting is 6, which balances detail and readability. Adjusting this value helps users obtain the necessary level of information according to their needs and the context of their usage .

Specific library cells can be excluded from being used during Genus synthesis by setting the avoid attribute for those cells to true. For instance, to exclude cells with names starting with 'snl_mux21_prx' or ending with 'nsdel', use commands like 'set_db { lib_cell:nlc18_custom/snl_mux21_prx* } .avoid true'. This configuration ensures that Genus will not use these cells, which may be necessary if they fail to meet certain design constraints or have been superseded by better alternatives .

To invoke the cadence tool, follow the below steps
csh
source /home/install/cshrc
USEFUL COMMANDS TO HANDLE THE WARNING / ERR
We can also use man command as below. It displays in detail as well as in new window
            
==> The help command displa
CADENCE DOCUMENTATION CONVENTION
CREATION OF LOG FILE
==> The .log file contains the normal logging output, the .cmd file con
Customize the log file within a Genus session through the
 
    stdout_log
 
    attribute:
 
 
genus:root: 1> set_db stdout_
genus:root: 21> report_area  >> design.rpt
SPECIFYING LIBRARIES
If your design requires multiple libraries, you must load the
set_db { lib_cell:nlc18/*nsdel } .avoid true 
•The following example prevents the use of the arithmetic shift right ChipWare
or:
genus:root: 2> source script_file1 script_file2 ...
READ HDL FILES
Use the
 
    -mixvlog
 
    option to ask Genus to au
Using the -language option with    the 
read_hdl command will override the setting of 
the hdl_language attribute.
By default

You might also like