李春雨
摘要:提出了基于復(fù)雜可編程邏輯器件(CPLD)的現(xiàn)場可編程門陣列(FPGA)從并加載方案,及邏輯代碼的實現(xiàn)過程,并給出仿真結(jié)果。該方案理論計算結(jié)果表明,當(dāng)加載SPARTAN-6系列最高端的6SLX150T時,采用基于CPLD的從并加載方式,共需要加載時間為1.221 s,完全滿足通信產(chǎn)品的快啟動要求,具有較高的應(yīng)用價值。
關(guān)鍵詞: FPGA;CPLD;控制器;從并;加載;啟動
Abstract: This paper describes field programmable gate array (FPGA) parallel loading scheme, which is based on complex programmable logic device (CPLD). This paper also describes the implementation process of logic code and provides simulation results. The calculation results of this scheme show that using a CPLD-based parallel-loading scheme when loading the 6SLX150T (highest level of SPARTAN-6), the loading time is just 1.221 s. This fully satisfies the quick boot of communication products and has higher application value.
Key words: FPGA; CPLD; controller; salve parallel; loading; boot
現(xiàn)場可編程門陣列(FPGA)作為專用集成電路(ASIC)領(lǐng)域的一種半定制電路[1],可以根據(jù)設(shè)計的需要靈活實現(xiàn)各種接口或者總線的輸出,在設(shè)備端的通信產(chǎn)品中已得到越來越廣泛的使用[2]。FPGA是基于靜態(tài)隨機存儲器(SRAM)結(jié)構(gòu)的,斷電后程序丟失后的每次上電都需要重新加載程序。且隨著FPGA規(guī)模的升級,加載程序的容量也越來越大,如Xilinx公司的Spartan -6系列中的6SLX150T,其加載容量最大可以達(dá)到4.125 MB [3]。在通信產(chǎn)品中,要求系統(tǒng)啟動快,相應(yīng)FPGA加載時間盡可能短,因此其加載方式是產(chǎn)品設(shè)計時必須要妥善解決的一個問題。文章介紹了通過復(fù)雜可編程邏輯器件(CPLD)對FPGA加載方式的并行實現(xiàn),滿足通信系統(tǒng)的加載速度快、占用資源少的要求。
1 FPGA常用配置方式
FPGA的配置數(shù)據(jù)通常存放在系統(tǒng)中的存儲器件中,上電后控制器讀取存儲器中的bit文件并加載到FPGA中[4],配置方式有JTAG、從并、從串、主從[5]4種,不同廠家叫法不同,但實現(xiàn)方式基本都是一樣的[6] 。
(1)邊界掃描JTAG方式。單板調(diào)試階段常用JTAG模式[7],該方式需要控制器,F(xiàn)PGA等芯片JTAG接口構(gòu)成菊花鏈,且在該模式下,控制器其他功能不能使用。
(2)從串方式。從串加載方式占用資源少,主要是和FPGA相連的I/O接口較少,但是一個配置時鐘只能傳輸一個bit數(shù)據(jù),速度相對較低。
(3)主從方式。該方式最主要的缺點是配套使用的FLASH存儲器必須是FPGA廠家指定的型號,且這個FLASH容量不大,不能和控制器的FLASH共用,使用這種方式,單板上就會有兩個FLASH,增加產(chǎn)品成本,因此該方案使用較少。
(4)從并方式。即文章中探討的FPGA加載方案。
2 從并加載方式的實現(xiàn)
以Xilinx公司Spartan -6系列FPGA為例,與從并加載相關(guān)的管腳如表1所示[8]。
由表1可以看出,從并加載接口占用的管腳資源是比較多的,即使加載數(shù)據(jù)總線使用8位,也要14個管腳,CPU一般沒有這么多通用輸入/輸出(GPIO)口,因此從并加載一般和CPLD配套使用。其加載流程如圖1所示。
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,因此①、②兩步加載時間可以忽略不計。
之后CPU通過和CPLD的接口③——8位的局部總線接口,將配置數(shù)據(jù)逐字節(jié)的寫入CPLD的寄存器中。以MIPS系列CPU XLS408為例,XLS408工作時鐘頻率為66.7 MHz,寫總線周期最快需要10個工作時鐘周期[9],即6.67 MHz,這一步受局部總線速度限制。
數(shù)據(jù)寫入到CPLD后,再通過接口④——CPLD與FPGA之間的從并接口,將數(shù)據(jù)加載到FPGA,從并接口是同步總線,加載時間受限于總線時鐘CCLK頻率。
本方案的優(yōu)點為:①、②兩條路徑可以在加載之前處理,且運行速度快,不占用加載時間。加載時間只受③、④的限制,而③受限于寫總線周期間隔,④受限于從并接口的時鐘。
3.2程序?qū)崿F(xiàn)
CPLD從并程序采用verilog[10-11]語言實現(xiàn),該加載模塊接口定義如下:
程序?qū)崿F(xiàn)流如圖3所示。
FPGA加載片選和寫信號產(chǎn)生部分代碼如下:
4 仿真及加載結(jié)果分析
基于modelsim 6.5SE[12-13]仿真波形可以看出CPU每加載1字節(jié)數(shù)據(jù)需要向CPLD寫1次加載數(shù)據(jù),這共需花費一個局部總線周期,局部總線頻率最快為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,共需時間為:
[4.125CCLK] = [4.125 6.67 MHz] = 0.61 s (2)
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[14];采用基于CPLD的從串加載方式,加載同樣4.125 MB的FPGA數(shù)據(jù),CPLD加載時鐘33 MHz,則加載時間需要3.8 s[15],F(xiàn)PGA加載時間過長,則會影響系統(tǒng)的啟動時間。
表2是常用加載方式加載6SLX150T型號FPGA芯片數(shù)據(jù)所需時間比較。
從上述分析可以得出結(jié)論,如果提高CPU的局部總線寫速度,加載FPGA的時間就會更快。
5結(jié)束語
使用基于CPLD的FPGA從并加載方案,相對于其它幾種加載方式,雖然加載管腳增多,但加載時間大大縮短,并且如果提高CPU局部總線的寫速度,加載速度有進(jìn)一步提高空間,滿足通信系統(tǒng)快速啟動的要求,具有很高的實用價值。
摘要:提出了基于復(fù)雜可編程邏輯器件(CPLD)的現(xiàn)場可編程門陣列(FPGA)從并加載方案,及邏輯代碼的實現(xiàn)過程,并給出仿真結(jié)果。該方案理論計算結(jié)果表明,當(dāng)加載SPARTAN-6系列最高端的6SLX150T時,采用基于CPLD的從并加載方式,共需要加載時間為1.221 s,完全滿足通信產(chǎn)品的快啟動要求,具有較高的應(yīng)用價值。
關(guān)鍵詞: FPGA;CPLD;控制器;從并;加載;啟動
Abstract: This paper describes field programmable gate array (FPGA) parallel loading scheme, which is based on complex programmable logic device (CPLD). This paper also describes the implementation process of logic code and provides simulation results. The calculation results of this scheme show that using a CPLD-based parallel-loading scheme when loading the 6SLX150T (highest level of SPARTAN-6), the loading time is just 1.221 s. This fully satisfies the quick boot of communication products and has higher application value.
Key words: FPGA; CPLD; controller; salve parallel; loading; boot
現(xiàn)場可編程門陣列(FPGA)作為專用集成電路(ASIC)領(lǐng)域的一種半定制電路[1],可以根據(jù)設(shè)計的需要靈活實現(xiàn)各種接口或者總線的輸出,在設(shè)備端的通信產(chǎn)品中已得到越來越廣泛的使用[2]。FPGA是基于靜態(tài)隨機存儲器(SRAM)結(jié)構(gòu)的,斷電后程序丟失后的每次上電都需要重新加載程序。且隨著FPGA規(guī)模的升級,加載程序的容量也越來越大,如Xilinx公司的Spartan -6系列中的6SLX150T,其加載容量最大可以達(dá)到4.125 MB [3]。在通信產(chǎn)品中,要求系統(tǒng)啟動快,相應(yīng)FPGA加載時間盡可能短,因此其加載方式是產(chǎn)品設(shè)計時必須要妥善解決的一個問題。文章介紹了通過復(fù)雜可編程邏輯器件(CPLD)對FPGA加載方式的并行實現(xiàn),滿足通信系統(tǒng)的加載速度快、占用資源少的要求。
1 FPGA常用配置方式
FPGA的配置數(shù)據(jù)通常存放在系統(tǒng)中的存儲器件中,上電后控制器讀取存儲器中的bit文件并加載到FPGA中[4],配置方式有JTAG、從并、從串、主從[5]4種,不同廠家叫法不同,但實現(xiàn)方式基本都是一樣的[6] 。
(1)邊界掃描JTAG方式。單板調(diào)試階段常用JTAG模式[7],該方式需要控制器,F(xiàn)PGA等芯片JTAG接口構(gòu)成菊花鏈,且在該模式下,控制器其他功能不能使用。
(2)從串方式。從串加載方式占用資源少,主要是和FPGA相連的I/O接口較少,但是一個配置時鐘只能傳輸一個bit數(shù)據(jù),速度相對較低。
(3)主從方式。該方式最主要的缺點是配套使用的FLASH存儲器必須是FPGA廠家指定的型號,且這個FLASH容量不大,不能和控制器的FLASH共用,使用這種方式,單板上就會有兩個FLASH,增加產(chǎn)品成本,因此該方案使用較少。
(4)從并方式。即文章中探討的FPGA加載方案。
2 從并加載方式的實現(xiàn)
以Xilinx公司Spartan -6系列FPGA為例,與從并加載相關(guān)的管腳如表1所示[8]。
由表1可以看出,從并加載接口占用的管腳資源是比較多的,即使加載數(shù)據(jù)總線使用8位,也要14個管腳,CPU一般沒有這么多通用輸入/輸出(GPIO)口,因此從并加載一般和CPLD配套使用。其加載流程如圖1所示。
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,因此①、②兩步加載時間可以忽略不計。
之后CPU通過和CPLD的接口③——8位的局部總線接口,將配置數(shù)據(jù)逐字節(jié)的寫入CPLD的寄存器中。以MIPS系列CPU XLS408為例,XLS408工作時鐘頻率為66.7 MHz,寫總線周期最快需要10個工作時鐘周期[9],即6.67 MHz,這一步受局部總線速度限制。
數(shù)據(jù)寫入到CPLD后,再通過接口④——CPLD與FPGA之間的從并接口,將數(shù)據(jù)加載到FPGA,從并接口是同步總線,加載時間受限于總線時鐘CCLK頻率。
本方案的優(yōu)點為:①、②兩條路徑可以在加載之前處理,且運行速度快,不占用加載時間。加載時間只受③、④的限制,而③受限于寫總線周期間隔,④受限于從并接口的時鐘。
3.2程序?qū)崿F(xiàn)
CPLD從并程序采用verilog[10-11]語言實現(xiàn),該加載模塊接口定義如下:
程序?qū)崿F(xiàn)流如圖3所示。
FPGA加載片選和寫信號產(chǎn)生部分代碼如下:
4 仿真及加載結(jié)果分析
基于modelsim 6.5SE[12-13]仿真波形可以看出CPU每加載1字節(jié)數(shù)據(jù)需要向CPLD寫1次加載數(shù)據(jù),這共需花費一個局部總線周期,局部總線頻率最快為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,共需時間為:
[4.125CCLK] = [4.125 6.67 MHz] = 0.61 s (2)
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[14];采用基于CPLD的從串加載方式,加載同樣4.125 MB的FPGA數(shù)據(jù),CPLD加載時鐘33 MHz,則加載時間需要3.8 s[15],F(xiàn)PGA加載時間過長,則會影響系統(tǒng)的啟動時間。
表2是常用加載方式加載6SLX150T型號FPGA芯片數(shù)據(jù)所需時間比較。
從上述分析可以得出結(jié)論,如果提高CPU的局部總線寫速度,加載FPGA的時間就會更快。
5結(jié)束語
使用基于CPLD的FPGA從并加載方案,相對于其它幾種加載方式,雖然加載管腳增多,但加載時間大大縮短,并且如果提高CPU局部總線的寫速度,加載速度有進(jìn)一步提高空間,滿足通信系統(tǒng)快速啟動的要求,具有很高的實用價值。
摘要:提出了基于復(fù)雜可編程邏輯器件(CPLD)的現(xiàn)場可編程門陣列(FPGA)從并加載方案,及邏輯代碼的實現(xiàn)過程,并給出仿真結(jié)果。該方案理論計算結(jié)果表明,當(dāng)加載SPARTAN-6系列最高端的6SLX150T時,采用基于CPLD的從并加載方式,共需要加載時間為1.221 s,完全滿足通信產(chǎn)品的快啟動要求,具有較高的應(yīng)用價值。
關(guān)鍵詞: FPGA;CPLD;控制器;從并;加載;啟動
Abstract: This paper describes field programmable gate array (FPGA) parallel loading scheme, which is based on complex programmable logic device (CPLD). This paper also describes the implementation process of logic code and provides simulation results. The calculation results of this scheme show that using a CPLD-based parallel-loading scheme when loading the 6SLX150T (highest level of SPARTAN-6), the loading time is just 1.221 s. This fully satisfies the quick boot of communication products and has higher application value.
Key words: FPGA; CPLD; controller; salve parallel; loading; boot
現(xiàn)場可編程門陣列(FPGA)作為專用集成電路(ASIC)領(lǐng)域的一種半定制電路[1],可以根據(jù)設(shè)計的需要靈活實現(xiàn)各種接口或者總線的輸出,在設(shè)備端的通信產(chǎn)品中已得到越來越廣泛的使用[2]。FPGA是基于靜態(tài)隨機存儲器(SRAM)結(jié)構(gòu)的,斷電后程序丟失后的每次上電都需要重新加載程序。且隨著FPGA規(guī)模的升級,加載程序的容量也越來越大,如Xilinx公司的Spartan -6系列中的6SLX150T,其加載容量最大可以達(dá)到4.125 MB [3]。在通信產(chǎn)品中,要求系統(tǒng)啟動快,相應(yīng)FPGA加載時間盡可能短,因此其加載方式是產(chǎn)品設(shè)計時必須要妥善解決的一個問題。文章介紹了通過復(fù)雜可編程邏輯器件(CPLD)對FPGA加載方式的并行實現(xiàn),滿足通信系統(tǒng)的加載速度快、占用資源少的要求。
1 FPGA常用配置方式
FPGA的配置數(shù)據(jù)通常存放在系統(tǒng)中的存儲器件中,上電后控制器讀取存儲器中的bit文件并加載到FPGA中[4],配置方式有JTAG、從并、從串、主從[5]4種,不同廠家叫法不同,但實現(xiàn)方式基本都是一樣的[6] 。
(1)邊界掃描JTAG方式。單板調(diào)試階段常用JTAG模式[7],該方式需要控制器,F(xiàn)PGA等芯片JTAG接口構(gòu)成菊花鏈,且在該模式下,控制器其他功能不能使用。
(2)從串方式。從串加載方式占用資源少,主要是和FPGA相連的I/O接口較少,但是一個配置時鐘只能傳輸一個bit數(shù)據(jù),速度相對較低。
(3)主從方式。該方式最主要的缺點是配套使用的FLASH存儲器必須是FPGA廠家指定的型號,且這個FLASH容量不大,不能和控制器的FLASH共用,使用這種方式,單板上就會有兩個FLASH,增加產(chǎn)品成本,因此該方案使用較少。
(4)從并方式。即文章中探討的FPGA加載方案。
2 從并加載方式的實現(xiàn)
以Xilinx公司Spartan -6系列FPGA為例,與從并加載相關(guān)的管腳如表1所示[8]。
由表1可以看出,從并加載接口占用的管腳資源是比較多的,即使加載數(shù)據(jù)總線使用8位,也要14個管腳,CPU一般沒有這么多通用輸入/輸出(GPIO)口,因此從并加載一般和CPLD配套使用。其加載流程如圖1所示。
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,因此①、②兩步加載時間可以忽略不計。
之后CPU通過和CPLD的接口③——8位的局部總線接口,將配置數(shù)據(jù)逐字節(jié)的寫入CPLD的寄存器中。以MIPS系列CPU XLS408為例,XLS408工作時鐘頻率為66.7 MHz,寫總線周期最快需要10個工作時鐘周期[9],即6.67 MHz,這一步受局部總線速度限制。
數(shù)據(jù)寫入到CPLD后,再通過接口④——CPLD與FPGA之間的從并接口,將數(shù)據(jù)加載到FPGA,從并接口是同步總線,加載時間受限于總線時鐘CCLK頻率。
本方案的優(yōu)點為:①、②兩條路徑可以在加載之前處理,且運行速度快,不占用加載時間。加載時間只受③、④的限制,而③受限于寫總線周期間隔,④受限于從并接口的時鐘。
3.2程序?qū)崿F(xiàn)
CPLD從并程序采用verilog[10-11]語言實現(xiàn),該加載模塊接口定義如下:
程序?qū)崿F(xiàn)流如圖3所示。
FPGA加載片選和寫信號產(chǎn)生部分代碼如下:
4 仿真及加載結(jié)果分析
基于modelsim 6.5SE[12-13]仿真波形可以看出CPU每加載1字節(jié)數(shù)據(jù)需要向CPLD寫1次加載數(shù)據(jù),這共需花費一個局部總線周期,局部總線頻率最快為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,共需時間為:
[4.125CCLK] = [4.125 6.67 MHz] = 0.61 s (2)
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[14];采用基于CPLD的從串加載方式,加載同樣4.125 MB的FPGA數(shù)據(jù),CPLD加載時鐘33 MHz,則加載時間需要3.8 s[15],F(xiàn)PGA加載時間過長,則會影響系統(tǒng)的啟動時間。
表2是常用加載方式加載6SLX150T型號FPGA芯片數(shù)據(jù)所需時間比較。
從上述分析可以得出結(jié)論,如果提高CPU的局部總線寫速度,加載FPGA的時間就會更快。
5結(jié)束語
使用基于CPLD的FPGA從并加載方案,相對于其它幾種加載方式,雖然加載管腳增多,但加載時間大大縮短,并且如果提高CPU局部總線的寫速度,加載速度有進(jìn)一步提高空間,滿足通信系統(tǒng)快速啟動的要求,具有很高的實用價值。