FPGA器件有三类配置下载方式:
1:主动配置方式(AS)
2:被动配置方式(PS)
3:最常用的JTAG方式
AS模式(active serial configuration mode): FPGA每次上电时作为控制器,由FPGA器件引导配置操作过程,它控制着外部存储器和初始化过程,向配置器件主动发出读取数据信号,从而把EPCS**的数据读入FPGA中,实现对FPGA的编程配置数据通过FPGA_DATA0引脚送入FPGA,配置数据被同步在FPGA_DCLK上,1个时钟传送1位数据。
PS模式(passive serial configuration mode): 由外部计算机或者控制器控制配置过程,通过加强型配置器件(EPC16, EPC8)等配置器件来完成,EPCS作为控制器件,把FPGA当作存储器,把数据写入到FPGA中,实现对FPGA的编程,该模式可以实现对FPGA在线可编程。
JTAG模式:JTAG是直接烧到FPGA里面的,由于是烧写到SRAM中,因此断电后要重烧,AS是烧到FPGA的配置芯片里保存的,每次上电就写到FPGA里。
一般情况下,Cyclone器件应该有两种下载方式,AS和JTAG,AS就是下载.pof文件到EPCS**中,而JTAG是下载.sof文件到FPGA中的SRAM中。
如何生成.pof文件并将其下载到EPCS**中呢?
首先在建立好工程,编译和分配引脚之后。
![](https://i-blog.csdnimg.cn/blog_migrate/9b6c88c7c2813d7386cfee9e90e33b3a.png)
单击device,选择device and pin options
![](https://i-blog.csdnimg.cn/blog_migrate/1387ca9cc125dedff3b2294c614095e5.png)
进入后选择:
![](https://i-blog.csdnimg.cn/blog_migrate/199809a3bf49c710c619b3c0516d92eb.png)
然后重新编译就会生成.pof文件,就可以在programmer中下载了。
![](https://i-blog.csdnimg.cn/blog_migrate/e71aa32eddaae3591c7757a13d8cf692.png)
mode选择active serial programming。
![](https://i-blog.csdnimg.cn/blog_migrate/6856d725b071ec2b495d852045b1fe55.png)
在program/configure中打勾。点击start开始下载。过会儿下载成功。
然后再把板子的run/prom的开关切换回run状态,下次上电保持程序不丢失。
一般在做FPGA实验板的时候,用AS+JTAG的方式,这样可以用JTAG方式调试,在调试无误后采用AS模式把程序烧写到配置芯片里面去,这样有一个明显的优点,就是在AS模式不能下载的时候,可以利用QuartusII自带的工具生成JTAG模式下可以利用的.jic文件,来验证配置芯片是否已经损坏。
首先来看.jic文件如何生成:
1,在QuartusII界面选择File-Convert Programmer Files
![](https://i-blog.csdnimg.cn/blog_migrate/f2c917feddd901c4d4e7a44c0d2aaf58.png)
2,Programming file type 选择.jic。
![](https://i-blog.csdnimg.cn/blog_migrate/ff961a2cada17fcfe5dc04c6786067ac.png)
3,Configure device 根据实际选择,这里选择EPCS16
![](https://i-blog.csdnimg.cn/blog_migrate/4d6e3b13ad18043a2ef6c7f769691ae6.png)
4,在File name 文本框中,输入或浏览选择JIC 文件名和存放路径。
5,
在Input files to convert 栏中单击Flash Loader,
单击 add device 打开Select Device (选择器件) 对话框
![](https://i-blog.csdnimg.cn/blog_migrate/8cd7b3f43890478578ff0ad66f7c2fd0.png)
根据实际情况选择相应器件,并ok
![](https://i-blog.csdnimg.cn/blog_migrate/e43ec0cb79bc03925f56231e1b018fec.png)
6,
在Input files to convert 栏中单击SOF Data
![](https://i-blog.csdnimg.cn/blog_migrate/25d82dc4f5d65905dfff8158d7e1b2cd.png)
7,点击add file
![](https://i-blog.csdnimg.cn/blog_migrate/7f02096fe341f1e112d1434283b5d894.png)
8,
SOF Data 下面出现要被转换的输入SOF 文件,如图所示。单击SOF Data 下的输入SOF 文件,
单击Properties打开SOF File Properties (SOF 文件属性) 对话框。(注意SOF选中的时候,才能打开
Properties
)
![](https://i-blog.csdnimg.cn/blog_migrate/4938a9b672431c31c512ab1d3642abde.png)
9,
通过上面的步骤,就完成了SOF 文件到JIC 文件的转换。
接下来使用.Jic文件和QuartusII Programmer对EPCS**进行烧写
1 双击启动Programmer
![](https://i-blog.csdnimg.cn/blog_migrate/8ecc55b90e859082352616a00d140330.png)
2
参照下图,选中图中的Program/Configure 下的两个复选框;注意,如果有打开的SOF文件,在JTAG 烧写JIC 的时候,需要先删除掉。
![](https://i-blog.csdnimg.cn/blog_migrate/ae716a7738ef14cceb5a965950deb6a2.png)
3 单击户St a rt 开始编程,等待编程完成。