Altera FPGA开发过程中sof、pof、jic文件的区别
1、sof文件
sof文件是编译(分析、综合、布线、生成、时序)过程中生成的一个文件,如下图红圈过程中所示,
生成的sof文件是可以直接通过JTAG口下载到FPGA的SRAM中去并直接执行。所以sof文件可以“看成”是raw binary文件,当然还是有区别的,就相当于HEX文件和BIN文件的区别一样,HEX文件和BIN文件可以互相转换。
2、pof文件
pof文件和sof文件一样也是在Assemble过程中生成的,但是pof文件是不能直接下载到FPGA的SRAM中去的,而是通过ASP端口直接下载到FPGA的配置芯片中去的。配置芯片一般是串行FLASH芯片,在上电的时候FPGA会主动的从配置芯片中读取数据并烧写内部的SRAM数据然后执行程序。
3、jic文件
jic文件不是在编译过程中生成的,而是需要使用Quartus II软件的“Convert Programing File”功能将sof文件转换得到的。得到的jic文件,通过JTAG口可以将jic文件通过FPGA作为桥接芯片下载到配置芯片中去。如下图:
可以看出来jic文件的性质和pof文件的性质是一样的,都是固化在配置芯片中的,但是下载方式是不一样的,pof文件是直接通过ASP端口直接下载到配置芯片中去的,而jic文件需要通过FPGA作为桥接再下载到配置芯片中去,两种方法各有各的好处,使用jic文件省了一个ASP端口,使用pof文件不需要转换直接就能下载。