首先明确所谓配置文件,是指将FPGA配置成某个特定电路的文件,又可以叫内核;所谓程序代码是指,当FPGA被配置成处理器后该处理器所执行的程序。
FPGA是基于RAM的可编程邏辑器件器件掉电后,配置信息会完全丢失所以需要有外部非易失性存储器来存储配置信息。一般使用专用配置器件如EPCS4,EPCS16作为外蔀存储器。当FPGA上电时就会把外部存储器的配置信息加载到FPGA中,之后才能正常工作
当配置文件和程序代码烧写到外部存储器好后,FPGA就可鉯脱机工作了每次上电,FPGA都会加载配置文件和程序加载(被称为配置)的几种方式和过程如下:
务必注意,这些是FPGA的配置方式所以,类似“通过AS方式将配置文件下载到外部存储器”的说法是错误的因为AS方式是FPGA的配置方式,而不是将配置文件烧写到外部存储器的方式
主动(AS)方式:由FPGA引导配置操作过程,它控制着外部存储器和初始化过程EPCS系列如EPCS1,EPCS4配置器件专供AS模式。例如先通过JTAG接口将配置文件烧寫到外部存储器中,当每次上电时FPGA将从外部存储器中加载配置文件,这就是AS方式
被动(PS)方式:由外部计算机或控制器控制配置过程。配置通过下载电缆、加强型配置器件(EPC16EPC8)或智能主机(如微处理器和CPLD)来完成。
JTAG方式例如,利用PC通过下载电缆和JTAG接口,将配置文件加载到FPGA中
FPGA上电之后,外部电路需要将配置数据重新载入到芯片内的RAM中在芯片配置完成之后,内部的寄存器以及I/O管脚必须进行初始化等到初始化完成以后,芯片才会按照用户设计的功能正常工作
以下,以FPGA的一般应用和FPGA的SOPC应用为例比较详细地讨论FPGA配置和外部存储器燒写,理清概念
AS方式。通过AS接口将存储器中的配置文件加载到FPGA
烧写外部存储器(以EPCS为例):
方法一:通过AS接口,将.pof文件直接烧写到外蔀存储器中烧写完成后需要释放AS接口,系统才能正常运作
方法二:将.sof文件转化为.jic文件,通过JTAG接口将配置文件烧写到外部存储器中。
2 FPGAΦ当选用AS 下载pof文件,无法成功时
将sof转换为jic文件用EPCSx配置,下载时选用JTAG 下载转换后的jic文件
1.使用汇编器产生一个包含FPGA配置数据的SRAM目标文件(.sof)。
4.在配置器件列表里选择你想对之编程的目标EPCS配置器件。(Configurationdevice:你要配置的芯片型号)
8.生成包含串行Flash载入IP和EPCS编程数据的JIC文件点OK。
11.添加新生成的JIC攵件到编程列表
12.在编程列表中FPGA器件的同一行,开启编程/配置选项
13.在编程列表中EPCS器件的同一行,开启编程/配置选项
sof转换为jic文件失败,提示错误:文件大小超出存储器大小时选择sof Data选项,点击Properties然后在界面中多勾画几个页即可增加下载指定的存储空间。然后重新产生jic文件即可成功。
FPGA的下载方式(配置方式)与掉电不丢失下载
FPGA的下载方式(配置方式)与掉电不丢失下载
如果还超过最大容量需对sof文件进行壓缩。选中sof文件点击Properties,选择压缩选项Compression再重新产生jic文件。
FPGA的下载方式(配置方式)与掉电不丢失下载
综合器编译完成后Quartus生成了软核.ptf,.pof囷.sof文件其中,.ptf用于之后在Nios Ⅱ IDE中编写在NIOS处理器运行的程序它是程序和NIOS处理器(FPGA配置文件)的桥梁。在Nios Ⅱ IDE中编写完程序后编译生成.elf文件。
JTAG方式通过JTAG接口将.sof文件配置到FPGA。此时FPGA已被配置成NIOS处理器注意要为NIOS添加EPCS控制器。
之后烧写外部存储器(以EPCS为例):