本發(fā)明涉及fpga動(dòng)態(tài)加載與遠(yuǎn)程配置領(lǐng)域,尤其是一種利用高速總線實(shí)現(xiàn)fpga程序快速加載的方法。
背景技術(shù):
fpga(fieldprogrammablegatearray)是基于sram的現(xiàn)場(chǎng)可編程邏輯器件,作為現(xiàn)代電子系統(tǒng)的核心,已廣泛應(yīng)用于電子技術(shù)的各個(gè)領(lǐng)域,特別是數(shù)字通訊、數(shù)據(jù)處理、自動(dòng)控制、精密儀器儀表等實(shí)時(shí)性要求高的應(yīng)用領(lǐng)域。伴隨著現(xiàn)代化通信系統(tǒng)復(fù)雜程度的不斷提升,fpga配置處理文件愈來(lái)愈大,相應(yīng)的加載時(shí)間愈來(lái)愈長(zhǎng),直接影響到系統(tǒng)的開(kāi)啟時(shí)間。
然而,傳統(tǒng)的fpga程序加載方法是采用jtag模式,將配置數(shù)據(jù)下載至fpga對(duì)應(yīng)的flash存儲(chǔ)芯片中。jtag(ieee1149.1標(biāo)準(zhǔn))是為了解決復(fù)雜電路難于整板測(cè)試以及表面貼裝技術(shù)帶來(lái)的有限測(cè)試引腳等問(wèn)題而提出的一種標(biāo)準(zhǔn)。jtag邊界掃描測(cè)試系統(tǒng)的體系結(jié)構(gòu)包括4個(gè)外部測(cè)試訪問(wèn)端口:測(cè)試數(shù)據(jù)輸入端口tdi、測(cè)試數(shù)據(jù)輸出端口tdo、測(cè)試時(shí)鐘tck、測(cè)試方式選擇tms。jtag時(shí)鐘tck的頻率最高可設(shè)置為12mbps,這種方式加載一個(gè)30mb大小的配置文件至1片flash中,需要30min左右,如果加載4個(gè)或更多fpga,則至少需要花費(fèi)2h,這種加載模式嚴(yán)重制約柔性生產(chǎn)線模塊的生產(chǎn)效率。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明所要解決的技術(shù)問(wèn)題是:針對(duì)上述存在的問(wèn)題,提供一種利用高速總線實(shí)現(xiàn)fpga程序快速加載的裝置及方法,操作方便,加載一個(gè)30mb大小的配置文件大約需要3min,極大的提升了fpga程序加載效率。
本發(fā)明提供的一種利用高速總線實(shí)現(xiàn)fpga程序快速加載的裝置,包括:上位機(jī)、電源、母板、fpga下載器、控制器模塊以及待加載模塊;
所述待加載模塊中包含至少一個(gè)fpga;
母板上設(shè)置有電源連接器、信號(hào)連接器、控制器模塊接口以及待加載模塊接口;控制器模塊接口與待加載模塊接口之間具有第一類高速總線連接;信號(hào)連接器與控制器模塊接口具有信號(hào)連接;電源連接器與控制器模塊接口及待加載模塊接口均具有電源線連接;
所述電源通過(guò)電源供電線與母板上的電源連接器連接;上位機(jī)的網(wǎng)口、串口分別與母板上的信號(hào)連接器連接;
控制器模塊與母板上的控制器模塊接口連接,待加載模塊與母板上的待加載模塊接口連接;
上位機(jī)的usb接口通過(guò)fpga下載器與待加載模塊的jtag接口連接。
進(jìn)一步,所述待加載模塊包括多個(gè)fpga,其中第一fpga通過(guò)所述第一類高速總線與控制器模塊連接;第一fpga分別通過(guò)第二類高速總線與其余fpga連接。
進(jìn)一步,所述第一類高速總線為srio總線。
進(jìn)一步,所述控制器模塊為powerpc模塊。
進(jìn)一步,所述第二類高速總線為lvds總線;在第一fpga與其余任意一個(gè)fpga之間的lvds總線均包括上行l(wèi)vds總線與下行l(wèi)vds總線。
進(jìn)一步,所述串口rs232口。
本發(fā)明還提供了一種基于前述裝置的方法,包括:
步驟1:上位機(jī)通過(guò)網(wǎng)口、母板上的信號(hào)連接器將待加載文件存儲(chǔ)到所述控制器模塊中;
步驟2:上位機(jī)通過(guò)usb接口、fpga下載器、jtag接口向待加載模塊下發(fā)用于配置傳輸通道的.bit文件,從而建立快速加載文件傳輸通道;
步驟3:上位機(jī)通過(guò)串口、母板上的信號(hào)連接器向控制器模塊發(fā)送加載指令;
步驟4:控制器模塊將所述待加載文件通過(guò)第一類高速總線傳輸給待加載模塊中的fpga。
待加載模塊中包括多個(gè)fpga;步驟2進(jìn)一步包括:上位機(jī)通過(guò)usb接口、fpga下載器、jtag接口向待加載模塊以批處理命令的方式下發(fā)多個(gè)用于配置傳輸通道的.bit文件,將多個(gè).bit文件分別加載至待加載模塊的各fpga內(nèi)部,從而建立快速加載文件傳輸通道。
步驟4進(jìn)一步包括:
步驟41:控制器模塊將多個(gè)待加載文件通過(guò)第一類高速總線傳輸給待加載模塊中的第一fpga;
步驟42:所述第一fpga通過(guò)第二類高速總線將其余fpga的待加載文件傳輸給對(duì)應(yīng)的fpga。
綜上所述,由于采用了上述技術(shù)方案,本發(fā)明的有益效果是:
本發(fā)明通過(guò)網(wǎng)口,控制器模塊及待加載模塊之間的高速總線實(shí)現(xiàn)了fpga配置文件的高效快速加載,克服了通過(guò)jtag口進(jìn)行fpga配置文件加載速率極慢的弊端。
本發(fā)明中的待加載模塊中的多個(gè)fpga采用星型總線拓?fù)浣Y(jié)果,進(jìn)一步提高了加載多個(gè)fpga的速度。
本發(fā)明操作簡(jiǎn)單方便,極大的提高了fpga的程序加載效率,對(duì)柔性生產(chǎn)線而言,產(chǎn)生了可觀的社會(huì)經(jīng)濟(jì)效益。
附圖說(shuō)明
本發(fā)明將通過(guò)例子并參照附圖的方式說(shuō)明,其中:
圖1為本發(fā)明一種利用高速總線實(shí)現(xiàn)fpga程序快速加載的方法硬件實(shí)現(xiàn)示意圖。
圖2為本發(fā)明fpga程序快速加載星型總線拓?fù)浣Y(jié)構(gòu)圖。
圖中標(biāo)記:上位機(jī)1、powerpc模塊2、待加載模塊3、母板4、信號(hào)連接器5、電源連接器6、電源供電線7、電源8、rs232控制線9、網(wǎng)線10、網(wǎng)口11、rs232口12、usb口13、fpga下載器14、jtag接口15。
具體實(shí)施方式
本說(shuō)明書(shū)中公開(kāi)的所有特征,或公開(kāi)的所有方法或過(guò)程中的步驟,除了互相排斥的特征和/或步驟以外,均可以以任何方式組合。
本說(shuō)明書(shū)中公開(kāi)的任一特征,除非特別敘述,均可被其他等效或具有類似目的的替代特征加以替換。即,除非特別敘述,每個(gè)特征只是一系列等效或類似特征中的一個(gè)例子而已。
如圖1所示,本發(fā)明的一個(gè)具體實(shí)施系統(tǒng)包括:上位機(jī)1、powerpc模塊2、待加載模塊3、母板4、電源供電線7、電源8、rs232控制線9、網(wǎng)線10、網(wǎng)口11、rs232口12、usb口13。
在母板4上,母板上設(shè)置有電源連接器6、信號(hào)連接器5、控制器模塊接口以及待加載模塊接口??刂破髂K接口與待加載模塊接口之間具有第一類高速總線連接;信號(hào)連接器與控制器模塊接口具有信號(hào)連接;電源連接器與控制器模塊接口及待加載模塊接口均具有電源線連接。
所述待加載模塊3插入母板4的待加載模塊接口中,powerpc模塊2插入母板4的控制模塊接口中。電源8通過(guò)電源供電線7連接至電源連接器6,網(wǎng)口11通過(guò)網(wǎng)線10連接至信號(hào)連接器5,rs232口12通過(guò)rs232控制線9連接至信號(hào)連接器5,fpga下載器14一端連接至上位機(jī)的usb口13,另一端連接至待加載模塊3的jtag接口15。
在其他實(shí)施例中,rs232口可以替換為其他類型的串口。powerpc模塊可替換為其他控制器模塊。
待加載模塊3中的fpga數(shù)量可以是單個(gè)也可以是多個(gè),這個(gè)根據(jù)用戶的需求而定。
本實(shí)施例中的待加載模塊3為高速數(shù)字電路板,內(nèi)部包含4片xilinx公司的v6系列fpga,每片fpga掛載分別掛載一片512m的flash;4片fpga的連接關(guān)系參見(jiàn)圖2,其中一片fpga通過(guò)所述第一類高速總線與powerpc模塊2連接;該fpga再分別通過(guò)第二類高速總線與其余fpga連接。優(yōu)選的,第一類高速總線為srio總線。第二類高速總線為lvds總線。在所述一片fpga與其余任意一個(gè)fpga之間的lvds總線均包括2對(duì)上行l(wèi)vds總線與2對(duì)下行l(wèi)vds總線,分別用于傳輸下行時(shí)鐘、下行數(shù)據(jù)、上行時(shí)鐘和上行數(shù)據(jù)。
所述powerpc模塊2內(nèi)部包括2個(gè)處理器,處理器之間采用速率為3.125gbps的srio總線通信,每個(gè)處理器分別配置容量為1g的雙通道ddr2sdrm。
本發(fā)明提供的基于上述硬件結(jié)構(gòu)的加載方法包括以下步驟:
步驟s1:上位機(jī)通過(guò)網(wǎng)口、母板上的信號(hào)連接器將待加載文件存儲(chǔ)到所述控制器模塊中。
具體的為,打開(kāi)上位機(jī)的ftp軟件,設(shè)置powerpc模塊2的ip地址,使用ftp登陸powerpc模塊2,通過(guò)ftp工具將4個(gè)待加載的.bin文件寫(xiě)入powerpc模塊2的ddr2存儲(chǔ)器中。
步驟s2:上位機(jī)通過(guò)usb接口、fpga下載器、jtag接口向待加載模塊3下發(fā)用于配置傳輸通道的.bit文件,從而建立快速加載文件傳輸通道。
在單片fpga的實(shí)施例中,快速加載文件傳輸通道由powerpc模塊2和待加載模塊3快速加載通道利用1組srio來(lái)實(shí)現(xiàn)。具體的在多片fpga的實(shí)施例中,將4個(gè).bit文件以批處理指令的方式傳輸?shù)酱虞d模塊3中,分別加載至4片fpga內(nèi)部,建立快速加載文件傳輸通道。其中,powerpc模塊2和待加載模塊3快速加載通道利用1組srio來(lái)實(shí)現(xiàn);待加載模塊3內(nèi)部4個(gè)fpga之間的快速加載通道采用4對(duì)lvds總線來(lái)實(shí)現(xiàn)。
第一片fpga傳輸通道的建立是利用硬件設(shè)計(jì)語(yǔ)言實(shí)現(xiàn)與powerpc模塊2的srio數(shù)據(jù)的接收,srio內(nèi)核接收到.bin數(shù)據(jù)后,通過(guò)lvds傳輸模塊,將數(shù)據(jù)分別傳輸?shù)狡溆嗟膄pga內(nèi)部的lvds傳輸模塊;第一片fpga接收到該加載至自身flash的.bin文件,通過(guò)其內(nèi)部flash配置內(nèi)核將.bin文件固化至與其連接的flash中,同理,其他fpga接收到自身的.bin文件,也將通過(guò)其內(nèi)部的flash內(nèi)核將.bin文件固化至與其連接的flash中。
.bin文件的作用是配置各個(gè)fpga,使其能按照一定的傳輸協(xié)議及數(shù)據(jù)發(fā)送方向傳輸待加載文件。
步驟s3:上位機(jī)通過(guò)串口、母板上的信號(hào)連接器向powerpc模塊2發(fā)送加載指令。
步驟s4:powerpc模塊2將所述待加載文件通過(guò)第一類高速總線傳輸給待加載模塊中的fpga。
具體的,先將powerpc模塊2保存的.bin文件寫(xiě)入到待加載模塊3的一片fpga對(duì)應(yīng)的flash存儲(chǔ)器中,該fpga再根據(jù)待加載文件的fpga號(hào)通過(guò)lvds總線加載到對(duì)應(yīng)的fpga的flash存儲(chǔ)器中。
所述加載至待加載模塊3內(nèi)部4片flash芯片中的配置文件格式為.bin文件,由ise軟件自動(dòng)生成,每片flash加載的.bin文件不相同。
為了驗(yàn)證本發(fā)明能夠利用高速總線實(shí)現(xiàn)fpga程序快速加載,克服傳統(tǒng)通過(guò)jtag接口15進(jìn)行加載速率慢的弊端。
首先按照利本發(fā)明方法對(duì)待加載模塊3進(jìn)行加載操作后,手動(dòng)關(guān)閉電源8,然后再打開(kāi)電源8,系統(tǒng)上電后,fpga自動(dòng)從flash中讀取配置數(shù)據(jù)完成配置。
然后打開(kāi)xilinx公司的chipscope軟件,利用jtag掃鏈的方式查看到fpga已經(jīng)完成系統(tǒng)配置,處在正常工作狀態(tài)。上述校驗(yàn)結(jié)果,驗(yàn)證了本發(fā)明利用高速總線實(shí)現(xiàn)fpga程序快速加載高效性、正確性、有效性。
本發(fā)明并不局限于前述的具體實(shí)施方式。本發(fā)明擴(kuò)展到任何在本說(shuō)明書(shū)中披露的新特征或任何新的組合,以及披露的任一新的方法或過(guò)程的步驟或任何新的組合。