現(xiàn)場可編程門陣列(FPGA)作為專用集成電路(ASIC)領(lǐng)域的一種半定制電路,可以根據(jù)設(shè)計的需要靈活實現(xiàn)各種接口或者總線的輸出,在設(shè)備端的通信產(chǎn)品中已得到越來越廣泛的使用。FPGA是基于靜態(tài)隨機(jī)存儲器(SRAM)結(jié)構(gòu)的,斷電后程序丟失后的每次上電都需要重新加載程序。且隨著FPGA規(guī)模的升級,加載程序的容量也越來越大,如Xilinx公司的Spartan - 6系列中的6SLX150T,其加載容量最大可以達(dá)到4.125 MB. 1 FPGA常用配置方式 FPGA的配置數(shù)據(jù)通常存放在系統(tǒng)中的存儲器件中,上電后控制器讀取存儲器中的bit文件并加載到FPGA中,配置方式有JTAG、從并、從串、主從4種,不同廠家叫法不同,但實現(xiàn)方式基本都是一樣的。 (1)邊界掃描JTAG方式。單板調(diào)試階段常用JTAG模式,該方式需要控制器,F(xiàn)PGA等芯片JTAG接口構(gòu)成菊花鏈,且在該模式下,控制器其他功能不能使用。 (2)從串方式。從串加載方式占用資源少,主要是和FPGA相連的I/O接口較少,但是一個配置時鐘只能傳輸一個bit數(shù)據(jù),速度相對較低。 (3)主從方式。該方式最主要的缺點(diǎn)是配套使用的FLASH存儲器必須是FPGA廠家指定的型號,且這個FLASH容量不大,不能和控制器的FLASH共用,使用這種方式,單板上就會有兩個FLASH,增加產(chǎn)品成本,因此該方案使用較少。 (4)從并方式。即文章中探討的FPGA加載方案。 2從并加載方式的實現(xiàn) 以Xilinx公司Spartan - 6系列FPGA為例,與從并加載相關(guān)的管腳如表1所示。 表1從并加載管腳名稱 由表1可以看出,從并加載接口占用的管腳資源是比較多的,即使加載數(shù)據(jù)總線使用8位,也要14個管腳,CPU一般沒有這么多通用輸入/輸出(GPIO)口,因此從并加載一般和CPLD配套使用。其加載流程如圖1所示。 圖1 SPARTAN-6從并加載流程 3基于CPLD的FPGA加載方案 3.1方案介紹 在設(shè)備端通信產(chǎn)品中,基于CPLD的FPGA從并加載框如圖2所示,配置數(shù)據(jù)存儲在FLASH中,且在加載數(shù)據(jù)之前,CPU通過局部總線和雙倍速內(nèi)存(DDR)接口,將配置數(shù)據(jù)從FLASH中搬移到DDR顆粒;真正需要加載時,再通過DDR2接口將配置數(shù)據(jù)搬移到CPU的緩存中,DDR2接口速度很快,其時鐘頻率可以達(dá)到266 MHz,因此①、②兩步加載時間可以忽略不計。 圖2基于CPLD的FPGA從并加載框 之后CPU通過和CPLD的接口③——8位的局部總線接口,將配置數(shù)據(jù)逐字節(jié)的寫入CPLD的寄存器中。以MIPS系列CPU XLS408為例,XLS408工作時鐘頻率為66.7 MHz,寫總線周期最快需要10個工作時鐘周期,即6.67 MHz,這一步受局部總線速度限制。 數(shù)據(jù)寫入到CPLD后,再通過接口④——CPLD與FPGA之間的從并接口,將數(shù)據(jù)加載到FPGA,從并接口是同步總線,加載時間受限于總線時鐘CCLK頻率。 本方案的優(yōu)點(diǎn)為:①、②兩條路徑可以在加載之前處理,且運(yùn)行速度快,不占用加載時間。加載時間只受③、④的限制,而③受限于寫總線周期間隔,④受限于從并接口的時鐘。 3.2程序?qū)崿F(xiàn) CPLD從并程序采用verilog語言實現(xiàn),該加載模塊接口定義如下: 程序?qū)崿F(xiàn)流如圖3所示。 圖3基于CPLD從并加載FPGA的程序流程 FPGA加載片選和寫信號產(chǎn)生部分代碼如下: 4仿真及加載結(jié)果分析 基于modelsim 6.5SE仿真波形可以看出CPU每加載1字節(jié)數(shù)據(jù)需要向CPLD寫1次加載數(shù)據(jù),這共需花費(fèi)一個局部總線周期,局部總線頻率最快為6.67 MHz.因此CPU加載4.125 MB數(shù)據(jù)到CPLD共需時間為: CPLD需要1個CCLK周期寫1字節(jié)數(shù)據(jù)到FPGA,CCLK則是利用CPU局部總線的寫信號產(chǎn)生,可以實現(xiàn)CCLK和數(shù)據(jù)的同步,因此CCLK時鐘速率為6.67 MHz,因此加載4.125 MB數(shù)據(jù)到FPGA,共需時間為: FPGA上電需要1 ms,因此當(dāng)FPGA使用SPARTAN-6系列最高端的6SLX150T時,采用基于CPLD的從并加載方式,共需要的加載時間為1.221 s,滿足通信產(chǎn)品FPGA加載時間小于2 s的要求。而如果采用從串等加載方式,使用ARM7處理器作為控制器,對于CycloneII系列中的EP2C35,配置文件大小1.16 MB,加載時間需要1.30 min;采用基于CPLD的從串加載方式,加載同樣4.125 MB的FPGA數(shù)據(jù),CPLD加載時鐘33MHz,則加載時間需要3.8 s,F(xiàn)PGA加載時間過長,則會影響系統(tǒng)的啟動時間。 表2是常用加載方式加載6SLX150T型號FPGA芯片數(shù)據(jù)所需時間比較。 表2 FPGA加載時間對比 從上述分析可以得出結(jié)論,如果提高CPU的局部總線寫速度,加載FPGA的時間就會更快。 5結(jié)束語 使用基于CPLD的FPGA從并加載方案,相對于其它幾種加載方式,雖然加載管腳增多,但加載時間大大縮短,并且如果提高CPU局部總線的寫速度,加載速度有進(jìn)一步提高空間,滿足通信系統(tǒng)快速啟動的要求,具有很高的實用價值。 |