溫長澤
摘 要:CPLD/FPGA是復(fù)雜的可編程邏輯器件,都是由PAL、GAL等器件發(fā)展而來。CPLD/FPGA技術(shù)的數(shù)字系統(tǒng)設(shè)計,主要包括設(shè)計面積和速度兩個方面,該文主要通過資源共享設(shè)計和流水線設(shè)計等來研究CPLD/FPGA技術(shù)的數(shù)字系統(tǒng)設(shè)計,希望在應(yīng)用中有一定的借鑒作用。
關(guān)鍵詞:數(shù)字系統(tǒng) CPLD/FPGA 設(shè)計
中圖分類號:TP332 文獻(xiàn)標(biāo)識碼:A 文章編號:1674-098X(2013)02(c)-00-01
1 CPLD/FPGA技術(shù)
CPLD/FPGA是復(fù)雜的可編程邏輯器件,屬于規(guī)模化的集成電路的范疇。目前,該技術(shù)的集成度已經(jīng)達(dá)到200萬門/片,融合了ASIC高集成度的特點(diǎn)以及可編程邏輯器便于設(shè)計生產(chǎn)的特點(diǎn),比較適用于開發(fā)小批量產(chǎn)品和樣品的研究制造,縮短了產(chǎn)品上市的時間。
CPLD內(nèi)利用長度固定的金屬線把各邏輯塊連接起來,設(shè)計出的各種邏輯電路都可以很好的預(yù)測時間,有效地彌補(bǔ)了分段式互連結(jié)構(gòu)在時序不完全預(yù)測中的缺點(diǎn)。CPLD的特點(diǎn)有編程靈活、設(shè)計開發(fā)周期短、集成度高、適用范圍寬、工具先進(jìn)、成本較低、不用測試、價格大眾化等。CPLD在眾多的電路設(shè)計規(guī)模比較大,所以在產(chǎn)品的設(shè)計和生產(chǎn)上得到廣泛應(yīng)用,可以說CPLD適用于所有可以使用中小型數(shù)字系統(tǒng)的集成電路的場合。目前,CPLD技術(shù)的數(shù)字系統(tǒng)器件已經(jīng)成為電子產(chǎn)品必要的組成部分,關(guān)于CPLD的設(shè)計和使用是電子工程師一種必備的技能。
FPGA也是由PAL和GAL等發(fā)展而來,它以半定制電路的形式在ASIC中出現(xiàn),既彌補(bǔ)了定制電路的缺陷,又消除了可編程器件的缺點(diǎn)。
FPGA主要由輸出輸入模塊、可配置邏輯模塊和內(nèi)部連線構(gòu)成,在編程方面不限次數(shù)。FPGA作為復(fù)雜的可編程邏輯器件,在結(jié)構(gòu)上和傳統(tǒng)邏輯電路以及PAL和GAL器件有著很大的不同。FPGA采用小型查找表進(jìn)行組合邏輯,每一個查找表都通過輸入端連接一個觸發(fā)器,再由觸發(fā)器驅(qū)動另外的邏輯電路,構(gòu)成的這種基本的邏輯單元模塊有組合邏輯功能和時序邏輯功能,不同的邏輯模塊之間是由金屬線連接在一起的。FPGA的邏輯由靜態(tài)的存儲單元通過加載邏輯編程的數(shù)據(jù)來完成,儲存在存儲器單元的數(shù)據(jù)值對它的邏輯功能和不同模塊間的連接方式有決定作用,同時對FPGA可實(shí)現(xiàn)的功能也有決定作用。
CPLD和FPGA都屬于可編程ASIC器件,但又有著較大的不同。CPLD比較適合于在各種算法以及組合邏輯上使用,它布線結(jié)構(gòu)的連續(xù)性對延時起著決定的作用,保密性比較好;FPGA比較適于在時序邏輯方面使用,它采用分段式的布線結(jié)構(gòu),比CPLD的布線結(jié)構(gòu)更為復(fù)雜,邏輯實(shí)現(xiàn)也更困難,造成了延時不便于很準(zhǔn)確的預(yù)測,保密性比較差。
2 CPLD/FPGA技術(shù)的數(shù)字電路系統(tǒng)設(shè)計方法
2.1 基于面積的優(yōu)化設(shè)計
在CPLD/FPGA技術(shù)的數(shù)字系統(tǒng)設(shè)計時,對它的器件資源進(jìn)行優(yōu)化設(shè)計,即使是較小的CPLD/FPGA器件也可以達(dá)到相當(dāng)?shù)臄?shù)字系統(tǒng)功能,優(yōu)化后的系統(tǒng)器件資源越少,消耗的費(fèi)用就越少,有效的節(jié)約了系統(tǒng)器件的成本。基于面積的優(yōu)化設(shè)計主要有資源共享設(shè)計和串行化設(shè)計兩種方式。
利用CPLD/FPGA技術(shù)設(shè)計數(shù)字系統(tǒng)時,常常會碰到同一個模塊需要多次調(diào)用的狀況。這種電路結(jié)構(gòu)通常占用的器件資源很多,一般為算術(shù)模塊,例如多位加法器、乘法器等,大部分的數(shù)字系統(tǒng)資源都由他們占據(jù)。利用資源共享為這種電路結(jié)構(gòu)進(jìn)行設(shè)計時,可以大大提高電路器件資源的使用率。
預(yù)進(jìn)位加法器主要用來提升加法器中信號的傳輸,加法器的進(jìn)位是xn,系統(tǒng)的速度主要由信號中每個分組的位數(shù)n所決定。
資源共享設(shè)計通常有先加后選的方式和先選后加的方式,綜合考慮兩種方式,加法器這種方式比選擇器耗費(fèi)的資源多,一般采用先選后加這種方式會更好。
串行化設(shè)計主要是通過分割耗費(fèi)資源大以及單個時鐘周期內(nèi)完成的電路功能的方式,提取電路功能相同的模塊,并用這些模塊在多個時鐘周期做同樣的數(shù)字系統(tǒng)功能。數(shù)字系統(tǒng)設(shè)計串行化后,會使電路邏輯變得復(fù)雜了,不過資源消耗卻少了,有著明顯的使用效果。
2.2 基于速度的優(yōu)化設(shè)計
在CPLD/FPGA技術(shù)的數(shù)字系統(tǒng)設(shè)計時,運(yùn)行速度通常是最重要的。影響CPLD/FPGA技術(shù)的數(shù)字系統(tǒng)運(yùn)行速度的因素很多,主要有CPLD/FPGA的組成結(jié)構(gòu)特征、數(shù)字系統(tǒng)的電路構(gòu)成、綜合器的性能等。
流水線設(shè)計技術(shù)可以顯著的提高數(shù)字系統(tǒng)的運(yùn)行速度,目前,微處理器、高速數(shù)字和數(shù)字信號處理器等系統(tǒng)設(shè)計時一般都是用流水線技術(shù)進(jìn)行設(shè)計。對于數(shù)字系統(tǒng)的設(shè)計,一般速度是設(shè)計中首先要考慮的問題,采用CPLD/FPGA技術(shù),高速運(yùn)行往往是首要的需求。如果設(shè)計好一個系統(tǒng)電路,速度方面沒有達(dá)到期望的要求,往往需要更換運(yùn)行更快的器件并重新設(shè)計,很顯然會增加很多不必要的成本。
基于CPLD/FPGA技術(shù)的數(shù)字系統(tǒng)設(shè)計,除了流水線設(shè)計之外,還有其他一些方式。寄存器配平法,這種方式主要是利用配平寄存器之間的各種組合來延時數(shù)字系統(tǒng)邏輯塊。寄存器配平是在流水線設(shè)計基礎(chǔ)上深化而成的方式,流水線設(shè)計是把組合邏輯延時塊分為數(shù)個較小的延時塊,寄存器配平則是把延時不同的兩個組合邏輯塊的延時平均分配。關(guān)鍵路徑法,這種方式是在數(shù)字系統(tǒng)的設(shè)計中延時最長的邏輯路徑,可以有效的提高器件運(yùn)行速度。一般來說延時的長短與信號是否經(jīng)過最大路徑有關(guān),與延時所經(jīng)過的較小路徑?jīng)]有關(guān)系。
3 結(jié)語
在CPLD/FPGA技術(shù)的數(shù)字系統(tǒng)設(shè)計時,是選擇對面積進(jìn)行優(yōu)化設(shè)計還是選擇對速度進(jìn)行設(shè)計,往往要根據(jù)實(shí)際情況進(jìn)行考慮。因?yàn)楹芏嗲闆r下兩種選擇是有矛盾的,一般不能同時滿足要求。假如考慮面積設(shè)計的需要,會使運(yùn)行時間加長,降低了該數(shù)字系統(tǒng)的運(yùn)行速度;假如考慮速度設(shè)計的需要,往往要增加很多邏輯器件,速度相應(yīng)的提高了,但是占用的空間也大了,所以在實(shí)際應(yīng)用中應(yīng)該根據(jù)具體的環(huán)境綜合考慮各種參數(shù)。
參考文獻(xiàn)
[1] 宋翠方,王連明,于安寧.基于FPGA數(shù)字系統(tǒng)設(shè)計的速度優(yōu)化方法研究[J].東北師大學(xué)報(自然科學(xué)版),2011(4).
[2] 李桂林,苗長新.基于Verilog HDL的FPGA數(shù)字系統(tǒng)設(shè)計優(yōu)化[J].計算機(jī)與數(shù)字工程,2010(8).
[3] 杜志傳,鄭建立.基于CPLD/FPGA的VHDL語言電路優(yōu)化設(shè)計[J].現(xiàn)代電子技術(shù),2010(3).
[4] 詹惠琴,古軍.CPLD和虛擬儀器的頻率計綜合設(shè)計[J].實(shí)驗(yàn)科學(xué)與技術(shù),2008(2).
[5] 趙紅梅,王召東.可編程邏輯器件FPGA與CPLD的發(fā)展與應(yīng)用一例[J].平頂山工學(xué)院學(xué)報,2007(4).