首先需要了解一下脚本语言在数字IC设计中的作用,C、C++等编程语言是为了开发软件或高性能计算应用,要是开发简单的应用,脚本语言更为简单,缩短了传统的“编写-编译-链接-运行”过程。IC设计中常用的脚本有Tcl、Perl、Shell、Python等。其中,Tcl最简单。
1.Tcl脚本语言
工具控制语言(Tool Control Language, Tcl)是图形工具箱的扩展,提供各种GUI接口。Tcl只支持一种数据结构,即字符串。所有的命令、命令里的所有的参数、命令的结果、变量全部都是字符串。
Tcl在IC领域的主要作用如下:
(1)复杂的文本处理。Tcl可以把文本中的每一行变成一个列表,最简单的列表就是由包含任意个空格、制表符、换行符分隔开的任意多个元素的字符串。正则表达式是文本处理的大杀器,Tcl支持正则表达式。
给定一个正则表达式和另一个字符串,可以实现:给定字符串是否符合正则表达式的过滤逻辑(匹配),也可以通过正则表达式从字符串中获取我们想要的特定部分。应用主要包括:替换指定内容到行尾、数字替换、删除每一行行尾的指定字符、替换带有半角括号的多行和删除空行等。
原始文本如下面两行
abc aaaaa
123 abc 444
希望每次遇到“abc”,则替换“abc”以及其后到行尾的内容为“abc efg”
即上面的文本最终替换为:
abc efg
123 abc efg
解决:
① 在替换对话框,查找内容里输入“abc.*”,替换内容输入为“abc efg”
② 同时勾选“正则表达式”复选框,然后点击“全部替换”按钮
其中,符号的含义如下:
“.” =匹配任意字符
“*” =匹配0次或更多
(2)自动化执行flow。例如自动执行整个综合的flow,得到最后的结果和report,只要敲一次键盘即可完成。
(3)编写一些强大的EDA工具。
Tcl脚本在IC设计中的应用 https://zhuanlan.zhihu.com/p/28039778
在vivado中经常使用的tcl命令主要包括以下几个。
(1)将工程保存为.tcl文件,便于工程的备份和分发。
write_project_tcl+工程路径+tcl文件名
(2)用tcl文件生成工程。
cd+工程路径
source+tcl文件
(3)引脚分配:write_xdc
(4)保存截取的波形。
write_hw_ila_data + 路径 + [upload_hw_ila_data hw_ila_*]
(5)读取波形并运行。
read_hw_ila_data + 路径
display_hw_ila_data
2.Perl脚本
实用报表提取语言(Practical Extraction and Report Language, Perl)脚本能够高效批量化操作,降低错误率,提高效率。如批量生成verilog代码,快速生成仿真testbench,verilog代码的自动对齐,module模块的例化连接。
Perl是一种用于文本处理的脚本语言,不需要编译就可以直接运行。
Perl脚本在数字IC设计中有哪些应用? https://blog.csdn.net/icxiaoge/article/details/80259324