zoukankan      html  css  js  c++  java
  • change_icctcl_to_innovstcl

    
    

    ############################################
    # edit by wangnengxue 20200911 #
    # Email : nengxuew@cadence.com #

    ###########################################

    proc write_eco_change {args} {

    
    
    
    
    

    set output ""
    parse_proc_arguments -args $args results
    foreach argname [array names results] {
    if {[regexp -nocase {-output} $argname ]} { set output $results($argname) }
    }

    
    
    
    
    
    
    
    

    write_change -format icctcl -output ${output}_icctcl

    
    


    set in_icctcl_file [open ${output}_icctcl r+]
    set out_innovus_file [open ${output} w]

    
    


    while {[gets $in_icctcl_file line]>=0} {

    
    


    if {[regexp {current_instance$} $line ]} {
    set hier_inst ""

    set hier_inst1 ""
    puts $out_innovus_file "#$line"
    continue
    }

    
    


    if {[regexp {current_instances*(S+)} $line uselessvar_a hier_inst]} {
    set hier_inst1  $hier_inst

    set hier_inst $hier_inst/

    puts $out_innovus_file "#$line"
    continue
    }

    
    


    switch -regexp $line {

    
    

    {size_cell} {
    regexp {size_cells*{(S+)}s*{(S+)}} $line uselessvar_a inst cell_type
    puts $out_innovus_file "#$line"
    puts $out_innovus_file "ecoChangeCell -inst $hier_inst$inst -cell $cell_type "
    }

    
    

    {remove_buffer} {
    regexp {remove_buffers*[get_cellss*{(S+)}]} $line uselessvar_a inst
    puts $out_innovus_file "#$line"
    puts $out_innovus_file "ecoDeleteRepeater -inst $hier_inst$inst -nonPhysical "
    }

    {insert_buffer} {
    regexp {insert_buffers*[get_pinss*{(S+)}]s*(S+)s*-new_net_names*{(S+)}s*-new_cell_names*{(S+)}} $line uselessvar_a term cell_type new_netname new_cellname
    puts $out_innovus_file "#$line"
    puts $out_innovus_file "ecoAddRepeater -term $hier_inst$term -cell $cell_type -new_net_name $new_netname -name $new_cellname  -hinstGuide $hier_inst1   "
    }
    }
    }

    
    


    close $in_icctcl_file
    close $out_innovus_file

    
    


    }

    
    

    define_proc_arguments write_eco_change -info "User change pt_script format to innovus script format Examble: write_eco_change -output ./wangnengxue.innovus.tcl"
    -define_args {
    {-output "Specifies the output script filenane and path"}
    }

    
    
    
     
  • 相关阅读:
    PHP PSR 标准规范
    PHP线程安全与非线程安全的区别(NTS/TS)选择?
    goto 语法在 PHP 中的使用
    linux命令post请求发送json串
    接口日志表sql【我】
    sentinel最简单接入【我】
    Jps命令—使用详解
    MyBatis-Plus Wrapper条件构造器查询大全
    IDEA项目启动不起来也不打印日志【我】
    linux下查看nginx配置文件地址
  • 原文地址:https://www.cnblogs.com/learnsure/p/13652268.html
Copyright © 2011-2022 走看看