mervin_li的个人空间 https://blog.eetop.cn/1582944 [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

工欲善其事,必先利其器---TCL学习心得

热度 3已有 2670 次阅读| 2016-10-18 08:58 |系统分类:芯片设计

天气: 冷
心情: 平静

“ 对不起,我 get 不到你的笑点。”

“ 你 man 一下试试 ”

秋雨过后,天气转凉,连笑话都有点冷。

后端工作谈不上多么辛苦,也一点儿不轻松。流程,命令,细节,参数,当deadline逼近的时候不免有些黑云压城的感觉。这时候,一把利器在手 ,克敌制胜的信心自然增加不少。作为IC学徒,深感辅助工具的重要性。而且高效率的工作方式也是自己一直所追求的,工欲善其事,必先利其器嘛。对TCl脚本有了一段时间的应用之后,多有感触。

 1. 正面交锋,直取中军

案例:在APR过程中,需要对比 init 阶段和 postRoute 阶段的 stdcell 发生了多大比例的变化。

问题分析:既是对比,就需要两个阶段的相应文件,这个容易,defOut即可。关键在于如何对比,tcl正式和于文本处理。

程序一: set file1  init.def                    # def文件经过处理只有instance name的信息

                set file2 postRoute.def

                set num [open ./same.file w+]

                set key 0

                set mm 0

                dbForEachFileLine $file1 line {

                 if {[lindex $line 0] == "COMPONENTS"} {

                      set key 1

                     }

                  if {$key == 1} {

                       set iniline $line

                         dbForEachFileLine $file2 line {

                              if {[lindex $iniline 1] == [lindex $line 1] } {

                                     puts $num $line

                                     incr mm

                                   }

                             }

                      }

               }

              puts $num $mm

              close $num

经过测试,行数在2万左右时TCL可以很快完成,当达到10万数量级的时候就运行困难了。因此普通的TCL语言或者这种思路下不能有效地完成这个任务。

程序二 :cat init.def post.def | sort | uniq -d > samefile

哈,搞定!找到合适的command就能破除所有障碍,一举成功。他山之石,可以攻玉。

 2.以迂求直,侧面进攻

案例:对一文件进行处理,将每一行“/”后面的呢绒输出

问题分析:关键是如何确定“/”后面内容的位置呢?如果有封装好的command,那么就迎刃而解了。困难在于目前没有找到合适的command,这时就需要采取迂回的策略,绕过障碍。

程序:set line "This is a teat file / to test a tcl command"

      set num [string first / $line]

      set result [string range $line $num end]  #如果不需要“/”,可对$num作加一操作

      puts $result

     工欲善其事,必先利其器。掌握好一定的辅助工具,和一些思考方法在关键时刻定能派上大用场,与诸君共勉。

3

点赞

刚表态过的朋友 (3 人)

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 15

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 137

    粉丝
  • 58

    好友
  • 152

    获赞
  • 54

    评论
  • 3162

    访问数
关闭

站长推荐 上一条 /2 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-4-20 20:48 , Processed in 0.016495 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部