原创 TCL 与Perl 在IC 设计中的应用

2014-10-11 09:32 2023 22 22 分类: FPGA/CPLD

TCL 与Perl 在IC 设计中的应用

 

论坛上看到关于tclperl的应用,做个备份。

TCL 而言,主要是因为synopsys 以这个语言为基础,在他的整个flow和工具中都有support TCL,用于其的command file
比如DC PC Astro iCC 等。
一般来说你要是遇到用到这些工具,最好对TCL 有所了解。
这样才能写出较好的scripts。
需要注意是的Synopsys在TCL原有的基础上发展了collection这个概念。
对应的command为foreach_of_collection,get_object_name等等用于对collection进行操作的command。
collection有点类似list,但是又是有区别的。具体可参考synopsys相应tcl的doc。
还有就是sdc file也是基于tcl 的语法的。

Perl而言:
其主要的优势在于文本的处理。
同时用perl去写出run-command,判断参数,替换文本,最后调用相应的command,真正执行,这个功能有点类似Makefile。
就文本处理而言:
1)处理log-file,将一些不需要的warning或者error filter掉,从而更容易找到问题。
2)可以处理netlist,比如你需要对netlist进行一些复杂的替换,或者修改,就可以使用perl,但是需要最后进行一下LEC或者Foramlity的形式验证。
3)对backend同仁来说,有时候他们需要对layout进行修改,可以将layout-dump出文本格式,在用perl对其修改。

其实tcl,gvim等等也可以进行替换,但是就执行速度而言与perl相差很远。
因为tcl和gvim都是解释一条,执行一条。
perl类似C,都是先compiler,在执行。

比如,你用EDA工具做了一件工作,并有对应的log文件,但是log文件内容很多很杂,这时你可以用Perl对log文件的关键字进行抽取,得到真正对 你有用的信息。特别在批量处理多个log文件时,Perl就显示出它的作用了,因为你不用一个一个手工的查看log文件。

ASIC综合完成后,可能要用perl对网表进行处理,打个比方将1'b1替换成TIEH,1'b0替换成TIEL。

 

文章评论0条评论)

登录后参与讨论
我要评论
0
22
关闭 站长推荐上一条 /2 下一条