FPGA设计之tcl脚本的应用

描述

目前已经学完了基础实验,这里要介绍Quatus自带的两个非常重要的功能,第一个是tcl脚本,第二个是SignalTap(下一篇)。

我们首先从管脚分配的实例去理解tcl脚本的功能。TCL(tool command language),是一种解释执行的脚本语言,常用于快速原型开发,脚本编程,GUI和测试等方面。包含了语言和库,首先tcl是一种简单的脚本语言,主要使用于发布命令给一些程序如文本编辑器、调试器和shell。同时它也是个库,可以被嵌入应用程序,每个应用程序都可以根据自己的需要对tcl语言进行扩展。由于它具有良好的可扩展性,目前成为自动测试中的标准。

快速绑定管脚

当复杂模块需要绑定的管脚过多时,手动去设置不方便,这里提供了一种自动化绑定管脚的方法,同时Quatus提供了支持tcl脚本的接口。我的tcl管脚分配脚本中包含了开发板上用到的可控外设的所有管脚配置信息,由于开发板厂家和型号是不一样的,管脚也会有区别,但是方法和语法是一样的,只需要做些许修改。

脚本

注释用#,set_location_assignment表示进行管脚约束,后面是管脚的位置,“-to”后面是代码顶层的管脚名,每行结束后没有分号

在实际使用时,tcl脚本文件要放在工程文件夹下,并将其添加到工程中,否则无法自动识别。这个工程用到哪个模块的引脚就只需要保留对应的引脚。其他没用到的模块用#注释掉。在notepad++中按住Alt键在列模式下进行编辑,拖动鼠标选中每一列开头的位置输入#。

脚本

实际tcl脚本分配管脚的优势在管脚特别多的时候才明显,但是目前还没接触特别复杂的模块,先以流水灯为例

1、将tcl脚本命令为water_led.tcl放在工程文件夹下

脚本

2、注释掉没有使用到的管脚,只留下时钟,复位,四个LED。代码中的端口名和Tcl脚本中的管脚命名必须一致!!!

3、Toos-TCL Scripts-自动识别到-run(乱码的中文不影响)

脚本

4、打开pin planner确认管脚都已经自动分配好

脚本

还有一种方式可以加载tcl脚本,结果是一样的,习惯哪种都行

1、View-Utility Windows-Tcl Console

2、在tcl console栏里复制粘贴tcl脚本里的内容

3、打开pin planner确认管脚都已经自动分配好

脚本

还有一种方式可以分配管脚

Assignments-Import Assignments-添加csv或txt文件(同样要将csv文件或txt文件放到工程目录下)

脚本

快速解除管脚

Assignments-Remove Assignments-选中Pin, Location & Routing Assignments-OK

脚本

脚本

导出Tcl脚本

手动绑定好管脚之后也可以直接导出包含管脚信息的tcl脚本

按住shift键选中所有pin,右键单击选择export,输出格式选择tcl,选好导出文件位置,导出

脚本

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分