|
就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,在执行。
|
|