TCL笔记

作者: Touchs | 来源:发表于2023-02-03 11:12 被阅读0次

    ● 打印出设计中所有module名字

    foreach module_name [dbGet top.hInst.treeHInsts.cell.name] {
             Puts "$module_name"
      }
    

    ● Get 到设计中所有leaf cells

    foreach leaf_name [dbGet -u top.insts.cell.name] {
                Puts "$leaf_name"
    }
    

    ● 给选中instance设置dont touch属性

    select_obj [dbGet top.insts.name LS* -p]
    
    foreach term [dbGet selected.instTerms.net.term –e] {
    set_dont_touch [dbGet $term.net.name] true
    }
    

    ● Skip routes hierarchical hard macro nets

    proc skiproutesOnHmsNets {hmInstPattern} {
       deselectAll
       selectInst *$hmInstPattern*
       dbset selected.hinst.hnets.net.skipRouting 1
       deselectAll
    }
    

    针对某些不想让工具绕线的net,可以通过设置skipRoute选项来实现。不过值得注意的是,这个操作存在一定风险。如果后续要对这些net进行eco,那么这条net可能会是open net。

    不过即便出现open,我们也有办法解决。通过将这些net的skipRoute属性改成0,然后再单独绕这些net。这样的解法也是非常完美的。

    ● 删掉macro身上的信号走线

    foreach c [dbGet [dbGet -p2 top.insts.cell.baseClass block].name] {             
     set j [dbGet -p top.insts.name $c ]                                          
     dbSelectObj  [dbQuery -area  [dbGet $j.box ] -objType regular]                                
     puts "Deleting object at [dbGet $j.box ] within Block [dbget $j.name]"
     editDelete -selected  -type Signal  -use SIGNAL                          
    }
    

    相关文章

      网友评论

          本文标题:TCL笔记

          本文链接:https://www.haomeiwen.com/subject/slqnhdtx.html