Cadence Genus Command Guide
Cadence Genus Command Guide
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 .








