原创 总结几个有关FPGA配置在自动化设计方面的技巧

2024-6-8 11:45 4303 6 6 分类: FPGA/CPLD 文集: 自动化设计

概述

        “自动化”设计altera的设计流程中其实就是使用Quartus集成的TCL脚本编译器,用户可以编写自己的脚本来完成一些需要多次重复的动作,或者利用脚本来保存一些可以多场合重复使用的配置等到。

        本文总结有关FPGA配置方面应用“自动化”手段的小技巧,其中一个有关自动生成JIC配置文件,另一个就是如何批处理自动下载配置文件技巧。

JIC配置文件

      Altera的FPGA有一种配置模式叫主动串行模式,即AS模式(最新有ASx4模式)。该模式可以通过EPCS这种Flash性质的配置芯片来对FPGA进行配置,需要注意的是Altera或Intel已经不生产这种基于Flash的配置芯片EPCS了,随着FPGA 规模越来越大,Flash配置芯片大多支持ASx4模式,Altera目前推荐使用的是EPCQL。而AS配置模式下,配置芯片的烧写有两种方式,一种是直接通过AS口直接独立地烧写POF文件,这样就需要给电路设计一个独立的10针插座;还有一种方式是可以借用JTAG的接口桥接方式来烧写,只是需要事先将配置文件*.sof文件转换成JIC文件。

JIC配置文件手动转换

JIC文件的转换方法,是在工程全编译后生成SOF文件,然后再通过Quartus软件的文件菜单打开编程文件转换工具来进行转换(File->Convert Programming Files...),该工具打开的界面如图1所示。

图1:配置文件转换工具及生成JIC的相关设置

JIC配置文件自动转换

通过脚本可以让Quartus II在全编译过程的同时自动生成JIC文件,这样只要首次进行配置后,后面项目任何更改后都会在全编译时自动生成JIC配置文件,而不需要如上述那样再手动将SOF文件转换为JIC文件。具体 方法是,设计者事先要确认一个正确的转换设置(不同的设计可能设置会有不同),再将这种设置保存到一个*.cof(这里命名为jicgen.cof)文件之中,如图2所示。

图2:将SOF文件转换到JIC文件的转换设置保存到COF文件

接着是编写一个简单的TCL脚本文件(这里将该文件命名为JicGen.tcl),该脚本文件中其实就一句话,即“exec quartus_cpf -c jicgen.cof”。


exec quartus_cpf -c jicgen.cof


最后一步是在工程的配置文件*.qsf文件中添加一句 “set_global_assignment -name POST_FLOW_SCRIPT_FILE "quartus_sh:JicGen.tcl"这样工程在编译结束后会为我们自动生成所需的JIC文件了。添加这条配置的目的,就是Quartus在编译过程中会适时地执行这条配置,并依据本条设置调用上述TCL脚本文件来产生JIC文件。



set_global_assignment -name POST_FLOW_SCRIPT_FILE "quartus_sh:JicGen.tcl


FPGA配置文件自动下载

Altera的FPGA程序在线下载一般都是在打开Quartus II软件进行项目开发的过程中进行,当然也可以在调试过程中通过SignalTap II下载sof文件,同时,在后期也可以只打开Programmer来单独下载程序。上述方法都是需要打开GUI界面,本文介绍一种通过批处理在未打开GUI界面的情况下下载程序到FPGA。

1. 条件:本条技巧涉及到的程序下载方法,都是需要经过下载电缆,所以条件之一就是必须要有一根USB-Blaster电缆,同时必须安装了Quartus II软件或单独安装Programmer亦可。这是FPGA在线配置的必要条件。

         2.使用的命令及格式

下载使用的是集成在Quartus II软件中的“quartus_pgm”命令。为了自动化执行,需要手动生成一个Batch文件,将对应具体命令拷贝到这个BAT文件即可,这样在需要下载配置文件的时候,可以单击鼠标完成,而不需要打开GUI下载界面。BAT批处理具体格式如下:

         1)、下载SOF文件


%QUARTUS_ROOTDIR%\\bin64\\quartus_pgm.exe -m jtag -c USB-Blaster[USB-0] -o "p;output_file.sof" 


        2)、下载JIC文件


%QUARTUS_ROOTDIR%\\bin64\\quartus_pgm.exe -m jtag -c USB-Blaster[USB-0] -o pvbi;output_file.jic

注:上述命令可能需要用户根据自己软件版本、硬件条件进行适当调整。比如32-bit版本就是将上述bin64修改成bin32,然后是usb-blaster下载线也要依据具体硬件来进行适当修改,因为现在usb-blaster升级到二代,而且有时可能电脑上连接有不止一根下载线。


作者: coyoo, 来源:面包板社区

链接: https://mbb.eet-china.com/blog/uid-me-1010859.html

版权声明:本文为博主原创,未经本人允许,禁止转载!

文章评论0条评论)

登录后参与讨论
我要评论
0
6
关闭 站长推荐上一条 /2 下一条