多数 FPGA 开发者都习惯图形化界面(GUI)。GUI 方式简单易学,为小项目
提供了一键式流程。然而,随着 FPGA 项目越来越复杂,在很多情况下 GUI 工具就阻碍
了工作效率。因为GUI 工具不能对整个开发过程提供足够的灵活性和控制。另一方,GUI
工具本身会占用很大一部 CPU 资源和内存。
在 IC 和 FPGA 的最常用的是 TCL,Perl 以及 Shell。除此之外,还有可能用到其他的脚本
顾名思义,Tool Command Language,它的工具交互性要好些,可以很好地运用于书写工
具命令脚本。尤其是目前很大一部分EDA 工具是支持 TCL 语言的,应该说它们的母语就
是 TCL。综合功能的 EDA 软件都采用 TCL 语言,比如,DC、Vivado、quartus、Synplify
等。TCL 是面向 ASIC 和 FPGA 设计工具的一种近乎标准的脚本语言。EDA 工具都按这
种格式下约束(Vivado 的时序约束和管脚物理约束),TCL 本身就是为了配合工具使用的,
没有太大的独立价值。TCL 语法不同于其他脚本语言,许多开发者很难习惯。TCL 具有
良好的文档和团队支持。Xilinx 在 Vivado 的安装中附带了一个自定义的 TCLxtclsh。如果
要启动 TCL 输入:
Perl 是一种流行的脚本语言,广泛应用于 EDA 等工具中,特别是在 ASIC 的验证和后端
设计中。Perl 用来做一些极其强大的文字处理,减少重复性工作。比如修改 ECO,将小
design 整合成大 design,自动跑各种随机化的仿真,极其有用。Vivado 也附带了自定义的
Perl 解释器 xilperl。perl 在文本处理上应该是无人能及,寥寥几行代码就可以做到别的代