这天突然琢磨了下这个问题,就搜索了一下答案,转载如下:
Xilinx的JTAG电缆可以通过FPGA“直接”烧写SPI/BPI。很多对xilinx开发环境不熟悉的用户,如果第一次接触这种烧写模式可能会有疑惑,FPGA是如何做到JTAG和Flash之间的桥接的,难道FPGA内部有专用的电路去实现这一功能吗?
其实不是的。FPGA内部并没有设计(预留)专用的电路去实现JTAG到Flash的转换,在我们通过JTAG烧写Flash时,电脑其实是先要预下载一个bit文件到FPGA的,就是这个临时bit文件起到了一个桥接的功能。
所以,整个编程flash的过程是分成了2个独立的步骤:
- 预下载一个bit文件到目标FPGA,实现JTAG到Flash的桥接通路
- 然后,通过jtag传输要烧写的文件数据到flash
因为预制的bit文件不可能支持所有的flash型号,所以我们在设计选型的时候,要留意下XilinxFPGA所支持的型号列表:
-
SPI flash
-
BPI Flash