我は追放する者なり。最後の灯を消す邪悪なる意思なり。 ――― 印章に刻まれた言葉.

grep sed-正则表达相关-更新中

上一篇 / 下一篇  2017-12-22 22:33:42

change_selection [get_nets {
grep \(net\) getnets | sed 's/(net).*$//g'
}]

rpts里报出的path用ICC2 Imported path pins 只能看到pin和cell的位置, 不能看真实绕线。 
这个命令去掉rpts的其他信息只保留path包含的nets, highlight来查看path的绕线情况; 目标path复制出来放在getnets里; 或者zgrep 去.gz文件里搜索path。

起作用的就是一个grep和sed的正则表达式; 不能写成tcl, 好像tcl对单引号有不同的解释. 不能直接source的命令有点麻烦..


 grep acvi bbbb | sed 's#/[^/]\+$##' > cccc

从timing reports里获取path经过的cell(去掉行末的pin); 其实没有完全理解: #和/都可用作分隔符, 但是这里用/替换#就不能返回正确结果。

匹配特定模式 特定位置: 
e.g. data:
NOR2_496(n1004gat,n1000gat,n429gat);
NOR2_491(n1199gat,n1123gat,n1000gat);
N0R2_495(n1000gat,n419gat,n12529gat);
只匹配n1000gat是括号内第一个数据的行:
set name "n1000gat"
set f [open /home/xxxxxxxx/scripts/test0001 r]
while { [ gets $f line ] > -1 } {
    if { [ eval "regexp {$name,n\\d+gat,n\\d+gat} \$line" ] } {
    puts "line=$line"
    }
}
close $f

\\转义两次, 编码的时候很难看明白; error_info也不一定能看出问题。 可以在tclsh里看看每一行是怎么被解释的, 变量内插, 转义...什么的。 算是一种debug的方法吧..

相关阅读:

TAG: tcl Tcl TCL

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2018-01-20  
 123456
78910111213
14151617181920
21222324252627
28293031   

数据统计

  • 访问量: 910
  • 日志数: 6
  • 建立时间: 2017-09-11
  • 更新时间: 2018-01-11

RSS订阅

Open Toolbar
博聚网