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