|
SFL:Serial Flash Loader;
PFL:Parallel Flash Loader;
这是连个非常好用的工具,只要这两种flash挂在FPGA或者CPLD上(当然,至于是否要挂在逻辑器件上,取决于具体的应用),就可以通过FPGA简单的JTAG口,完成对于flash的ISP功能。具体使用方法有大致有两种:
第一种:借助Quartus软件
当然,我们可以用AS接口或者AP接口(CycloneIII),通过下载线实现对两种flash的烧写。但是,如果设计中只留有JTAG口呢?用户如何通过Jtag口加载挂在FPGA上的falsh呢?需要下面几步。
1.用Quartus提供的convert programing file工具,将sof文件,转换成jic文件,注意对于configuration device的选择,如果是串行falsh,那么,就要选择相关的EPCS,如果是并行falsh,就要选择CFIxxx。
2.生产.jic文件,就可以用Quartus programmer去烧写flash了。具体不再赘述,可以参考Quartus的手册。
实际上,.jic文件中,包含了SFL/PFL功能的image,同时还有要存到flash里面的内容。这个过程实际上是先配置fpga,使得fpga内部实现一个带有SFL/PFL功能的逻辑,然后借助个功能,将内容烧写到flash中。
第二种:DSP/CUP通过JTAG加载FPGA,并且要烧写falsh
如果用户用DSP/CUP去加载FPGA,而不是通过PC+下载线的方式。那么,自然要用到Jam Player了。
同样,我们还需要一个.jic文件,产生方法是一样的。
只不过,现在我们还需要根据jic文件,生成一个.jam文件,具体设置在Quartus Programmer file菜单下面。
一定要说明的一点是,尽管Quartus可以自动生产jam文件(或者jbc文件),但是那个自动生产的文件中,没有SFL/PFL的功能,它同.pof或者.sof的作用是一样的。我们要的是能够通过JTAG间接加载flash的文件。
这样,我们生产了需要的.jam文件,那么DSP/CPU调用jam player,去完成.jam文件的传输,就OK了。