GENUS Synthesis using SCRIPTS

In our earlier tutorials [GENUS Synthesis With Constraints, GENUS Synthesis Without Constraints] on synthesis of Verilog files using Cadence Genus tool, we have seen how synthesis can be performed with or without timing constraints. But it is very painful to perform synthesis operation by executing commands one by one in the command prompt. Thus industry practice is to use the SCRIPT files for every major process like synthesis, logic equivalence checking or implementation. Here, we will discuss how to perform GENUS Synthesis using SCRIPTS.

The Tool Command Language (TCL) format is used to write the commands in a file that is understood by the tool. The command to run the GENUS Synthesis using SCRIPTS is

genus -legacy_ui -f genus_script.tcl

Here, example of two type of script file is given which are genus_script.tcl and genus_script_dft.tcl

genus_script.tcl – this file is written to synthesis the Verilog file IIR_LPF_direct1 which is implementation of IIR low pass filter. Here, in this file many sub-modules are present. Thus in the elaborate command we have to set the TOP Module which is IIR_LPF_direct1. Here, some of the comments are commented by # symbol, readers are advised to check function each commands.

set_attribute init_lib_search_path/home/guests/phd/shir_16/libraries
set_attribute init_hdl_search_path/home/guests/phd/shir_16/Synthesis
set_attribute library tsl18fs120_scl_ff.lib
read_hdl IIR_LPF_direct1.v
elaborate IIR_LPF_direct1 #Name of the Top Module
read_sdc /home/guests/phd/shir_16/libraries/IIR_LPF_direct1.sdc
#set_attribute syn_generic_effort medium
#set_attribute syn_map_effort medium
#set_attribute syn_opt_effort medium
#syn_generic
#syn_map
#syn_opt
set_attr tns_opto true
#set_attr boundary_opto 1
#set_attribute hdl_preserve_unused_register true
#set_attribute delete_unloaded_seqs false
#set_attribute optimize_constant_0_flops false
#set_attribute optimize_constant_1_flops false
#set_attribute prune_unsued_logic false
synthesize -to_mapped -effort medium
write_hdl > IIR_LPF_direct1.v
write_sdf > IIR_LPF_direct1.sdf
#write_sdf -timescale ns -nonegchecks -recrem split -edges check_edge > delays.sdf
write_sdc > IIR_LPF_direct1.sdc
report_units
report_units > design_units
report_gates
report_gates > design_gates
report_power
report_power > design_power
report_timing
report_timing > design_timing
report_qor
report_qor > design_qor
check_design
gui_show

genus_script_dft.tcl – This file synthesizes the IIR_LPF_direct1.v file with the MUX based scan chains which will be discussed later in the future posts.

set_attribute init_lib_search_path /home/guests/phd/shir_16/libraries
set_attribute init_hdl_search_path /home/guests/phd/shir_16/Synthesis_DFT
set_attribute library tsl18fs120_scl_ff.lib
read_hdl IIR_LPF_direct1.v
elaborate IIR_LPF_direct1
read_sdc /home/guests/phd/shir_16/libraries/IIR_LPF_direct1.sdc
set_attr dft_scan_style muxed_scan
set_attr dft_prefix dft_
define_shift_enable -name SE -active high -create_port SE
check_dft_rules
#set_attribute syn_generic_effort medium
syn_generic
set_attribute syn_map_effort medium
syn_map
set_attribute syn_opt_effort medium
syn_opt
check_dft_rules
set_attr dft_min_number_of_scan_chains 1 /designs/counter
define_scan_chain -name top_chain -sdi scan_in -sdo scan_out -create_ports
connect_scan_chains -auto_create_chains
syn_opt -incr
report_scan_chains
write_dft_atpg -library /home/guests/phd/shir_16/libraries/tsl18fs120_scl_ff.v
write_hdl > IIR_LPF_direct1_netlist_dft.v
write_sdc > IIR_LPF_direct1_sdc_dft.sdc
write_sdf -nonegchecks -edges check_edge -timescale ns -recrem split > IIR_LPF_direct1_dft.sdf
write_scandef > IIR_LPF_direct1_scanDEF.scandef
Shopping Basket