Altera Quartus:cof+tcl脚本实现编译完成后自动生成jic文件

Quartus编译完成后默认生成sof文件,可以通过工程配置选项增加生成pof文件,用于串行Flash固化,但是pof只能通过AS接口下载,需要切换USB-Blaster的连接方式。

之前的文章介绍了如何使用Quartus图形化界面Convert Programming File方式来手动生成jic文件,但是这种方法需要手动操作,比较麻烦。

本文分享如何使用tcl脚本,实现编译完成后自动生成jic文件,这样每次编译完成后,就可以自动生成jic文件,下载方式和sof文件一样,都是使用JTAG接口,非常方便,不需要切换USB-Blaster的连接方式。

  1. 首先通过Convert Programming File图形化配置界面,配置为输出jic文件,并指定串行Flash型号和FPGA型号,并把配置保存到sof_to_jic.cof文件,文件路径和工程文件.qpf.qsf同一级目录下。

  2. 在工程文件.qpf.qsf同一级目录下,新建一个exe_cof.tcl文件,以文本方式编辑,输入以下内容:

bash 复制代码
exec quartus_cpf -c sof_to_jic.cof
  1. 以文本方式编辑project.qsf工程文件,并在文件末尾添加如下内容:
bash 复制代码
set_global_assignment -name POST_FLOW_SCRIPT_FILE "quartus_sh:exe_cof.tcl"

表示在编译结束后,执行这个TCL脚本,而TCL脚本中执行的是cof文件,这样就可以实现编译完成后自动生成jic文件了。

  1. 保存qsf文件后,重新使用Quartus打开.qpf工程文件,执行全编译,在编译完成后,就可以在output_files文件夹下找到自动生成的jic文件了。如果需要修改jic文件的路径和名字,可以在第1步的图形界面中进行修改。

这种方式有一个弊端是,图形界面中保存的cof文件内,存储的sof文件路径是电脑本地的绝对路径,而不是相当于工程目录的相对路径,所以如果整个工程修改文件夹名称,或者移动到别的路径,就会导致无法生成。

解决办法就是参考之前介绍的BAT批处理一键生成jic,把exe_cof.tcl脚本文件的内容改为执行这个bat批处理文件即可,具体操作我会在后续的教程中介绍。