📄 command.log
字号:
#@ #@ proc set_mw_lib_reference args {#@ #@ parse_proc_arguments -args $args ra#@ #@ set cmd ""#@ #@ if {[info exists ra(-mw_reference_library)]} {#@ set cmd [format {set_reference_control_file -reference_libraries {%s} %s} $ra(-mw_reference_library) $ra() ]#@ }#@ #@ if {[info exists ra(-reference_control_file)]} {#@ set cmd [format {set_reference_control_file -file %s %s} $ra(-reference_control_file) $ra() ]#@ }#@ return [uplevel #0 $cmd]#@ }#@ #@ define_proc_attributes set_mw_lib_reference -hide_body -info " Set reference for the library " -define_args {{-mw_reference_library "List of reference libraries" "lib_list" list {optional}} {-reference_control_file "Reference control file" "file_name" string {optional}} {"" "Library name" "libName" string {required}}}#@ #@ ##@ ###############################################################################@ ##@ # PROCEDURE: create_mw_lib#@ ##@ # ABSTRACT: wrapper around MWUI create_mw_lib #@ ##@ ###############################################################################@ #@ proc create_mw_lib args {#@ #@ parse_proc_arguments -args $args ra#@ #@ set cmd ""#@ set pdb_file "tech.pdb"#@ set lib_name ""#@ set log_file "log_file"#@ #@ if {[info exists ra(-ignore_case)]} {#@ set cmd [format {org_create_mw_lib %s} $ra() ]#@ } else {#@ set cmd [format {org_create_mw_lib -case_sensitive %s} $ra() ]#@ }#@ #@ if {[info exists ra(-technology)]} {#@ set cmd [concat [concat $cmd " -technology " ] " $ra(-technology) "]#@ } #@ #@ if {[info exists ra(-hier_seperator)]} {#@ set cmd [concat [concat $cmd " -hier_seperator " ] " $ra(-hier_seperator) "]#@ }#@ #@ if {[info exists ra(-bus_naming_style)]} {#@ set cmd [concat [concat $cmd " -bus_naming_style " ] " $ra(-bus_naming_style) "]#@ }#@ #@ #@ if {[info exists ra(-reference_control_file)]} {#@ set cmd [concat [concat $cmd " -reference_control_file " ] " $ra(-reference_control_file) "]#@ } #@ #@ if {[info exists ra(-plib)]} {#@ if {[string match -nocase {*.pdb} $ra(-plib) ] } {#@ set cmd [concat [concat $cmd " -plib " ] " $ra(-plib) "]#@ } #@ if {[string match -nocase {*.plib} $ra(-plib) ] } {#@ set subcmd [format {read_lib %s} $ra(-plib)]#@ redirect -file log_file {uplevel #0 $subcmd}#@ set f1 [open $log_file]#@ while {[gets $f1 line] >= 0} {#@ set msg1 [lindex $line 3]#@ set msg2 [lindex $line 4]#@ if {[string match {read} $msg1] &&#@ [string match {successfully} $msg2] } {#@ set msg [lindex $line 2]#@ set len [string length $msg]#@ set lib_name [string range $msg 1 [expr $len-2] ]#@ break#@ } #@ }#@ if {$lib_name != ""} {#@ set subcmd [format {write_lib %s -output %s} $lib_name $pdb_file]#@ uplevel #0 $subcmd#@ set cmd [concat [concat $cmd " -plib " ] " $pdb_file "]#@ } #@ }#@ }#@ #@ if { ![uplevel #0 $cmd] } {#@ return 0#@ }#@ #@ set cmd ""#@ #@ if {[info exists ra(-mw_reference_library)]} {#@ set cmd [format {add_reference_library -to %s {%s}} $ra() $ra(-mw_reference_library) ]#@ }#@ #@ if {[info exists ra(-open)]} {#@ uplevel #0 $cmd#@ set cmd [format {open_mw_lib %s} $ra() ]#@ }#@ #@ return [uplevel #0 $cmd]#@ }#@ #@ define_proc_attributes create_mw_lib -hide_body -info " Create a milkyway library " -define_args {{-technology "Technology file name" "file_name" string {optional}} {-plib "Plib file name" "file_name" string {optional}} {-hier_separator "Hierarchical separator, default is backslash / " "separator" string {optional}} {-bus_naming_style "Bus naming style" "bus_naming_style" string {optional}} {-ignore_case "Make case insensitive" "" boolean {optional}} {-case_sensitive "Make case sensitive" "" boolean {hidden optional}} {-mw_reference_library "List of reference libraries" "lib_list" list {optional}} {-reference_control_file "Reference control file" "file_name" string {optional}} {-open "Open the library after creation" "" boolean {optional}} {"" "Library name to create" "libName" string {required}}}#@ #@ ##@ ###############################################################################@ ##@ # PROCEDURE: report_mw_lib#@ ##@ # ABSTRACT: wrapper around MWUI report_mw_lib#@ ##@ ###############################################################################@ #@ proc report_mw_lib args {#@ #@ parse_proc_arguments -args $args ra#@ #@ set cmd ""#@ #@ if {[info exists ra(-mw_reference_library)]} {#@ set cmd [format {report_mw_lib_ref_lib_list}]#@ return [uplevel #0 $cmd]#@ }#@ #@ if {[info exists ra(-unit_range)]} {#@ set cmd [format {org_report_mw_lib -unit_range %s} $ra() ]#@ return [uplevel #0 $cmd]#@ }#@ #@ }#@ #@ define_proc_attributes report_mw_lib -hide_body -info " Report information about the library " -define_args {{-unit_range "Report unit range of library" "" boolean {optional}} {-mw_reference_library "Report list of reference libraries" "" boolean {optional}} {"" "Library to be reported" "libName" string {optional}}}#@ #@ ###############################################################################@ ##@ # PROCEDURE: write_mw_lib_files#@ ##@ # ABSTRACT: Write technology or reference control file#@ ##@ ###############################################################################@ #@ proc write_mw_lib_files args {#@ #@ parse_proc_arguments -args $args ra#@ #@ set cmd ""#@ #@ if {[info exists ra(-reference_control_file)]} {#@ set cmd [format {report_mw_lib_ref_ctrl_file -output %s %s} $ra(-output) $ra() ]#@ return [uplevel #0 $cmd]#@ }#@ #@ if {[info exists ra(-technology)]} {#@ set cmd [format {org_report_mw_lib -output %s %s} $ra(-output) $ra() ]#@ return [uplevel #0 $cmd]#@ }#@ #@ if {[info exists ra(-plib)]} {#@ set cmd [format {write_plib -lib_name %s %s} $ra() $ra(-output) ]#@ return [uplevel #0 $cmd]#@ }#@ }#@ #@ define_proc_attributes write_mw_lib_files -hide_body -info " Write technology or reference control file " -define_args {{-technology "Dump technology file" "" boolean {optional}} {-plib "Dump plib file" "" boolean {optional}} {-reference_control_file "Dump reference control file" "" boolean {optional}} {-output "Output file" "file_name" string {required}} {"" "Library to be reported" "libName" string {required}}}#@ #@ ###############################################################################@ ##@ # PROCEDURE: close_mw_cel#@ ##@ # ABSTRACT: Wrapper around close_mw_cel to add -save option#@ # remove_timing_design is the command to shutdown dc netlist#@ ##@ ###############################################################################@ #@ proc close_mw_cel args {#@ #@ parse_proc_arguments -args $args ra#@ #@ set cmd [format {icc_is_dc_up} ]#@ set dc_is_up [uplevel #0 $cmd]#@ #@ #@ #@ if {$args == ""} {#@ ui_util_clean_saved_lib_attr #@ set cmd [format {org_close_mw_cel -discard } ]#@ if {[uplevel #0 $cmd]} {#@ if {$dc_is_up == 1} {#@ set cmd [format {remove_design -quiet -designs} ]#@ return [uplevel #0 $cmd]#@ } else {#@ return 1#@ }#@ } else {#@ return 0#@ }#@ }#@ #@ ui_util_clean_saved_lib_attr $args#@ #@ set cmd ""#@ set lcels ""#@ set is_current_closed 1#@ #@ if {[info exists ra()]} {#@ set lcels $ra()#@ }#@ #@ set len [string length $lcels]#@ #@ if {[info exists ra(-save)]} {#@ if {$len > 0} {#@ foreach cel $lcels {#@ set cmd [format {current_mw_cel %s} $cel]#@ set rest [uplevel #0 $cmd]#@ set celNameLen [string length $cel]#@ set cmdResLen [string length $rest]#@ if {$cmdResLen == 0} {#@ echo "Error: Failed to save the design $cel"#@ return 0#@ }#@ set cmd [format {save_mw_cel} ]#@ if {![uplevel #0 $cmd]} {#@ echo "Error: Failed to save the design $cel"#@ return 0#@ }#@ }#@ } else {#@ set cmd [format {save_mw_cel} ]#@ if {![uplevel #0 $cmd]} {#@ echo "Error: Failed to save the design"#@ return 0#@ }#@ }#@ }#@ #@ if {$len > 0} {#@ redirect -var msg {set rest [current_mw_cel]}#@ set cmdResLen [string length $rest]#@ if {$cmdResLen != 0} {#@ set current_mw_cel_id 0#@ if {[string equal [info commands get_new_cells] ""]} {#@ redirect -var msg {set current_mw_cel_id [ get_attribute $rest cell_id]}#@ } else {#@ redirect -var msg {set current_mw_cel_id [ get_new_attribute $rest cell_id]}#@ }#@ if {$current_mw_cel_id != 0} {#@ set is_current_closed 0#@ foreach cel $lcels {#@ set celNameLen [string length $cel]#@ if {[string equal [info commands get_new_cells] ""]} {#@ set cel_id [get_attribute -class mw_cel $cel cell_id]#@ } else {#@ set cel_id [get_new_attribute -class mw_cel $cel cell_id]#@ }#@ if {$current_mw_cel_id == $cel_id} {#@ set is_current_closed 1#@ }#@ }#@ }#@ }#@ set cmd [format {org_close_mw_cel -discard {%s}} $lcels ]#@ } else {#@ set cmd [format {org_close_mw_cel -discard } ]#@ }#@ #@ if {[uplevel #0 $cmd]} {#@ if {$dc_is_up == 1} {#@ if {$is_current_closed == 1} {#@ set cmd [format {remove_design -quiet -designs} ]#@ return [uplevel #0 $cmd]#@ }#@ return 1#@ } else {#@ return 1#@ }#@ } else {#@ return 0#@ }#@ }#@ #@ define_proc_attributes close_mw_cel -hide_body -info " Closes the design " -define_args {{-save "Save the cel" "" boolean {optional}} {-discard "Discard any changes" "" boolean {optional hidden}} {"" "cels to be closed" "design list" list {optional}}}#@ #@ ###############################################################################@ ##@ # PROCEDURE: close_mw_lib#@ ##@ # ABSTRACT: Wrapper around close_mw_lib to handle -save option properly#@ # - save_mw_cel to save current cel with dc_netlist#@ # - close_mw_cel to close current cel#@ # - save_open_cels to save other open cels before closing library#@ ##@ ###############################################################################@ #@ proc close_mw_lib args {#@ #@ parse_proc_arguments -args $args ra#@ #@ if {$args == ""} {#@ set cmd [format {icc_is_dc_up} ]#@ if {[uplevel #0 $cmd]} {#@ set cmd [format {remove_design -quiet -designs} ]#@ if {[uplevel #0 $cmd]} {#@ set cmd [format {org_close_mw_lib } ]#@ return [uplevel #0 $cmd]#@ } else {#@ return 0#@ }#@ } else {#@ set cmd [format {org_close_mw_lib } ]#@ return [uplevel #0 $cmd]#@ }#@ }#@ #@ if {[info exists ra(-save)]} {#@ #@ set cmd [format {save_mw_cel} ]#@ if {![uplevel #0 $cmd]} {#@ return#@ }#@ #@ set cmd [format {close_mw_cel} ]#@ if {![uplevel #0 $cmd]} {#@ return#@ }#@ #@ set cmd [format {save_open_cels} ]#@ if {![uplevel #0 $cmd]} {#@ return#@ }#@ }#@ #@ set cmd [format {org_close_mw_lib} ]#@ return [uplevel #0 $cmd]
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -