電子百科
復(fù)雜的可編程邏輯器件CPLD規(guī)模大,結(jié)構(gòu)復(fù)雜,屬于大規(guī)模集成電路范圍。
CPLD有五個(gè)主要部分:邏輯陣列塊、宏單元、擴(kuò)展乘積項(xiàng)、可編程連線陣列和I/O控制塊。
1.邏輯陣列塊(LAB)
一個(gè)邏輯陣列塊由16個(gè)宏單元的陣列組成,多個(gè)LAB通過(guò)可編程陣列(PIA)和全局總線連接在一起。全局總線從所有的專用輸入、I/O引腳和宏單元饋入信號(hào)。對(duì)于每個(gè)LAB有下列輸入信號(hào)。
來(lái)自作為通用邏輯輸入的PIA的36個(gè)信號(hào)
全局控制信號(hào),用于寄存器輔助功能
從I/O引腳到寄存器的直接輸入通道
.宏單元
MAX7000系列中的宏單元由3個(gè)功能塊組成:邏輯陣列、乘積項(xiàng)選擇矩陣和可編程寄存器。各部分可以被獨(dú)自配置為時(shí)序邏輯和組合邏輯工作方式。其中邏輯陣列實(shí)現(xiàn)組合邏輯,可以為每個(gè)宏單元提供5個(gè)乘積項(xiàng)。乘積項(xiàng)選擇矩陣分配這些乘積項(xiàng)作為到“或門”和“異或門”的主要邏輯輸入,以實(shí)現(xiàn)組合邏輯函數(shù),或者把這些乘積項(xiàng)作為宏單元中寄存器的輔助輸入:如清零、置位、時(shí)鐘和時(shí)鐘使能控制。
每個(gè)宏單元中的觸發(fā)器可以單獨(dú)地編程為具有可編程時(shí)鐘控制的D、T、JK或RS觸發(fā)器的工作方式。觸發(fā)器的時(shí)鐘、清零輸入可以通過(guò)編程選擇使用專用的全局清零和全局時(shí)鐘,或使用內(nèi)部邏輯(乘積項(xiàng)邏輯陣列)產(chǎn)生的時(shí)鐘和清零。觸發(fā)器也支持異步清零和異步置位功能,乘積項(xiàng)選擇矩陣分配乘積項(xiàng)來(lái)控制這些操作。如果不需要觸發(fā)器,也可以將此觸發(fā)器旁路,信號(hào)直接輸給PIA或輸出到I/O引腳,以實(shí)現(xiàn)組合邏輯工作方式。
3.?dāng)U展乘積項(xiàng)
每個(gè)宏單元的一個(gè)乘積項(xiàng)可以反相回送到邏輯陣列。這個(gè)“可共享”的乘積項(xiàng)能夠連到同一個(gè)LAB中的任何其它乘積項(xiàng)上。盡管大多數(shù)邏輯函數(shù)能夠用每個(gè)宏單元中的5個(gè)乘積項(xiàng)實(shí)現(xiàn),但在某些復(fù)雜的邏輯函數(shù)中需要附加乘積項(xiàng)。為提供所需的邏輯資源,可以利用另一個(gè)宏單元,MAX70000結(jié)構(gòu)也允許利用共享和并聯(lián)擴(kuò)展乘積項(xiàng),這兩種擴(kuò)展項(xiàng)可作為附加的乘積項(xiàng)直接送到本LAB的任意宏單元中。利用擴(kuò)展項(xiàng)可保證在實(shí)現(xiàn)邏輯綜合時(shí),用盡可能少的邏輯資源實(shí)現(xiàn)盡可能快的工作速度。
4.可編程連線陣列PIA
通過(guò)可編程連線陣列可將各LAB相互連接構(gòu)成所需的邏輯。這個(gè)全局總線是可編程的通道,它能把器件中任何信號(hào)源連到其目的地。所有MAX7000系列器件的專用輸入、I/O引腳和宏單元輸出均饋送到PIA,PIA可把這些信號(hào)送到整個(gè)器件內(nèi)的各個(gè)地方。只有每個(gè)LAB所需的信號(hào)才真正給它布置從PIA到該LAB的連線,如圖是PIA信號(hào)布線到LAB的方式。
5.I/O控制塊
I/O控制塊允許每個(gè)I/O引腳單獨(dú)地配置成輸入/輸出和雙向工作方式。所有I/O引腳都有一個(gè)三態(tài)緩沖器,它能由全局輸出使能信號(hào)中的一個(gè)控制,或者把使能端直接連接到地(GND)或電源(VCC)上。MAX7000系列器件的I/O控制框圖如圖所示。MAX7000器件有6個(gè)全局輸出使能信號(hào),它們可以由以下信號(hào)驅(qū)動(dòng):兩個(gè)輸出使能信號(hào)、一個(gè)I/O引腳的集合、一個(gè)I/O宏單元的集合,或者是它“反相”后的信號(hào)。
當(dāng)三態(tài)緩沖器的控制端接地(GND)時(shí),其輸出為高阻態(tài),而且I/O引腳可作為專用輸入引腳。當(dāng)三態(tài)緩沖器的控制端接電源(VCC)時(shí),輸出使能有效。
MAX7000結(jié)構(gòu)提供了雙I/O反饋,且宏單元和引腳的反饋是相互獨(dú)立的。當(dāng)I/O引腳配置成輸入時(shí),有關(guān)的宏單元可以用于隱含邏輯。
由于CPLD器件廠商眾多,CPLD器件的選擇同其它通用邏輯器件不同,除考慮器件本身的性能外,配套軟件的支持也是器件選擇的重要依據(jù)。目前市場(chǎng)上已有的CPLD/FPGA器件生產(chǎn)廠家有20多個(gè),而設(shè)計(jì)軟件除生產(chǎn)廠家自行研制的軟件外還有幾十多種獨(dú)立軟件。加上高性能器件的價(jià)格已經(jīng)不菲,更不用說(shuō)設(shè)計(jì)軟件的價(jià)格,所以如何選用合適的CPLD器件,不只是一件一次性的工作,還涉及到設(shè)計(jì)軟件的選用以及今后進(jìn)一步工作的開(kāi)展。
首先,用戶應(yīng)該根據(jù)自身的技術(shù)環(huán)境、技術(shù)條件、使用習(xí)慣等選擇一種合適的軟件工具,同時(shí)要兼顧EDA技術(shù)的發(fā)展。與占據(jù)優(yōu)勢(shì)的軟件供應(yīng)商同時(shí)也與多數(shù)芯片制造商建立了良好的合作伙伴關(guān)系,所以,擁有一種設(shè)計(jì)軟件,再進(jìn)一步選擇不同的工具庫(kù),或增加部分配置,即可對(duì)不同廠家的不同種類的FPGA產(chǎn)品進(jìn)行設(shè)計(jì)。
其次,用戶可根據(jù)設(shè)計(jì)的需要確定選擇哪一類可編程器件。如果用于航天、軍事領(lǐng)域等性能要求高的領(lǐng)域,反熔絲技術(shù)的一次編程型可編程芯片是首選;如果要完成多種算術(shù)運(yùn)算,或是要求在較高速度下,CPLD /FPGA是較好的選擇;而對(duì)于功能復(fù)雜的時(shí)序邏輯電路而言,標(biāo)準(zhǔn)門陣列單元型的FPGA具有集成度高、保持靈活和功耗低的優(yōu)點(diǎn)。
當(dāng)然,這只是通用準(zhǔn)則,關(guān)鍵是所選擇的器件能滿足設(shè)計(jì)要求的所有功能,在此基礎(chǔ)上,再利用上述準(zhǔn)則確定具體的一種器件。
最后,選定某一廠家的產(chǎn)品,生產(chǎn)同類器件的廠家很多,一般依據(jù)以下準(zhǔn)則進(jìn)行選擇。
選擇有設(shè)計(jì)軟件支持的廠家的芯片,這樣可減少資本投入,降低成本。
選擇產(chǎn)品設(shè)計(jì)性能改進(jìn)有余量的。如果所選擇的芯片是某一廠家產(chǎn)品中容量最大,或是速度最高的,那么,一但設(shè)計(jì)需要改進(jìn),則有可能在該廠家的芯片中再選不出合適的來(lái)了。
設(shè)計(jì)應(yīng)用的延續(xù)性和可擴(kuò)展性。如果所選廠家的產(chǎn)品具有很大的局限性,則有可能僅僅適用于很少一部分設(shè)計(jì),從而造成設(shè)計(jì)軟件投入上的浪費(fèi)。
選擇性能價(jià)格比最優(yōu)的。盡管象Xilinx、Altera這樣的器件生產(chǎn)廠家都在通過(guò)降價(jià)來(lái)作市場(chǎng)宣傳,大多數(shù)芯片的價(jià)格還是比較高的,所有在滿足上述準(zhǔn)則的情況下適當(dāng)考慮價(jià)格也是有必要的。
CPLD以及FPGA等相關(guān)可編程器件的發(fā)展非??欤厦娴倪x擇依據(jù)是從市場(chǎng)的角度出發(fā)對(duì)市場(chǎng)份額較大、行業(yè)內(nèi)目前處于領(lǐng)先地位的部分廠家進(jìn)行的,具有一定的代表性,但不是十分全面。只有不斷跟蹤這一領(lǐng)域的技術(shù)發(fā)展和市場(chǎng)動(dòng)態(tài)才能對(duì)可編程芯片有更加全面、不斷更新的認(rèn)識(shí),在應(yīng)用系統(tǒng)的設(shè)計(jì)中更好地利用CPLD,以提高產(chǎn)品的設(shè)計(jì)水平。
目前市場(chǎng)上CPLD的軟件種類繁多,軟件可以分為廠家集成開(kāi)發(fā)軟件、編輯軟件,邏輯綜合軟件、仿真軟件及其他測(cè)試工具軟件等。其中集成開(kāi)發(fā)軟件一般是由廠家直接提供,集成了編輯、綜合、仿真、布線等功能。其他專門軟件屬于單項(xiàng)功能的專用軟件。
1.集成開(kāi)發(fā)軟件
目前CPLD集成開(kāi)發(fā)軟件主要有三家公司的軟件,分別是Altera公司、Xilinx公司、Lattice公司。
Altera公司提供的開(kāi)發(fā)軟件是用戶最常用的。此類軟件是集成的CPLD開(kāi)發(fā)環(huán)境。有多個(gè)版本,早期的Max+plusII,MaxplusII Baseline Altera,MaxplusII E+MAX等,基本都可以完成所有的設(shè)計(jì)輸入(原理圖或HDL),仿真,綜合,布線,下載等工作。而且是免費(fèi)PLD開(kāi)發(fā)軟件,目前Altera公司轉(zhuǎn)向QuartusII軟件平臺(tái),QuartusII屬于新一代PLD開(kāi)發(fā)軟件,適合大規(guī)模FPGA的開(kāi)發(fā)。
Xilinx公司提供的CPLD軟件也有多個(gè)版本,早期Foundation軟件目前已基本不使用,ISE4.1軟件是目前Xilinx公司的主流版本軟件。Xilinx公司也提供免費(fèi)的開(kāi)發(fā)軟件,分別是WebPACK ISE 和WebFITTER。
Lattice公司提供的開(kāi)發(fā)軟件是ispDesignEXPERT的PLD,目前最新軟件改名為ispLEVER。ispLEVER Starter是Lattice公司的免費(fèi)PLD開(kāi)發(fā)軟件,支持600個(gè)宏單元以下的Lattice芯片的設(shè)計(jì)。
為了提高設(shè)計(jì)效率,優(yōu)化設(shè)計(jì)結(jié)果,很多廠家提供了各種專業(yè)軟件,用以配合PLD/FPGA芯片廠家提供工具進(jìn)行更高效率的設(shè)計(jì),最常見(jiàn)的組合同時(shí)使用專業(yè)HDL邏輯綜合軟件和PLD/FPGA芯片廠家提供的軟件。
2.HDL前端輸入與系統(tǒng)管理軟件
這類軟件主要是幫助用戶完成HDL文本的編輯和輸入工作,提高輸入效率,并不是必須的,更多人更習(xí)慣使用集成開(kāi)發(fā)軟件或者綜合/仿真工具中自帶的文本編輯器,甚至可以直接使用普通文本編輯器。UltraEdit是其中使用最為廣泛的編輯器。
3.HDL邏輯綜合軟件
這類軟件將把HDL語(yǔ)言翻譯成最基本的與或非門的連接關(guān)系(網(wǎng)表),輸出edf文件,導(dǎo)給PLD/FPGA廠家的軟件進(jìn)行試配和布線。為了優(yōu)化結(jié)果,在進(jìn)行復(fù)雜HDL設(shè)計(jì)時(shí),基本上都會(huì)使用這些專業(yè)的邏輯綜合軟件,而不使用PLD/FPGA廠家的集成開(kāi)發(fā)軟件中自帶的邏輯綜合功能。如Synplicity公司出品提供的Synplify / Synplify Pro軟件,使用相當(dāng)不錯(cuò)。
4.HDL仿真軟件
此類軟件主要對(duì)設(shè)計(jì)進(jìn)行校驗(yàn)仿真,包括布線以前的功能仿真(前仿真)和布線以后包含延時(shí)的時(shí)序仿真(后仿真),對(duì)于一些復(fù)雜的HDL設(shè)計(jì)可能需要這些軟件專業(yè)的仿真功能。
如Model Tech公司提供的VHDL/VerilogHDL仿真軟件,功能強(qiáng)大。
盡管FPGA和CPLD都是可編程ASIC器件,有很多共同特點(diǎn),但由于CPLD和FPGA結(jié)構(gòu)上的差異,具有各自的特點(diǎn):
?、貱PLD更適合完成各種算法和組合邏輯,FP GA更適合于完成時(shí)序邏輯。換句話說(shuō),FPGA更適合于觸發(fā)器豐富的結(jié)構(gòu),而CPLD更適合于觸發(fā)器有限而乘積項(xiàng)豐富的結(jié)構(gòu)。
?、贑PLD的連續(xù)式布線結(jié)構(gòu)決定了它的時(shí)序延遲是均勻的和可預(yù)測(cè)的,而FPGA的分段式布線結(jié)構(gòu)決定了其延遲的不可預(yù)測(cè)性。
?、墼诰幊躺螰PGA比CPLD具有更大的靈活性。CPLD通過(guò)修改具有固定內(nèi)連電路的邏輯功能來(lái)編程,FPGA主要通過(guò)改變內(nèi)部連線的布線來(lái)編程;FP GA可在邏輯門下編程,而CPLD是在邏輯塊下編程。
?、蹻PGA的集成度比CPLD高,具有更復(fù)雜的布線結(jié)構(gòu)和邏輯實(shí)現(xiàn)。
?、軨PLD比FPGA使用起來(lái)更方便。CPLD的編程采用E2PROM或FASTFLASH技術(shù),無(wú)需外部存儲(chǔ)器芯片,使用簡(jiǎn)單。而FPGA的編程信息需存放在外部存儲(chǔ)器上,使用方法復(fù)雜。
?、轈PLD的速度比FPGA快,并且具有較大的時(shí)間可預(yù)測(cè)性。這是由于FPGA是門級(jí)編程,并且CLB之間采用分布式互聯(lián),而CPLD是邏輯塊級(jí)編程,并且其邏輯塊之間的互聯(lián)是集總式的。
?、咴诰幊谭绞缴?CPLD主要是基于E2PROM或FLASH存儲(chǔ)器編程,編程次數(shù)可達(dá)1萬(wàn)次,優(yōu)點(diǎn)是系統(tǒng)斷電時(shí)編程信息也不丟失。CPLD又可分為在編程器上編程和在系統(tǒng)編程兩類。FPGA大部分是基于SRAM編程,編程信息在系統(tǒng)斷電時(shí)丟失,每次上電時(shí),需從器件外部將編程數(shù)據(jù)重新寫入SRAM中。其優(yōu)點(diǎn)是可以編程任意次,可在工作中快速編程,從而實(shí)現(xiàn)板級(jí)和系統(tǒng)級(jí)的動(dòng)態(tài)配置。
?、郈PLD保密性好,FPGA保密性差。
⑨一般情況下,CPLD的功耗要比FPGA大,且集成度越高越明顯。