完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
概述 所谓自动化设计,就是在逻辑设计流程中,有些过程需要反复进行,比如编译、仿真和工程调试等等,可以通过一定的方式使得这些流程可以自动运行,而不必每次都需要人工手动去启动。参考[3]介绍了如何自动化建立Quartus II工程,参考[2]翻译了参考[1]的内容,这里对这些热心人表示感谢。 Quartus II工程自动化 在参考[3]中介绍了ALTERA的FPGA开发时利用TCL建立、编译QuartusII 工程等内容。除了参考[3]中提到的两种“执行”TCL文件的方法,这里我提出一种相对“自动化”的方式,其实流程都是一样的只是加了“自动化”这个噱头而已。 参考[3]提到一个工具,即QuartusII TCL Shell,这是一个TCL编译执行工具入口,虽然有了一系列TCL命令,但是还是必须手动打开这个shell才能执行TCL文件。以前在使用ModelSim进行自动化仿真(下一节介绍)时候用到过一个DOS系统工具,即Batch(批处理),了解DOS系统的应该知道什么批处理。如参考[3]一样建立一个TCL文件,再创建一个Batch文件就可以实现所谓的“自动化”了。 准备阶段,目录下只有Batch、TCL以及存储源文件的src目录。这时候只要双击执行Batch文件就会在此自动创建一个工程,如图1-b所示。TCL文件的内容和参考[3]里的一样,这里需要特别说明的是TCL里的内容其实就是我们平时按常规创建工程时写入qsf文件里的各项命令,此时打开图1-b的qsf文件发现大部分内容和TCL文件里一样。所以这里有个很好的办法帮助大家弄清楚应该在TCL文件里加入哪些内容,直接从以前的qsf文件拷贝即可,唯一不同就是TCL文件开头需要加入TCL包以及其它的TCL命令,这些在参考[3]有详细说明。 至于Batch文件的内容,其实就是图1-b下方cmd里的那条指令,即“quartus_sh -t QII_Auto.tcl”。 图1显示的只是创建工程,修改TCL文件,加入工程编译,然后双击batch文件,那么创建、编译一条龙自动化了,发现多了不少文件,最重要的是sof和pof文件产生了。所以当工程需要转移的时候只需要转移图1-a中的文件即可完整转移整个工程,而不需要备份其它文件,可以大大节约空间。 这里需要提醒的是,上述操作是在quartus_sh下进行的,在参考[1]有提到,ALTERA的有关“timing”包的指令只能在quartus_tan下执行,同样,在后面一节中笔者会介绍有关Debug(其实应该是和JTAG有关)的一些指令必须在quartus_stp下执行。 ModelSim自动化仿真 我有一篇文章《ModelSim应用提高》里其实涉及到这方面内容,即此文中的“批处理仿真流程”一节。基本流程和上一节Quartus工程自动化一样,不过我认为ModelSim的自动化更值得推广,因为FPGA设计过程比较复杂,许多东西需要调整,比如约束、设置甚至于源文件的修改等等,除非用于工程移植,个人建议FPGA的设计不要使用自动化,但是可以利用TCL文件对工程进行配置,这样有利于工程的管理。而ModelSim仿真不同,仿真过程相对简单,除了源文件修改以外其它设置、流程基本一样,这样有利于重复使用。所以不同的仿真只是修改TCL文件即可,Batch之后就可以在波形窗口下看仿真结果了。 调试自动化 Debug引入Virtual JTAG可以大大加速调试进程。在笔者一系列介绍Virtual JTAG的文章中有详细的介绍,这里需要提到的是VJ调试的时候同样可以利用Batch(批处理)方式来大大方便调试。 TCL文件用于设计Virtual JTAG调试工具,而Batch文件用于自动化调用此工具,可以看到,Batch里只有一个指令,即“quartus_stp -t vjgui_sep.tcl”。注意调试的指令必须在quartus_stp下得到执行,这个命令不在参考[1]那节,在SignalTapII里有介绍。 分析及结论 本文介绍了在ALTERA的FPGA设计过程中可以自动化的流程,回顾文章中的三个部分,如果先进行仿真,然后开始创建Quarutus工程,最好到调试下载,几乎涵盖了FPGA设计的所有过程。所谓自动化,就是引入Batch来批处理TCL命令,另外Batch的时候注意Quartus不同的TCL命令需要在不同的平台下执行。最后需要提醒的是如果计算机的环境变量“path”设置不当会导致batch失败,这时候需要检查电脑的环境变量,并进行修改,参考《为了使用BATCH自动化设置的PATH变量》。 这里还需要指出另外一点来说明自动化为什么很重要,有很大一部分人的设计环境可能不是Window,而是Linux或者UNIX系统(ALTERA的Quartus II有支持这两种系统的版本),那么这些内容就很有帮助了。 |
|
相关推荐
|
|
1367 浏览 1 评论
助力AIoT应用:在米尔FPGA开发板上实现Tiny YOLO V4
1046 浏览 0 评论
2442 浏览 1 评论
2146 浏览 0 评论
矩阵4x4个按键,如何把识别结果按编号01-16(十进制)显示在两个七段数码管上?
2408 浏览 0 评论
1895 浏览 50 评论
6018 浏览 113 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 21:35 , Processed in 0.616417 second(s), Total 74, Slave 57 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号