FPGA学习笔记之Altera FPGA使用JIC文件配置固化教程
FPGA學(xué)習(xí)筆記之Altera FPGA使用JIC文件配置固化教程
很多做過單片機(jī)的朋友都知 道,我們在對MCU燒寫完程序固件后,那么該程序固件就存儲在了該MCU內(nèi)部。即使MCU斷電了再重新上電,程序也能繼續(xù)運行。這是因為對MCU燒寫固件 的實質(zhì)就是將程序固件寫入到MCU的片上程序存儲器ROM中,而現(xiàn)代的大部分MCU這個ROM都是FLASH存儲器。FLASH存儲器能夠掉電保持?jǐn)?shù)據(jù), 所以可以實現(xiàn)掉電程序不丟失。Altera或Xilinx的FPGA芯片,使用的是基于SRAM結(jié)構(gòu)的查找表,而SRAM的一大特性就是掉電數(shù)據(jù)會丟失, 當(dāng)我們使用JTAG將SRAM配置文件(.sof)配置到FPGA芯片中后,這些數(shù)據(jù)是直接存儲在SRAM結(jié)構(gòu)的查找表中的,因此,一旦芯片掉電,則 SRAM中的數(shù)據(jù)將丟失,再次上電后,SRAM中將不再有有效的數(shù)據(jù)。這也就是我們常見的,使用JTAG下載SOF固件到FPGA中后,板子重新上電,則 之前下載的固件又不在了的原因。當(dāng)我們的系統(tǒng)做穩(wěn)定后并量產(chǎn)時,當(dāng)然希望能夠永久保持電路固件,即讓FPGA上電后其查找表中就被寫入有效的數(shù)據(jù)。但是我 們又不能總是每次系統(tǒng)上電了就用JTAG去下載一次程序固件。因此,FPGA支持另外一種配置方式:主動串行配置。
?? 所謂主動串行配置,就是在FPGA芯片外部放置一片能夠掉電數(shù)據(jù)不丟失的存儲器,例如最常見的EPCS、QFLASH、并口FLASH,來存儲設(shè)計好的電 路固件。而FPGA芯片內(nèi)部,則設(shè)計了一個專用的硬件電路,在芯片剛上電的時刻就主動去讀取存儲在該存儲器中的固件,并配置到FPGA芯片的每一個 SRAM中去。通過這樣一種方式,即可在不改變FPGA芯片SRAM工藝的查找表結(jié)構(gòu)前提下,讓每次芯片上電后,都能獲得有效的配置數(shù)據(jù)。外部存儲電路配 置信息的芯片,我們稱之為配置芯片。前些年,Altera的FPGA芯片指明只能使用其公司自己發(fā)售的EPCS芯片作為外部配置器件,該EPCS芯片實質(zhì) 就是一個SPI接口的串行FLASH芯片,不過是經(jīng)過了Altera的嚴(yán)格測試,性能優(yōu)異。而近些年,隨著芯片生產(chǎn)工藝的不斷發(fā)展,很多其他廠家生產(chǎn)的 SPI接口的FLASH芯片也能夠達(dá)到EPCS的技術(shù)標(biāo)準(zhǔn),因此Altera就放開了該限制,并指出可以使用其他芯片廠家生產(chǎn)的SPI接口的FLASH芯 片代替EPCS。我們芯航線starter board上就使用了一片ST公司生產(chǎn)的16Mbit的串行FLASH芯片M25P16來作為配置芯片。該芯片性能優(yōu)異,完全能夠達(dá)到EPCS的性能標(biāo) 準(zhǔn),而成本則只有相同容量的EPCS芯片的一半不到。
?? 當(dāng)我們需要將設(shè)計好的配置固件固化到該器件中時,有兩種方式,第一種方式,也就是傳統(tǒng)的方式是使用專用AS接口(與JTAG 10針接口獨立)來直接燒寫該配置芯片,該種方式需要在電路板上設(shè)置一個獨立的AS接口,占用PCB板面積。第二種方式,也是現(xiàn)在流行的方式則是通過 JTAG接口,經(jīng)由FPGA芯片間接燒寫該配置芯片。我們的開發(fā)板沒有做獨立的AS接口,因此只支持第二種燒寫方式。以下對該種燒寫方式以一個實際例子來 進(jìn)行講解說明。
?
1,打開希望固化的FPGA設(shè)計工程,這里我直接打開按鍵消抖這節(jié)課的工程。
2,在quartus ii軟件中點擊File—>Convert Programming Files,如下圖所示:
3,在彈出的窗口中,Programming file type 選擇JTAG Indirect Configuration File(.jic),Mode選擇Active Serial,Configuration device選擇EPCS16,File name默認(rèn)是output_file.jic,這里,我們養(yǎng)成良好的習(xí)慣,將其改成工程名字:key_filter.jic。
?
4,在input files to convert一欄中,點擊Flash Loader一項,在右側(cè)點擊Add Device選項,如下圖所示:(溫馨提示:點擊圖片可查看高清大圖)
?
?
?5,點擊Add Device選項后在彈出的選項卡中,選擇EP4CE10,然后點擊OK,如下圖所示:(溫馨提示:點擊圖片可查看高清大圖)
?
?
? 6,點擊OK后會回到先前的配置頁面,此時再次鼠標(biāo)點擊SOF Data,再點擊右側(cè)的Add File,如下圖所示:(溫馨提示:點擊圖片可查看高清大圖)
?
?
?7,在彈出的窗口中,在output files文件夾下找到“key_filter.sof”文件,點擊open,即可添加進(jìn)來,如下圖所示:(溫馨提示:點擊圖片可查看高清大圖)
?
?
8,點擊open后,回到配置頁面,點擊Generate按鈕,如下圖所示:(溫馨提示:點擊圖片可查看高清大圖)
?
?
?
9,點擊Generate按鈕后,則軟件開始轉(zhuǎn)換文件,轉(zhuǎn)換成功后彈出成功提示窗口,如下圖所示:(溫馨提示:點擊圖片可查看高清大圖)
?
?
?
?
10,點擊OK即可,然后close窗口。
?
11,打開Quartus II中的下載工具programmer,將原有的sof文件移出,重新添加key_filter.jic文件進(jìn)來,勾選programming/configuration,如下圖所示:(溫馨提示:點擊圖片可查看高清大圖)
?
?
12,設(shè)置完成后,點擊Start(前提是下載器與開發(fā)板已經(jīng)正確連接),則軟件開始燒錄固件,整個燒錄時間大約花費20秒鐘左右。燒錄完成后,此時固件 已經(jīng)保存在了配置芯片中,但是此刻FPGA還不能運行該固件,因為當(dāng)前的固件是存在配置芯片中的,并沒有被配置到FPGA中,因此需要讓FPGA執(zhí)行一次 從配置芯片中主動配置固件的過程,方法很簡單,給開發(fā)板斷電后重新上電即可。此時,我們按下按鍵0或者按鍵1,就可以看到LED的狀態(tài)發(fā)生變化了。斷電再 上電,固件依舊保持,整個設(shè)計固化工作完成。
總結(jié)
以上是生活随笔為你收集整理的FPGA学习笔记之Altera FPGA使用JIC文件配置固化教程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 并联匹配和串联匹配的原理和选择
- 下一篇: verilog中b',d',h'的意思