Jic文件第二部分與第三部分的數(shù)據(jù)在flash存儲空間中的映射有以下關(guān)系:
[0055]Addrpof= Addr flash+0ffSetaddr (I)
[0056]其中Addrptjf為Pof/Jic文件第二部分與第三部分數(shù)據(jù)的所在的絕對地址,Addrflasl^ FPGA對flash芯片操作的基地址。
[0057]計算可利用空間的地址范圍
[0058]文件組合的時候只能把用戶自定義數(shù)據(jù)組合在填充數(shù)據(jù)部分,而不能覆蓋原來FPGA配置數(shù)據(jù)內(nèi)容,否則將會影響FPGA啟動配置,因此要定位Pof/jic文件中可利用的空間的地址范圍。為此需先確定FPGA配置內(nèi)容在Pof/jic文件中存放的地址空間范圍。
[0059]QuartusII軟件在生成Pof/jic文件時,會通過同名的map文件來輸出FPGA配置內(nèi)容的地址空間范圍信息,如圖3所示。
[0060]map文件的內(nèi)容指示了 FPGA配置數(shù)據(jù)存放到flash存儲器時所占據(jù)的存儲空間地址范圍,flash剩余的空間都會被填充數(shù)據(jù)所占據(jù)??衫每臻g地址范圍則是填充數(shù)據(jù)所在的地址范圍。假設(shè)FPGA配置數(shù)據(jù)最后一個數(shù)據(jù)所在地址為Addrend, flash的數(shù)據(jù)空間為Sizeflash,則可利用空間在flash存儲器中的地址范圍為:
[0061]Addrend+l ?Sizeflash-1 (2)
[0062]根據(jù)前面Pof/jic文件數(shù)據(jù)與flash存儲地址的映射法則,可以推算出,在Pof/Jic文件中可利用空間所在地址范圍為:
[0063]Addrend+l+0ffsetaddr? Size flash-l+0ffsetaddr (3)
[0064]文件校驗碼生成
[0065]QuartusII在調(diào)用Pof/jic的時候會為這些文件的數(shù)據(jù)進行校驗,以防文件數(shù)據(jù)被錯誤的修改。因此如果因為組合用戶自定義數(shù)據(jù),而使Pof/jic文件數(shù)據(jù)內(nèi)容變動了,將會使該文件無法通過QuartusII軟件的校驗,因此需要對修改過的Pof/jic替換新的校驗碼。Pof/jic文件的校驗碼是16位的循環(huán)冗余校驗,其生成式如式(4)所示:
[0066]G (X) = x15+xn+x3 (4)
[0067]校驗對文件中除了校驗碼以外的所有內(nèi)容進行循環(huán)冗余校驗計算,其校驗計算結(jié)果為2個字節(jié)的校驗碼,并存放在文件尾部的最后兩個地址單元。
[0068]實現(xiàn)步驟:
[0069]下面以紅外圖像兩點校正系統(tǒng)為例說明本方案的運行步驟,其中用戶數(shù)據(jù)自定義數(shù)據(jù)為增益校正系數(shù)和偏移校正系數(shù),配置芯片需保存該增益校正系數(shù)和偏移校正系數(shù)以及應(yīng)用程序,F(xiàn)PGA上電后,先bootloader啟動應(yīng)用程序,然后由應(yīng)用程序加載增益校正系數(shù)和偏移校正系數(shù),加載后,再進行兩點校正計算。本實例選用的FPGA芯片是CycloneIII系列的EP3C25F256C8,外部存儲器為EPCS16。實現(xiàn)流程如圖4、5所示。
[0070]根據(jù)圖4,組合文件下載到外部存儲器的步驟概括如下:
[0071]1、在計算機上使用QuartusII軟件生成應(yīng)用程序的Pof/jic文件。
[0072]2、計算Pof/jic文件中地址偏置0ffsetadfc。
[0073]3、查閱map文件,由式(3)計算Pof/jic文件中可利用空間地址范圍。如果可用空間足夠,可進行步驟4 ;否則組合失敗,更換大容量的flash芯片,再進行步驟I。
[0074]4、由W、matlab等其他計算機上的工具將用戶自定義數(shù)據(jù)寫入到可利用空間地址范圍內(nèi)。
[0075]5、在計算機上,由式(4)對組合后的Pof/jic文件數(shù)據(jù)進行校驗碼計算,并替換原校驗碼。
[0076]6、在計算機上,生成新的Pof/jic文件。
[0077]7、將組合后的Pof/jic文件數(shù)據(jù)下載到外部存儲器中。
[0078]8、下載結(jié)束。
[0079]根據(jù)圖5,配置數(shù)據(jù)加載到FPGA的步驟概括如下:
[0080]1、系統(tǒng)上電。
[0081 ] 2、bootloader加載FPGA配置數(shù)據(jù),啟動應(yīng)用程序。
[0082]3、由應(yīng)用程序加載用戶自定義數(shù)據(jù),即增益校正系數(shù)和偏移校正系數(shù)。
[0083]4、兩點校正算法的運行。
[0084]圖6-9給出了本實例實現(xiàn)過程及結(jié)果的截圖。
[0085]由上述理論結(jié)合圖6分析可知,該文件的地址偏置OffSetadfc為95h。
[0086]圖7給出了可用地址空間的范圍及用戶填充的自定義數(shù)據(jù)。
[0087]本實例選用的是外部存儲器為EPCS16芯片,該芯片的容量為16Mbit,則該芯片的地址范圍為:00000000h?002000D2h,由圖3可知應(yīng)用程序存儲在EPCS的地址空間為00000000h?00040EC3h,則EPCS可用地址空間為00040EC4h?002000D2h,我們可以將用戶自定義數(shù)據(jù)填充此可用地址空間,圖中的用戶自定義數(shù)據(jù)(增益校正系數(shù)和偏移校正系數(shù))理解如下:
[0088]增益校正系數(shù)為A,數(shù)據(jù)位寬32bit,數(shù)據(jù)值為40000000h,數(shù)據(jù)長度為6C000h,EPCS16起始地址為00050000h。偏移校正系數(shù)為B,數(shù)據(jù)位寬16bit,數(shù)據(jù)值為O?255循環(huán)數(shù),數(shù)據(jù)長度為36000h,EPCS16起始地址為00120000h。
[0089]由(I)式可知增益校正系數(shù)A在Pof/jic文件的起始地址為00050095h,偏移校正系數(shù)B在Pof/jic文件的起始地址為00120095h,由(3)式可知增益校正系數(shù)A在Pof/jic文件的結(jié)束地址為000BC094h,偏移校正系數(shù)B在Pof/jic文件的結(jié)束地址為00156090h,計算結(jié)果與圖7組合后的地址空間完全吻合。
[0090]在Pof/jic文件中,多個byte為一個系數(shù),按低位優(yōu)先存儲,在燒寫到外部存儲器時,需按高位優(yōu)先輸出,故存在每個字的按位翻轉(zhuǎn)過程,例如:增益校正系數(shù)A占4個字節(jié),以數(shù)據(jù)40000000h為例,由于數(shù)據(jù)在組合文件時會做一次按位翻轉(zhuǎn),所以文件組合后增益系數(shù)為00000002h ;偏移校正系數(shù)B占2個字節(jié),以組合后數(shù)據(jù)8000h為例,讀取的值應(yīng)為OOOlho如圖8、9所示。
[0091]圖8、9給出了 SingalTapII軟件仿真測試結(jié)果。
[0092]由圖8可知,EPCS地址為00050000h時,讀取的增益校正系數(shù)與圖7 —致。
[0093]由圖9可知,EPCS地址為00120000h時,讀取的偏移校正系數(shù)與圖7 —致。
[0094]以上所述,僅為本發(fā)明較佳的【具體實施方式】,本發(fā)明的保護范圍不限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明披露的技術(shù)范圍內(nèi),可顯而易見地得到的技術(shù)方案的簡單變化或等效替換均落入本發(fā)明的保護范圍內(nèi)。
【主權(quán)項】
1.一種利用配置芯片實現(xiàn)啟動引導(dǎo)和數(shù)據(jù)的讀寫系統(tǒng),其特征在于:包括計算機、下載器、FPGA芯片、外部存儲器, 所述計算機用于組合自定義數(shù)據(jù)和FPGA的應(yīng)用程序,生成下載文件pof/jic ; 所述下載器用于連接計算機和FPGA,實現(xiàn)pof/jic文件的下載; 所述FPGA為可編程器件,輔助實現(xiàn)pof/jic文件到外部存儲器的傳輸、應(yīng)用程序的運行以及用戶數(shù)據(jù)的讀寫; 所述外部存儲器用于存儲包含應(yīng)用程序和用戶自定義數(shù)據(jù)的pof/jic文件,它可以是EPCS 的 flash 芯片。
2.一種利用配置芯片實現(xiàn)啟動引導(dǎo)和數(shù)據(jù)的讀寫方法,其特征在于:包括以下步驟: 組合文件下載到外部存儲器;配置數(shù)據(jù)加載到FPGA ;其中: 組合文件下載到外部存儲器包括以下步驟: 1)在計算機上使用QuartusII軟件生成應(yīng)用程序的Pof/jic文件; 2)計算Pof/jic文件中地址偏置; 3)查閱map文件, 由 Addrend+l+Offsetaddr?Size flash_l+0ffsetaddr計算 Pof/jic 文件中可利用空間地址范圍;如果可用空間足夠,可進行步驟4);否則組合失敗,更換大容量的flash芯片,再進行步驟I) 4)由VC、matlab其他計算機上的工具將用戶自定義數(shù)據(jù)寫入到可利用空間地址范圍內(nèi); 5)在計算機上,由G(x)= x15+xn+x3對組合后的Pof/jic文件數(shù)據(jù)進行校驗碼計算,并替換原校驗碼; 6)在計算機上,生成新的Pof/jic文件; 7)將組合后的Pof/jic文件數(shù)據(jù)下載到外部存儲器中; 8)下載結(jié)束; 配置數(shù)據(jù)加載到FPGA包括以下步驟: 1)系統(tǒng)上電; 2)bootloader加載FPGA配置數(shù)據(jù),啟動應(yīng)用程序; 3)由應(yīng)用程序讀寫用戶自定義數(shù)據(jù),并運行相關(guān)功能。
【專利摘要】本發(fā)明公開了一種利用配置芯片實現(xiàn)啟動引導(dǎo)和數(shù)據(jù)的讀寫系統(tǒng)及方法,該系統(tǒng)包括計算機、下載器、FPGA芯片、外部存儲器,所述計算機用于組合自定義數(shù)據(jù)和FPGA的應(yīng)用程序,生成下載文件pof/jic;所述下載器用于連接計算機和FPGA,實現(xiàn)pof/jic文件的下載;所述FPGA為可編程器件,輔助實現(xiàn)pof/jic文件到外部存儲器的傳輸、應(yīng)用程序的運行以及用戶數(shù)據(jù)的讀寫;所述外部存儲器用于存儲包含應(yīng)用程序和用戶自定義數(shù)據(jù)的pof/jic文件,它可以是EPCS等flash芯片。
【IPC分類】G06F9-445, G06F12-02, G06F3-06
【公開號】CN104657175
【申請?zhí)枴緾N201510064323
【發(fā)明人】何先燈, 朱暢華, 蘇慶旦, 陳南, 權(quán)東曉, 易運暉, 裴昌幸, 侯俊丞
【申請人】西安電子科技大學(xué)
【公開日】2015年5月27日
【申請日】2015年2月6日