📄 command.log
字号:
#@ }#@ #@ define_proc_attributes close_mw_lib -hide_body -info " Closes the milkyway library " -define_args {{-save "Save open cels" "" boolean {optional}} {"" "libraries to be closed" "lib list" list {hidden optional}}}#@ #@ ###############################################################################@ # PROCEDURE: execute_command_and_create_cel_from_scratch #@ # ABSTRACT: This procedure executes the given command and creates the CEL#@ # from scratch after executing this command.#@ ###############################################################################@ proc execute_command_and_create_cel_from_scratch {org_cmd_name args} {#@ global mw_create_cel_force#@ global mw_enable_auto_cel#@ global mw_force_auto_cel#@ #@ set lib [current_mw_lib]#@ #@ # If no MW lib, design is not from MW. Execute the original command #@ # and return.#@ if {$lib == ""} {#@ return [eval $org_cmd_name $args]#@ }#@ #@ # Get values of few variables.#@ set incr_mode $mw_create_cel_force#@ set mw_create_cel_force TRUE#@ #@ # Get auto cel mode, disable it temporarily if enabled.#@ set auto_cel_mode $mw_enable_auto_cel#@ set mw_enable_auto_cel FALSE#@ #@ # Check if the already existing CEL is auto-CEL.#@ set auto_cel 0#@ if {[is_cel_auto_cel]} {#@ set auto_cel 1#@ } elseif {![get_top_cel_mwid]} {#@ set auto_cel 1#@ }#@ #@ #@ # Run the original command, if not successful restore the incr_mode #@ # variable and return. No CEL is created.#@ if {![eval $org_cmd_name $args]} {#@ set mw_create_cel_force $incr_mode#@ set mw_enable_auto_cel $auto_cel_mode#@ return 0#@ }#@ #@ # Restore auto_cel mode#@ set mw_enable_auto_cel $auto_cel_mode#@ #@ # Now create auto or real CEL depending on what the original CEL was.#@ if {$auto_cel == "1"} {#@ # Force creation of auto-CEL, since commands other than read_def/pdef#@ # do not decouple CEL from DC.#@ #@ set mw_force_auto_cel TRUE#@ set cmd [format {save_mw_cel -auto}] #@ } else {#@ if [get_top_cel_mwid] {#@ set cmd [format {save_mw_cel -create}] #@ echo "Information: Command not supported by incr. update or write-thru."#@ echo " Creating new CEL from scratch, old CEL will be closed."#@ }#@ }#@ #@ # Create the Auto CEL or normal CEL from scratch.#@ if {![uplevel #0 $cmd]} {#@ set mw_create_cel_force $incr_mode#@ set mw_force_auto_cel FALSE#@ return 0#@ }#@ #@ set mw_create_cel_force $incr_mode#@ set mw_force_auto_cel FALSE#@ return 1#@ }#@ #@ define_proc_attributes execute_command_and_create_cel_from_scratch -hidden -hide_body#@ #@ ###############################################################################@ # PROCEDURE: read_def#@ # ABSTRACT: Wrapper around read_def to handle incremental update properly#@ # if MW based read_def is used, bypass the wrapper#@ # enable_milkyway_def_reader_writer must be TRUE and use_pdb_lib_format must#@ # be false for MW read_Def to be run, use wrapper if either condition fails#@ ###############################################################################@ rename -force dc_read_def org_read_def#@ icc_hide_cmd org_read_def#@ proc dc_read_def args {#@ parse_proc_arguments -args $args ra#@ #@ return [eval execute_command_and_create_cel_from_scratch "org_read_def" $args]#@ }#@ #@ define_proc_attributes dc_read_def -hide_body -info " Read a def file " -define_args {{-design "name of design for which clusters are to be read" "" string {optional}} {-quiet "do not print out any warnings" "" boolean {optional}} {-verbose "print out more warnings" "" boolean {optional}} {-allow_physical_cells "allow physical cells" "" boolean {optional}} {-allow_physical_ports "allow physical ports" "" boolean {optional}} {-allow_physical_nets "allow physical nets" "" boolean {optional}} {-skip_signal_nets "skip signal nets" "" boolean {optional}} {-incremental "incremental" "" boolean {optional}} {-enforce_scaling "enforce_scaling" "" boolean {optional}} {-move_bounds "move bounds" "" boolean {optional}} {"" "input def file names" "input_def_file_name" string {required}}}#@ #@ ###############################################################################@ # PROCEDURE: read_pdef#@ # ABSTRACT: Wrapper around read_pdef to handle incremental update properly#@ ###############################################################################@ rename -force read_pdef org_read_pdef#@ icc_hide_cmd org_read_pdef#@ proc read_pdef args {#@ parse_proc_arguments -args $args ra#@ return [eval execute_command_and_create_cel_from_scratch "org_read_pdef" $args]#@ }#@ #@ define_proc_attributes read_pdef -hide_body -info " Read a pdef file " -define_args {{-design "name of design for which clusters are to be read" "" string {optional}} {-quiet "do not print out any warnings" "" boolean {optional}} {-verbose "print out more warnings" "" boolean {optional}} {-dont_update_core_area "do not overwrite the core area" "" boolean {optional}} {-allow_physical_cells "allow physical cells" "" boolean {optional}} {-allow_physical_ports "allow physical ports" "" boolean {optional}} {-skip_signal_nets "skip signal nets" "" boolean {optional}} {"" "input pdef file names" "file_name" string {required}}}#@ #@ #@ ###############################################################################@ # PROCEDURE: uniquify#@ # ABSTRACT: Wrapper around uniquify to handle incremental update properly#@ ###############################################################################@ rename -force uniquify org_uniquify#@ icc_hide_cmd org_uniquify#@ proc uniquify args {#@ parse_proc_arguments -args $args ra#@ return [eval execute_command_and_create_cel_from_scratch "org_uniquify" $args]#@ }#@ #@ define_proc_attributes uniquify -hide_body -info " uniquify multiply instantiated designs" -define_args {{-force "force the uniquify_naming_style on all designs" "" boolean {optional}} {-base_name "use this as the base name for new design names instead of original design name" "" string {optional}} {-cell "force generation of new designs for these cells" "" list {optional}} {-reference "force generation of new designs for all cells referencing this design" "" string {optional}} {-new_name "use this name for the new design of the given cell" "" string {optional}}#@ }#@ #@ ###############################################################################@ # PROCEDURE: group#@ # ABSTRACT: Wrapper around group to handle incremental update properly#@ ###############################################################################@ rename -force group org_group#@ icc_hide_cmd org_group#@ proc group args {#@ parse_proc_arguments -args $args ra#@ return [eval execute_command_and_create_cel_from_scratch "org_group" $args]#@ }#@ #@ define_proc_attributes group -hide_body -info " create new hierarchy" -define_args {{-except "cells not to be included in the group" "" list {optional}}#@ {-design_name "name of design created for new hierarchy" "" string {optional}}#@ {-cell_name "name of cell created for new hierarchy" "" string {optional}}#@ {-logic "group any combinational elements" "" boolean {optional}}#@ {-pla "group any PLA elements" "" boolean {optional}}#@ {-fsm "group all elements part of a finite state machine" "" boolean {optional}}#@ {-hdl_block "name of hdl_block to group" "" string {optional}}#@ {-hdl_bussed "group all bussed gates under this block" "" boolean {optional}}#@ {-hdl_all_blocks "group all hdl blocks under this block" "" boolean {optional}}#@ {-soft "set the group_name attribute" "" boolean {optional}}#@ {"" "cells to be included in the group" "" list {optional}}}#@ #@ ###############################################################################@ # PROCEDURE: copy_design#@ # ABSTRACT: Wrapper around copy_design to handle incremental update properly#@ ###############################################################################@ rename -force copy_design org_copy_design#@ icc_hide_cmd org_copy_design#@ proc copy_design args {#@ parse_proc_arguments -args $args ra#@ return [eval execute_command_and_create_cel_from_scratch "org_copy_design" $args]#@ }#@ #@ define_proc_attributes copy_design -hide_body -info " copy_design" -define_args {{"" "List of designs to be copied" "design_list" list {required}}#@ {"" "Name of new design or target file" "target_name" string {required}}}#@ #@ ###############################################################################@ # PROCEDURE: create_design#@ # ABSTRACT: Wrapper around create_design to handle incremental update properly#@ ###############################################################################@ rename -force create_design org_create_design#@ icc_hide_cmd org_create_design#@ proc create_design args {#@ parse_proc_arguments -args $args ra#@ return [eval execute_command_and_create_cel_from_scratch "org_create_design" $args]#@ }#@ #@ define_proc_attributes create_design -hide_body -info " Creates a design in dc_shell memory" -define_args {{"" "name of the design to create" "<design_name>" string {required}}#@ {"" "name of file for design; optional" "<file_name>" string {optional}}}#@ #@ ###############################################################################@ # PROCEDURE: reset_design#@ # ABSTRACT: Wrapper around reset_design to handle incremental update properly#@ ###############################################################################@ rename -force reset_design org_reset_design#@ icc_hide_cmd org_reset_design#@ proc reset_design args {#@ parse_proc_arguments -args $args ra#@ return [eval execute_command_and_create_cel_from_scratch "org_reset_design" $args]#@ }#@ #@ ###############################################################################@ # PROCEDURE: rename_design#@ # ABSTRACT: Wrapper around rename_design to handle incremental update properly#@ ###############################################################################@ rename -force rename_design org_rename_design#@ icc_hide_cmd org_rename_design#@ proc rename_design args {#@ parse_proc_arguments -args $args ra#@ return [eval execute_command_and_create_cel_from_scratch "org_rename_design" $args]#@ }#@ #@ define_proc_attributes rename_design -hide_body -info " rename_design" -define_args {{"" "List of designs to be renamed" "design_list" list {required}}#@ {"" "Name of new design or target file" "target_name" string {required}}}#@ #@ }#@ #@ ###############################################################################@ # If we are in icc_shell (i.e. Galileo) then#@ # load the procedures to switch between DC and Milkyway collections.#@ # Set the default to MW collection unless otherwise specified.#@ ###############################################################################@ if { [string match -nocase {*icc_shell*} $synopsys_program_name] } {#@ # load the procedures that switch between DC and MW collections#@ source $synopsys_root/auxx/syn/collection_procs.tcl#@ #@ set CS mw #@ #@ # see if the user wants DC#@ if {! [catch {getenv USE_DC_COLLECTIONS_ONLY}] &&#@ [getenv USE_DC_COLLECTIONS_ONLY] } {#@ set CS dc #@ } #@ #@ # set the collection source now#@ redirect /dev/null {#@ if {[catch {set_collection_mode -handle $CS}]} {#@ catch {set_collection_option -handle $CS}#@ } #@ } #@ #@ unset CS#@ }#@ #@ ###############################################################################@ # procedure for route command #@ # echo the command to a temp tcl file for seperate process to pick up#@ ###############################################################################@ if { [string match -nocase {*icc_shell*} $synopsys_program_name] } {#@ rename -force route org_route#@ icc_hide_cmd org_route#@ proc route args {#@ set route_cmd_file_name ".route_cmd.tcl"#@ set route_cmd_temp_file_name ".route_cmd.tcl.temp"#@ set fp [open $route_cmd_file_name "w"]#@ set route_cmd [concat "sep_proc_route " $args " -child"]#@ puts $fp $route_cmd#@ close $fp#@ #@ uplevel #0 rename -force route route_temp_proc#@ uplevel #0 rename -force org_route route#@ set status [ uplevel #0 route $args ]#@ uplevel #0 rename -force route org_route#@ uplevel #0 rename -force route_temp_proc route#@ #@ if { [info exist status ] == 1 } {#@ return $status#@ }#@ return #@ }#@ }#@ #@ ###############################################################################@ # Tcl Command: set_ignore_cell#@ # Description: Load the command only in IC Compiler (icc_shell)#@ ###############################################################################@ if { [string match -nocase {*icc_shell*} $synopsys_program_name] } {#@ source $synopsys_root/auxx/syn/psyn/ideal_cell.tcl.e#@ }#@ #@ ###############################################################################@ # Tcl Command: check_physical_design#@ # Description: Load the command only in IC Compiler (icc_shell)#@ ###############################################################################@ if { [string match -nocase {*icc_shell*} $synopsys_program_name] } {#@ # Load the compiled Tcl byte-code:#@ source $synopsys_root/auxx/syn/psyn/check_physical_design_core.tbc#@ source $synopsys_root/auxx/syn/psyn/check_physical_design_utils.tbc#@ source $synopsys_root/auxx/syn/psyn/check_physical_design_flows.tbc#@ source $synopsys_root/auxx/syn/psyn/check_physical_design_reports.tbc#@ source $synopsys_root/auxx/syn/psyn/check_physical_design_ui.tbc#@ }#@ #@ ###############################################################################@ # ICC setup and hiding commands/procs etc#@ ###############################################################################@ #@ if { [string match -nocase {*icc_shell*} $synopsys_program_name] } {#@ set save_mw_cel_lib_setup TRUE#@ set auto_restore_mw_cel_lib_setup FALSE#@ #@ alias create_wiring_keepout create_wiring_keepouts#@ alias get_wiring_keepout get_wiring_keepouts#@ alias get_placement_keepout get_placement_keepouts#@ alias create_placement_keepout create_placement_keepouts#@ #@ icc_hide_cmd execute_command_and_create_cel_from_scratch#@ icc_hide_cmd dc_read_def#@ icc_hide_cmd enable_unsupported_commands#@ icc_hide_cmd read_edif#@ icc_hide_cmd read_sverilog#@ icc_hide_cmd read_vhdl#@ icc_hide_cmd onCreateBaseTopLevel#@ icc_hide_cmd set_collection_mode#@ icc_hide_cmd return_dc_collection#@ icc_hide_cmd return_mw_collection#@ icc_hide_cmd all_cluster_cells#@ icc_hide_cmd all_clusters#@ icc_hide_cmd change_selection_no_core#@ icc_hide_cmd change_selection_too_many_objects#@ icc_hide_cmd remove_ccl_attribute#@ icc_hide_cmd remove_ccl_str_in_pattern_list#@ set mw_use_pdb_lib_format true#@ }#@ #@ #@ # -- End source /tools2/synopsys/syn_vY-2006.06/auxx/syn/.dc_procs.tcl#@ #@ # Temporary fix for the LMC_HOME variable- set it to an empty string #@ #@ if { [catch {getenv LMC_HOME } __err ] != 0 } {#@ setenv LMC_HOME ""#@ }#@ #@ #@ ##@ ##@ # Site-Specific Variables#@ ##@ # These are the variables that are most commonly changed at a#@ # specific site, either upon installation of the Synopsys software,#@ # or by specific engineers in their local .synopsys files.#@ ##@ ##@ #@ # from the System Variable Group #@ set link_force_case "check_reference"#@ set link_library { * your_library.db }#@ set physical_library ""#@ #@ set search_path [list . ${synopsys_root}/libraries/syn ${synopsys_root}/dw/sim_ver ${synopsys_root}/dw/syn_ver]
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -