FPGA固件程序燒寫配置方案

Intel 或 Xilinx 的 FPGA 芯片,使用的是基於 SRAM 結構的查找表,而 SRAM的一大特性就是掉電數據會丟失。

當使用 JTAG 將 SRAM 配置文件(.sof)配置到 FPGA 芯片中後,這些數據是直接存儲在 SRAM 結構的查找表中的,因此,一旦芯片掉電,則 SRAM 中的數據將丟失,再次上電後, SRAM 中將不再有有效的數據,這就是在使用 JTAG 下載 SOF 固件到 FPGA 中後,板子重新上電,則之前下載的固件又不在了的原因。

普通的 MCU 內部集成了片上程序存儲器 ROM,都是FLASH存儲器,FLASH存儲器能夠掉電保持數據,所以即使掉電後也能保存程序。

當系統設計完成並驗證結束後, 準備量產時,希望 FPGA 能夠永久保持電路固件,即讓 FPGA 上電後其查找表中就被寫入有效的數據。但是又不能總是每次系統上電後就用 JTAG 去下載一次程序固件。因此, FPGA 支持另外一種配置方式:

主動串行配置(AS)。

所謂主動串行配置,就是在 FPGA 芯片外部放置一片能夠掉電數據不丟失的存儲器,例如最常見的 EPCS、 QFLASH、並口 FLASH,來存儲設計好的電路固件。

而 FPGA 芯片內部,則設計了一個專用的硬件電路,在芯片剛上電時就主動去讀取存儲器中的固件,並配置到 FPGA 芯片的每一個 SRAM 中去。

通過這樣一種方式,可在不改變 FPGA 芯片 SRAM 工藝的查找表結構前提下, 使得芯片每次上電後,都能獲得有效的配置數據。外部存儲電路配置信息的芯片稱之爲配置芯片。

早前, 原 Altera 公司規定只能使用其自己發售的 EPCS 芯片作爲外部配置器件,該 EPCS 芯片實質就是一個 SPI 接口的串行 FLASH 芯片, 只不過是經過了Altera 的嚴格測試,性能優異。而近些年,隨着芯片生產工藝的不斷髮展,很多其他廠家生產的 SPI 接口的 FLASH 芯片也能夠達到 EPCS 的技術標準,因此Altera 就放開了該限制,並指出可以使用其他芯片廠家生產的 SPI 接口的 FLASH芯片代替 EPCS。在芯路恆的 AC620 上就使用了一片華邦公司生產的 16Mbit 的串行 FLASH 芯片 W25Q16 來作爲配置芯片。該芯片性能優異,性價比較高,完全能夠達到 EPCS 的性能標準。

Cyclone 系列FPGA 固件燒寫方案

當需要將設計好的配置固件固化到該器件中時,有兩種方式。

第一種方式,也就是傳統的方式,是使用專用 AS 接口(與 JTAG 10 針接口獨立)來直接燒寫該配置芯片,該種方式需要在電路板上設置一個獨立的 AS 接口,佔用 PCB 板面積較大,使用起來不方便。

第二種方式,也是現在流行的方式則是通過 JTAG 接口,經 FPGA 芯片間接燒寫配置芯片。附第二種配置方式

JIC文件燒錄步驟:

1.打開需要固化的FPGA設計工程;

2.點擊File->convert programming Files…
在這裏插入圖片描述
3. 在彈出的窗口中, Programming file type 選擇 JTAG Indirect Configuration File(.jic), Mode 選擇 Active Serial, Configuration device 選擇 EPCS16, File name 默認是 output_file.jic, 這裏,需要養成良好的習慣,將其改成工程名字與頂層文件一樣的名稱。
在這裏插入圖片描述
4. 在 input files to convert 一欄中, 點擊 Flash Loader 一項,在右側點擊 Add Device選項。
在這裏插入圖片描述
5. 點擊 Add Device 選項後在彈出的選項卡中,選擇正確的, 然後點擊 OK, 如下圖所示:
在這裏插入圖片描述
6. 點擊 OK 後會回到先前的配置頁面,此時再次鼠標點擊 SOF Data, 再點擊右側的 Add File,
在這裏插入圖片描述
7. 在彈出的窗口中, 在 output files 文件夾下找到“.sof” 文件,點擊 open,即可添加進來,
在這裏插入圖片描述
8. 點擊 open 後,回到配置頁面,點擊 Generate 按鈕, 如下圖所示
在這裏插入圖片描述
9. 點擊 Generate 按鈕後, 則軟件開始轉換文件,轉換成功後彈出成功提示窗口,
在這裏插入圖片描述
10. 點擊 OK 即可, 然後 close 窗口。

11.打開 Quartus中的下載工具 programmer,將原有的 sof 文件移出,重新添加.jic 文件進來,勾選 programming/configuration, 如下圖所示:
在這裏插入圖片描述
12.設置完成後,點擊 Start( 前提是下載器與開發板已經正確連接), 則軟件開始燒錄固件, 整個燒錄時間大約花費 20 秒鐘左右。 燒錄完成後, 此時固件已經保存在了配置芯片中,但是此刻 FPGA 還不能運行該固件, 因爲當前的固件是存在配置芯片中的,並沒有被配置到FPGA 中,因此需要讓 FPGA 執行一次從配置芯片中主動配置固件的過程, 方法很簡單,給板件斷電後重新上電即可。斷電再上電,固件依舊保持, 整個設計固化工作完成。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章