求教perl、tcl等脚本语言对一个数字前端或者验证者的重要性
前一段时间看过一段perl的基础知识(以论坛上的PPT和小羊驼为主),但一直不明白此类脚本语言对前端设计和验证有如何作用。
浅薄的理解即是对一个文本的处理,但在平时RTL设计或验证过程中却并未遇到,而论坛中有些帖子中说这是前端工程师必备之技能,而且应用熟练最好,但一直不明其中缘由,希望给予指教。
谢谢!
我也在学习过程中,理解也不深,大家可以一起讨论。
举个例子,在比较大的项目中,有时候一个仿真跑下来会log文件会有上万行,怎么样抓取log文件中有用的信息(最基本的,如抓取Error或者Warning信息)来debug,这些脚本就派上用场了。
项目进度不断往前走的时候,没有那么多时间回头再去学脚本知识,所以需要平时积累,真正需要时才能提高工作效率。
在稍许大一些的公司,往往会用一个通用script集成所有的常用命令,这些脚本往往是用perl写的,然后用tcl或者命令行的方式调用通用script。
但是在小公司,就不一定会有这一类的通用script。
所以要看公司的情况的,在不同的公司重要性不一样。
不过总的来说,perl和tcl这一类的东西了解就行了。真的要用的时候,临时学一学也不难。
我现在每天都接触tcl脚本语言,做前段DC综合;scripts里的文件都是tcl语言写的。
非常重要啊。
perl是整理各类log、分析提取RTL的利器,tcl是很多EDA工具的通用语言。
大部分EDA软件集成了tcl。perl没有怎么用过。
一般是 makefile +tcl
PERL处理文本还是很犀利的
求教呀、
perl用来分析RTL的利器如何理解?
一般是用VCS进行仿真的时候,假如出现error仿真直接断掉。
您能不能举一个类似的例子?
我对您说的各类log,是不是这样:使用一个脚本将例如功能仿真,综合等全部串联起来。等一遍脚本中所有的流程走完,然后再使用perl提取其中的错误信息和警告信息,进行分析。
perl用来分析RTL的利器如何理解?
一般是用VCS进行仿真的时候,假如出现error仿真直接断掉。
您能不能举一个类似的例子?
我对您说的各类log,是不是这样:使用一个脚本将例如功能仿真,综合等全部串联起来。等一遍脚本中所有的流程走完,然后再使用perl提取其中的错误信息和警告信息,进行分析。
您看我说的,和您的理解一样么?
我只是举个泛泛的例子,并不是所有的Error都会终止仿真,比如后仿中时序违例报出的error信息。
一般就用来分析各种仿真后产生的log信息?
我说过了,只是举个例子。用途肯定不止这些,我目前使用的项目仿真环境就是用perl建立的。这些东西本来就是靠工程实践才能体会到,讨论些抽象的问题,没什么用。
好的,谢谢您。
在以后的过程中慢慢体会吧。
目前用makefile + perl 整合仿真环境,能够极大提高工作效率。
通常用perl处理rom data比较多,还有就是整理一些数据格式等等。
更老的是使用awk。sed也很好用, sed可嵌入到makefile里面。
另外,本身vim用的好的话的,也能提高工作效率。
请教有什么学习perl 和tcl 的教程或者方法
我一般用Perl写流程,TCL是常见工具的通用命令,如DC,ISE, QuartusII, Synplify Pro等等
公司原流程是用shell写的,感觉扩展性太差,难于维护
学习了,学习了
个人比较喜欢用perl和c shell,分析log,转数据格式,控制仿真流程,对比数据,甚至自动发mail上报结果,自动上传ftp,生成code模版,批量修改RTL code等等,用途还是很广的,只要你想实现一些自动化,都可用用到这些script语言,至于用什么语言看个人喜好和各个语言的优势了。
大家说的都不错,验证只用SV就行了吧,貌似设计用工具走流程时候才用到脚本
perl语言在前后端设计中种都很重要,能大大的提高处理文本的速度。当然处理文本就很多了,比如替换啊 抓取数据啊 等等 TCL语言用处最多就是在运行脚本上面,
学习了。
在验证中使用脚本语言,处理一些仿真log文件,
使用脚本语言,做仿真结果的处理,和golden数据作比对等,都会经常用到。
在SOC验证中,跑批量的仿真时,作自动比对,自动报错等,就能显示脚本的强大。
举一个实际的例子,对于设计人员来讲,可以用perl或者tcl完成顶层的自动连接,或者通过脚本自动生成reg-slave代码。这样就打打减少了工作量,并且消除了可能的笔误等错误,修改起来也很容易。
我刚刚学
好问题。
