第2章可編程邏輯器件_第1頁(yè)
第2章可編程邏輯器件_第2頁(yè)
第2章可編程邏輯器件_第3頁(yè)
第2章可編程邏輯器件_第4頁(yè)
第2章可編程邏輯器件_第5頁(yè)
已閱讀5頁(yè),還剩26頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第二章 可編程邏輯器件2.1 概述可編程邏輯器件(PLD,Programmable Logic Devices)是20世紀(jì)70年代發(fā)展起來(lái)的一種集成器件。PLD是大規(guī)模集成電路技術(shù)發(fā)展的產(chǎn)物,是一種半定制的集成電路,結(jié)合計(jì)算機(jī)軟件技術(shù)(EDA技術(shù))可以快速、方便地構(gòu)建數(shù)字系統(tǒng)。常用的PLD就其集成度而言可分為簡(jiǎn)單PLD和復(fù)雜PLD兩大類(lèi),如圖2-1所示。簡(jiǎn)單PLD包括 PROM、PLA、PAL、GAL等,它們的集成度很低,每只器件中可用的邏輯門(mén)大約在500門(mén)以下。復(fù)雜PLD芯片的集成度較高,現(xiàn)在大量使用的CPLD、FPGA器件都屬于這一類(lèi),它們是20世紀(jì)80年代中期發(fā)展起來(lái)的高密度芯片,每只器

2、件可含有上萬(wàn)門(mén)可用的邏輯門(mén)。圖2-1 PLD按集成度分類(lèi)可編程器件從結(jié)構(gòu)上可分為乘積項(xiàng)結(jié)構(gòu)器件和查找表結(jié)構(gòu)器件。前者的基本結(jié)構(gòu)為“與-或陣列”的器件,大部分簡(jiǎn)單PLD和CPLD都屬于這個(gè)范疇;后者是由簡(jiǎn)單的查找表組成可編程門(mén),再構(gòu)成陣列形式,F(xiàn)PGA屬于此類(lèi)器件。2.2 簡(jiǎn)單可編程器件2.2.1 PLD的基本結(jié)構(gòu)可編程邏輯器件(PLD)的基本結(jié)構(gòu)如圖2-2所示,它由輸入緩沖器、與陣列、或陣列、輸出緩沖器等4部分功能電路組成。與陣列和或陣列是PLD的核心,通過(guò)用戶編程可實(shí)現(xiàn)“與-或”邏輯。其中,與陣列產(chǎn)生邏輯函數(shù)所需的與項(xiàng)(乘積項(xiàng)),而或陣列選擇所需的與項(xiàng),實(shí)現(xiàn)或邏輯,構(gòu)成“與-或”邏輯函數(shù)(乘

3、積項(xiàng)之和)。輸入緩沖電路主要對(duì)輸入變量進(jìn)行預(yù)處理,為與陣列提供互補(bǔ)的輸入變量,即原變量和反變量。輸出緩沖電路主要用來(lái)對(duì)輸出的信號(hào)進(jìn)行處理。對(duì)于不同的PLD,其輸出緩沖電路的結(jié)構(gòu)后很大的差別,通常含有三態(tài)門(mén)、寄存器、邏輯宏單元等。用戶可根據(jù)需要進(jìn)行編程,實(shí)現(xiàn)不同類(lèi)型的輸出結(jié)構(gòu),即能輸出組合邏輯信號(hào),也能輸出時(shí)序邏輯信號(hào),并能決定輸出信號(hào)的極性。輸出緩沖電路還可以把某些輸出端,經(jīng)反饋通路引回到與陣列,使輸出端具有I/O功能。圖2-2 可編程邏輯器件(PLD)的基本結(jié)構(gòu)2.2.2 PLD的表示方法用來(lái)描述PLD內(nèi)部電路結(jié)構(gòu)的一些表示方法,與通常邏輯電路的表示方法有所不同。這些表示法的特點(diǎn)是將芯片內(nèi)部

4、的結(jié)構(gòu)配置與邏輯圖一一對(duì)應(yīng)起來(lái),使器件制造商和電路設(shè)計(jì)者較容易掌握。PLD的表示法在電路結(jié)構(gòu)、物理結(jié)構(gòu)、版圖的布局之間都有很巧妙的映射,因此讀起來(lái)十分方便。為了能形象地描述PLD的內(nèi)部結(jié)構(gòu),并便于識(shí)讀,現(xiàn)在廣泛采用下面的邏輯表示方法。1. 互補(bǔ)輸入緩沖電路 PLD中互補(bǔ)輸入緩沖電路可用如圖2-3(a)所示的符號(hào)來(lái)表示,它等效與圖2-3(b)的邏輯結(jié)構(gòu),即它的輸出分別是輸入A的原變量和反變量。 (a) (b)圖2-3 互補(bǔ)輸入緩沖電路2. 三態(tài)輸出緩沖電路在PLD器件封裝引腳有限的情況下,為充分利用有限的引腳,常將一部分引腳用作I/O端(既可作為輸入端,也可作為輸出端)使用。當(dāng)I/O作為輸出端時(shí)

5、,常常用到具有一定驅(qū)動(dòng)能力的三態(tài)輸出緩沖電路,它具有同相輸出和反相輸出兩種形式,在PLD的邏輯電路中分別以圖2-4(a)和(b)所示的符號(hào)表示,其真值表如表2-1所示。 表2-1 三態(tài)輸出緩沖電路的真值表CAFY0高阻10011110 (a) (b) 圖2-4 三態(tài)輸出緩沖電路3. 與、或門(mén)陣列由于PLD的特殊結(jié)構(gòu),用通用的邏輯門(mén)符號(hào)表示比較繁雜,特用一些常用符號(hào)來(lái)簡(jiǎn)化表示,PLD中常用符號(hào)與國(guó)際符號(hào)對(duì)照表如表2-2所示。表2-2 PLD中常用符號(hào)與國(guó)際符號(hào)對(duì)照表圖2-5是PLD陣列中連接關(guān)系的表示。十字交叉線表示此二線未連接;交叉線的交叉點(diǎn)上打黑點(diǎn),表示固定連接,即在PLD出廠時(shí)已連接;交叉

6、線的交叉點(diǎn)上打叉,表示改點(diǎn)可編程,在PLD出廠后通過(guò)編程,其連接可隨時(shí)改變。圖2-5 PLD的連接表示法可編程與陣列是PLD的核心部分。為了便于對(duì)PLD邏輯關(guān)系的描述、編程和使用,可采用如圖2-5所示的表示方法,它表示具有四個(gè)輸入的與門(mén)。四條豎線A、B、C、D均為輸入線,輸入到與門(mén)的橫線稱為乘積項(xiàng)線,輸入線和乘積項(xiàng)線的交叉點(diǎn)為編程點(diǎn)。在編程點(diǎn)處接有編程器件,如熔絲或可編程的MOS器件等。若在編程點(diǎn)處的編程器件將輸入線和乘積項(xiàng)線接通時(shí),則在編程點(diǎn)處以“X”或“.”表示。若在編程點(diǎn)處的編程器件將輸入線和乘積項(xiàng)線沒(méi)有接通時(shí),則在編程點(diǎn)處無(wú)“X”或“·”表示。例如,在圖2-6中,輸入線A與乘

7、積項(xiàng)線采用固定連接;輸入線B和C與乘積項(xiàng)線采用可編程連接;輸入線D和乘積項(xiàng)線沒(méi)有連接。因而該圖中與邏輯電路的乘積項(xiàng)輸出為F=ABD。同樣,當(dāng)PLD中有可編程的或陣列時(shí),其表示方法為圖2-7所示的形式。編程點(diǎn)的表示方法和與陣列相同。所以改圖的邏輯關(guān)系為:F=A+C。多輸入端的與或陣列也可表示成圖2-8所示的形式。該圖的邏輯關(guān)系為:Y=AB+BC+CD+AD。圖2-6 四輸入與陣列表示方法 圖2-7 四輸入或陣列表示方法圖2-8 多輸入端的與或陣列表示方法4. 邏輯宏單元邏輯宏單元結(jié)構(gòu)是將“與-或”陣列與觸發(fā)器或寄存器單元進(jìn)行組合(包括相應(yīng)的反饋單元)來(lái)構(gòu)成器件內(nèi)部的邏輯單元。邏輯宏單元是高密度可

8、編程器件中的一個(gè)非常重要的基本結(jié)構(gòu)。如Lattic、Altera、Xilinx和AMD等公司在各自生產(chǎn)的PLD產(chǎn)品的宏單元設(shè)計(jì)上有著各自的特點(diǎn)。但總的來(lái)說(shuō),宏單元結(jié)構(gòu)具有以下幾個(gè)方面的特點(diǎn):l 提供時(shí)序邏輯需要的觸發(fā)器或寄存器,并且可以進(jìn)行各種組態(tài)。l 提供各種形式的I/O方式。l 提供內(nèi)部反饋信號(hào),控制輸出的邏輯極性。l 分配控制信號(hào),如寄存器的時(shí)鐘和復(fù)位信號(hào)、三態(tài)門(mén)的輸出使能信號(hào)。簡(jiǎn)單PLD基本結(jié)構(gòu)大致相同,根據(jù)與或陣列是否可編程分為三類(lèi):l 與固定、或編程:PROM;l 與或全編程:PLA;l 與編程、或固定:PAL、GAL。下面簡(jiǎn)單介紹一下各種簡(jiǎn)單PLD的工作原理和基本結(jié)構(gòu)。2.2.3

9、 PROM在數(shù)字電子技術(shù)中提到的PROM實(shí)質(zhì)上是可編程邏輯器件,它包含一個(gè)與固定連接的與陣列(該與陣列就是全譯碼的地址譯碼器)和一個(gè)可編程的或門(mén)陣列。相應(yīng)地,4位輸入地址碼的PROM可用圖2-9(a)所示的PLD表示法描述。已知半加器的邏輯表達(dá)式如下所示:則用PROM完成的半加器邏輯陣列如圖2-9(b)所示。 (a) (b)圖2-9 PROM表示的PLD陣列及半加器表示 由于PROM中的與陣列是一個(gè)固定的全譯碼陣列,當(dāng)輸入變量較多時(shí),必然會(huì)導(dǎo)致器件工作速度降低,同時(shí)PROM的體積較大,成本也較高,所以它主要不是作為可編程邏輯器件來(lái)使用。因而出現(xiàn)了PLA。2.2.4 PLA可編程邏輯陣列PLA采

10、用與門(mén)陣列和或門(mén)陣列都是可編程的邏輯結(jié)構(gòu),其邏輯陣列圖如圖2-10所示。顯然PLA不需要包含輸入變量的所有最小項(xiàng),僅僅需要包含在邏輯功能中實(shí)際要求的那些最小項(xiàng)。PROM隨著輸入變量增加,規(guī)模迅速增加的問(wèn)題在PLA中大大緩解。PLA的利用率大大提高了。2-10 PLA的邏輯陣列圖雖然PLA的利用率較高,可是需要由邏輯函數(shù)的與或最簡(jiǎn)表達(dá)式,對(duì)于多輸出函數(shù)需要提取、利用公共的與項(xiàng),設(shè)計(jì)的軟件算法比較復(fù)雜,尤其是多輸入變量和多輸出的邏輯函數(shù),處理上更加困難。此外,PLA的兩個(gè)陣列均為可編程的,不可避免地使編程后器件的運(yùn)行速度下降了。人們?cè)赑LA后,又設(shè)計(jì)了另外一種可編程器件,即PAL。2.2.5 PA

11、L可編程陣列邏輯PAL也是與或陣列結(jié)構(gòu),但僅與陣列可以編程,或陣列是固定的,其邏輯結(jié)構(gòu)圖如圖2-11所示。由于PAL的或陣列是固定的,一般用圖2-12表示PAL的結(jié)構(gòu)。2-11 PAL的結(jié)構(gòu) 2-12 PAL的常用表示用PAL實(shí)現(xiàn)邏輯函數(shù)時(shí),每個(gè)輸出是若干個(gè)乘積項(xiàng)之和,而乘積項(xiàng)的數(shù)目是固定的。一般情況下PAL中一個(gè)或門(mén)有78個(gè)乘積項(xiàng),可以滿足邏輯設(shè)計(jì)的需要。與陣列可編程、或陣列固定的結(jié)構(gòu)避免了PLA存在的一些問(wèn)題,運(yùn)行速度也有所提高。上述提到的可編程結(jié)構(gòu)只能解決組合邏輯的編程問(wèn)題,而對(duì)時(shí)序電路卻無(wú)能為力。由于時(shí)序時(shí)序電路是由組合電路及存儲(chǔ)單元構(gòu)成(鎖存器、觸發(fā)器、RAM),對(duì)其中的組合電路部分

12、的可編程已經(jīng)解決,所以只要再加上鎖存器、觸發(fā)器即可。PAL器件的發(fā)展給邏輯設(shè)計(jì)帶來(lái)了很大的靈活性,但它還存在著不足之處。一方面,它采用熔絲連接工藝,靠熔絲燒斷達(dá)到編程的目的,一旦編程便不能改寫(xiě);另一方面,不同輸出結(jié)構(gòu)的PAL對(duì)應(yīng)不同型號(hào)的PAL器件,不便于用戶使用?,F(xiàn)在,PAL也已被淘汰,在中小規(guī)??删幊虘?yīng)用領(lǐng)域,PAL已經(jīng)被GAL取代。2.2.6 GAL可編程通用陣列邏輯器件GAL是Lattice 公司于1985年首先推出的新型可編程邏輯器件。GAL是PAL的第二代產(chǎn)品,首次在PLD上采用了EEPROM工藝,使得GAL具有電可擦除重復(fù)編程的特點(diǎn),徹底解決了熔絲型可編程器件的一次可編程問(wèn)題。按

13、門(mén)陣列的可編程結(jié)構(gòu), GAL可分成兩大類(lèi): 一類(lèi)是與PAL基本結(jié)構(gòu)相似的普通型GAL器件,其與門(mén)陣列是可編程的, 或門(mén)陣列是固定連接的,如GAL16V8;另一類(lèi)是與FPLA器件相類(lèi)似的新一代GAL 器件, 其與門(mén)陣列及或門(mén)陣列都是可編程的,如GAL39V18。GAL對(duì)PAL的輸出I/O結(jié)構(gòu)進(jìn)行了較大的改進(jìn),在GAL的輸出部分增加了輸出邏輯宏單元OLMC(Output Macro Cell),通過(guò)編程可設(shè)置不同的輸出狀態(tài),增強(qiáng)器件的通用性。常用的GAL芯片有GAL16V8、GAL20V8等,下面我們簡(jiǎn)單介紹一下GAL的內(nèi)部結(jié)構(gòu)。以GAL16V8為例。GAL16V8的邏輯電路圖如圖2-13所示,它

14、有16 個(gè)輸入引腳(其中八個(gè)為固定輸入引腳,即2腳9腳)和八個(gè)輸出引腳,即12腳19腳。其內(nèi)部結(jié)構(gòu)是由八個(gè)輸入緩沖器、八個(gè)輸出反饋/輸入緩沖器、八個(gè)輸出三態(tài)緩沖器、八個(gè)輸出邏輯宏單元OLMC、8×8個(gè)與門(mén)構(gòu)成的64個(gè)乘積項(xiàng),每個(gè)與門(mén)有32個(gè)輸入端、一個(gè)時(shí)鐘輸入端CLK(即1腳)和一個(gè)輸出三態(tài)控制端OE(即11腳)等組成。圖2-13 GAL16V8的邏輯電路圖GAL16V8有八個(gè)輸出邏輯宏單元OLMC12OLMC19,它們的內(nèi)部結(jié)構(gòu)完全相同,如圖2-14所示。但外部連線稍有不同,圖中用n表示本級(jí)引腳號(hào),用m表示來(lái)自鄰級(jí)引腳號(hào)。OLMC主要由一個(gè)8輸入或門(mén)、一個(gè)異或門(mén)、四個(gè)多路選擇器和一

15、個(gè)D觸發(fā)器四個(gè)部分組成,它們的作用如下: (1)8輸入或門(mén):構(gòu)成了GAL的或門(mén)陣列;(2)異或門(mén):用來(lái)控制輸出的極性,其輸入為或門(mén)的輸出B和控制字XOR(n),兩者經(jīng)異或后分別輸出到D觸發(fā)器的D輸入端及輸出數(shù)據(jù)選擇器OMUUX的一個(gè)輸入端。當(dāng)XOR(n)=0時(shí),D=B,異或門(mén)僅作為同相緩沖器使用;當(dāng)XOR(n)=1時(shí),D=,異或門(mén)起反相器作用。(3)D觸發(fā)器:對(duì)或門(mén)的輸出狀態(tài)起記憶作用,使GAL能配置成時(shí)序邏輯電路。其輸出Q、在控制字AC0、AC1(n)及時(shí)鐘CLK的控制下,經(jīng)輸出數(shù)據(jù)選擇器OMUX輸出,或經(jīng)反饋數(shù)據(jù)選擇器FMUX反饋到與陣列。(4)四個(gè)數(shù)據(jù)選擇器每個(gè)OLMC中有四個(gè)多路開(kāi)關(guān)M

16、UX, FIMUX用于控制第一乘積項(xiàng);TSMUX用于選擇輸出三態(tài)緩沖器的選通信號(hào);FMUX決定反饋信號(hào)的來(lái)源;OMUX用于選擇輸出信號(hào)是組合邏輯的還是寄存邏輯的。多路開(kāi)關(guān)狀態(tài)取決于結(jié)構(gòu)控制字中的AC0和AC1(n)位的值。圖2-14 輸出邏輯宏單元乘積項(xiàng)數(shù)據(jù)選擇器PTMUX,用來(lái)控制來(lái)自與陣列的第一乘積項(xiàng)的作用,控制信號(hào)為AC0和AC1(n)。從圖2-14可以看出,控制信號(hào)AC0和AC1(n)經(jīng)與非門(mén)后接至PTMUX的選擇控制端。只要AC0和AC1(n)中有任何一個(gè)為0時(shí),PTMUX的選擇端為1,此時(shí)第一乘積項(xiàng)被選中成為或門(mén)的一項(xiàng)輸入。而當(dāng)AC0和AC1(n)全為1時(shí),PTMUX的選擇端為0,

17、地電平被送到或門(mén)作為或門(mén)的開(kāi)門(mén)信號(hào)。此時(shí),與陣列的第一乘積項(xiàng)成為三態(tài)數(shù)據(jù)選擇器TSMUX的輸入信號(hào),以備選作輸出三態(tài)數(shù)據(jù)選擇器的編程使能控制信號(hào)。輸出數(shù)據(jù)選擇器OMUX,用來(lái)控制OLMC是組合輸出還是寄存器輸出,控制信號(hào)也為AC0和AC1(n)。從圖2-14可以看出,控制信號(hào)和AC1(n)經(jīng)或非門(mén)后接至OMUX的選擇控制端。經(jīng)過(guò)分析可知:當(dāng)AC0AC1(n)=10時(shí),OMUX的選擇端為1,此時(shí)OMUX把D觸發(fā)器的輸出Q送到輸出三態(tài)緩沖器,是寄存器輸出;而當(dāng)AC0和AC1(n)處于其它狀態(tài)時(shí),OMUX的選擇端為0,OMUX將異或門(mén)的輸出B直接送到輸出三態(tài)緩沖器,是組合輸出。三態(tài)數(shù)據(jù)選擇器TSMU

18、X,是一個(gè)四選一數(shù)據(jù)選擇器,控制信號(hào)為AC0和AC1(n)。從圖2-14可以看出, 當(dāng)AC0·AC1(n)=00時(shí),TSMUX的輸出為VCC,三態(tài)輸出緩沖電路輸出為OMUX的反相輸出;當(dāng)AC0·AC1(n)=01時(shí),TSMUX的輸出為0,三態(tài)輸出緩沖電路輸出為高阻狀態(tài);當(dāng)AC0·AC1(n)= 10時(shí),TSMUX的輸出為0E,三態(tài)輸出緩沖電路輸出由OE來(lái)控制;當(dāng)AC0·AC1(n)=11時(shí),表示多路開(kāi)關(guān)TSMUX的數(shù)據(jù)輸入端11被選通,表示三態(tài)門(mén)的選通信號(hào)是第一乘積項(xiàng)。反饋數(shù)據(jù)選擇器FMUX,它根據(jù)的不同取值選擇不同的信號(hào)反饋到與陣列,控制信號(hào)為AC0

19、、AC1(n)和AC1(m)。從圖2-14可以看出,當(dāng)AC0· AC1(n)=00,F(xiàn) MUX的輸出為0;當(dāng)AC0· AC1(n)=01,F(xiàn) MUX的輸出為來(lái)自鄰級(jí)的輸出;當(dāng)AC0· AC1(n)=10,F(xiàn)MUX的輸出為D觸發(fā)器的輸出端;當(dāng)AC0· AC1(n)=11,F(xiàn)MUX的輸出為I/O。通過(guò)對(duì)OLMC中四個(gè)數(shù)據(jù)選擇器在控制信號(hào)AC0 、AC1(n)作用下的分析,可知在AC0 、AC1(n)可編程結(jié)構(gòu)控制位的控制下,輸出邏輯宏單元(OLMC)可配置成四種不同的工作模式,即專用輸入(禁止OLMC輸出)、專用組合輸出、選通組合輸出、寄存器型輸出模式。在表

20、2-3中列出了控制位和工作模式的配置關(guān)系,圖2-15給出了不同工作模式下的OLMC的等效電路。表2-3 OLMC的工作模式AC0AC1(n)工作模式等效電路圖01專用輸入如圖2-15(a)所示00專用組合輸出如圖2-15(b)所示11選通組合輸出如圖2-15(c)所示10寄存器型輸出如圖2-15(d)所示(a) 專用輸入模式 (b) 專業(yè)組合輸出模式(c)選通組合輸出模式 (d) 寄存器型輸出模式圖2-15 GAL器件OLMC的四種工作模式GAL已經(jīng)被淘汰,其原因很簡(jiǎn)單:l 密度低,規(guī)模小,加密功能不夠理想;l 各宏單元中觸發(fā)器時(shí)鐘信號(hào)公用,且只能外加,因此只能作為同步時(shí)序電路使用;l 各宏單

21、元的同步預(yù)置端也連在一起,大大限制了GAL的使用;l 每個(gè)宏單元只有一條向與陣列反饋的通道,所以O(shè)LMC利用率很低。 以上這些問(wèn)題在復(fù)雜可編程器件中都得到了解決,下面介紹復(fù)雜可編程器邏輯器件。2.3 CPLDCPLD即Complex Programmable Logic Device復(fù)雜可編邏輯器件。CPLD的基本工作原理與GAL器件十分相似,可以看成是由許多GAL器件合成的邏輯體,只是相鄰塊的乘積項(xiàng)可以互借,且每一邏輯單元都能單獨(dú)引入時(shí)鐘,從而可實(shí)現(xiàn)異步時(shí)序邏輯。2.3.1 CPLD的基本結(jié)構(gòu)與工作原理目前,生產(chǎn)CPLD器件的著名公司主要有Altera、Xilinx、Lattice,Cypr

22、ess等公司。所生產(chǎn)的產(chǎn)品多種多樣,器件的結(jié)構(gòu)也有很大的差異,但大多數(shù)公司的CPLD仍使用基于乘積項(xiàng)的單元結(jié)構(gòu)。Altera的MAX7000S系列具有一定的代表性,這里以此為例介紹CPLD的結(jié)構(gòu)和工作原理。基于乘積項(xiàng)的CPLD的內(nèi)部結(jié)構(gòu)如圖2-16所示。它主要由邏輯陣列塊(LAB, Logic Array Block)、 宏單元(Macro cells)、可編程連線(PIA,Programmable Interface Array)和I/O控制塊等四部分組成。 宏單元是PLD的基本結(jié)構(gòu),由它來(lái)實(shí)現(xiàn)基本的邏輯功能。圖2-11中蘭色部分是多個(gè)宏單元的集合(因的為宏單元較多,沒(méi)有一一畫(huà)出)??删幊踢B

23、線PIA負(fù)責(zé)信號(hào)傳遞,連接所有的宏單元。I/O控制塊負(fù)責(zé)I/O的電氣特性控制,比如可以設(shè)定集電極開(kāi)路輸出,擺率控制,三態(tài)輸出等。 圖2-16中左上的INPUT/GCLK1,INPUT/GCLRn,INPUT/OE1,INPUT/OE2 是全局時(shí)鐘,清零和輸出使能信號(hào),這幾個(gè)信號(hào)有專用連線與PLD中每個(gè)宏單元相連,信號(hào)到每個(gè)宏單元的延時(shí)相同并且延時(shí)最短。圖2-16 基于乘積項(xiàng)的CPLD內(nèi)部結(jié)構(gòu)1. 邏輯陣列塊LAB從圖2-16中可以看出:每16個(gè)宏單元可組成一個(gè)邏輯陣列塊LAB(Logic Array Block),各個(gè)LAB可通過(guò)可編程連線陣PIA(Programmable Interconn

24、ect Array)和全局總線連接在一起。全局總線由專用輸入引腳、IO引腳和宏單元的反饋信號(hào)構(gòu)成。每個(gè)LAB的輸入信號(hào)可以是:來(lái)自的PIA的36個(gè)通用邏輯輸入信號(hào);用于寄存器輔助功能的全局控制信號(hào);從IO引腳到寄存器的直接輸入信號(hào)。 2. 宏單元Macro cells在CPLD中,宏單元是非常重要的邏輯單元,用來(lái)實(shí)現(xiàn)各種具體的邏輯功能,可以獨(dú)立地配置成組合邏輯或時(shí)序邏輯。每個(gè)宏單元有邏輯陣列(Logic Array)、乘積項(xiàng)選擇矩陣(Product Term Select Matrix)、擴(kuò)展乘積項(xiàng)(Expanders)、可編程寄存器(Programmable Register)和4個(gè)數(shù)據(jù)選擇

25、器(Select)等功能模塊組成,其結(jié)構(gòu)圖如圖2-17所示。(1)邏輯陣列(Logic Array)和乘積項(xiàng)選擇矩陣(Product Term Select Matrix)邏輯陣列和乘積項(xiàng)選擇矩陣用來(lái)實(shí)現(xiàn)宏單元的組合邏輯函數(shù)。其中,邏輯陣列組成與陣列,為乘積項(xiàng)選擇矩陣提供5個(gè)乘積項(xiàng);乘積項(xiàng)選擇矩陣用來(lái)實(shí)現(xiàn)5個(gè)乘積項(xiàng)的邏輯函數(shù),或?qū)⑦@5個(gè)乘積項(xiàng)作為可編程寄存器的控制信號(hào),實(shí)現(xiàn)寄存器的復(fù)位、置位、時(shí)鐘輸入和時(shí)鐘使能等功能。(2)擴(kuò)展乘積項(xiàng)擴(kuò)展乘積項(xiàng)包括共享擴(kuò)展項(xiàng)(Shared Logic Expanders)和并聯(lián)擴(kuò)展項(xiàng)(Parallel Logic Expanders)兩部分,用來(lái)補(bǔ)充宏單元的邏

26、輯資源。盡管大多數(shù)的邏輯功能可以用每個(gè)宏單元中的5各乘積項(xiàng)來(lái)實(shí)現(xiàn),但對(duì)于某些乘積項(xiàng)大于5項(xiàng)的復(fù)雜邏輯函數(shù),則需要采用附加乘積項(xiàng)來(lái)補(bǔ)充。共享擴(kuò)展項(xiàng)由每個(gè)宏單元提供一個(gè)單獨(dú)的乘積項(xiàng),通過(guò)一個(gè)非門(mén)取反后反饋到邏輯陣列中,可被LAB內(nèi)任何一個(gè)或全部宏單元使用和共享,以便實(shí)現(xiàn)復(fù)雜的邏輯函數(shù)。 并聯(lián)擴(kuò)展項(xiàng)是利用一些宏單元中未使用的乘積項(xiàng)直接分配到鄰近的宏單元中,以實(shí)現(xiàn)邏輯資源共享。(3)可編程寄存器(Programmable Register)圖2-17中有一個(gè)可編程D觸發(fā)器,它的時(shí)鐘,清零輸入都可以編程選擇,可以使用專用的全局清零和全局時(shí)鐘,也可以使用內(nèi)部邏輯(乘積項(xiàng)陣列)產(chǎn)生的時(shí)鐘和清零。如果不需要觸

27、發(fā)器,也可以將此觸發(fā)器旁路,信號(hào)直接輸給PIA或輸出到I/O腳。(4)數(shù)據(jù)選擇器圖2-17中含有4個(gè)數(shù)據(jù)選擇器,即復(fù)位信號(hào)選擇器(Clear Select)、時(shí)鐘/使能信號(hào)選擇器(Clock/Enable Select)、快速輸入選擇器(Fast Input Select)和旁路選擇器(Register Bypass)。l 復(fù)位信號(hào)選擇器:用來(lái)選擇觸發(fā)器的復(fù)位信號(hào),通過(guò)編程可以選擇全局復(fù)位或乘積項(xiàng)復(fù)位。l 時(shí)鐘/使能信號(hào)選擇器:用來(lái)實(shí)現(xiàn)觸發(fā)器時(shí)鐘方式的控制,通過(guò)編程可實(shí)現(xiàn)觸發(fā)器3種不同的時(shí)鐘方式,即全局時(shí)鐘信號(hào)、全局時(shí)鐘信號(hào)由高電平有效的時(shí)鐘信號(hào)使能和用乘積項(xiàng)實(shí)現(xiàn)陣列的時(shí)鐘。l 快速輸入選擇器

28、:用來(lái)選擇觸發(fā)器的數(shù)據(jù)輸入信號(hào),通過(guò)編程可以選擇來(lái)自宏單元的邏輯輸入或來(lái)自I/O引腳的快速輸入。l 旁路選擇器:用來(lái)選擇宏單元輸出邏輯的方式,通過(guò)編程可實(shí)現(xiàn)宏單元的組合邏輯輸出或時(shí)序邏輯輸出。圖2-17 MAX7000系列的單個(gè)宏單元結(jié)構(gòu)3. 可編程連線陣列PIA可編程連線陣列的作用是為各邏輯宏單元之間以及邏輯宏單元和IO單元之間提供互連網(wǎng)絡(luò)。各邏輯宏單元通過(guò)可編程連線陣列接收來(lái)自專用輸入或輸出端的信號(hào),并將宏單元的信號(hào)反饋到其需要到達(dá)的IO單元或其他宏單元中。這種互連機(jī)制有很大的靈活性,它允許在不影響引腳分配的情況下改變內(nèi)部的設(shè)計(jì)。4. I/O控制塊I/O控制塊允許每個(gè)I/O引腳單獨(dú)地配置成

29、輸入/輸出或雙向工作方式。每個(gè)I/O引腳都有一個(gè)三態(tài)緩沖器,它能由全局輸出使能信號(hào)中的一個(gè)控制,或者把使能端直接連接到地或電源上。2.3.2 常用的CPLD器件1. Altera公司的CPLD器件Altera公司是全球最大的可編程邏輯器件供應(yīng)商之一。其主要CPLD產(chǎn)品為:MAX3000A/MAX7000/MAX ® II這三個(gè)系列。(1)MAX3000A系列基于成本優(yōu)化的0.30微米、4層金屬Flash工藝的MAX3000A系列CPLD,密度從32-512個(gè)宏單元,同時(shí)提供商用和工業(yè)級(jí)產(chǎn)品,非常適用于成本控制嚴(yán)格的應(yīng)用。該系列器件還具有的優(yōu)點(diǎn)有:遵循IEEE Std. 1149.1

30、Joint Test Action Group (JTAG)、標(biāo)準(zhǔn)ISP特性、I/O接口支持5V、3.3V和2.5V等多種電平等。該系列產(chǎn)品為:EPM3032A、 EPM3064A、 EPM3128A、 EPM3256A 和EPM3512A。MAX3000A系列部分芯片的性能如表2-4所示。 表2-4 MAX3000A系列部分芯片性能MAX3000A可用門(mén)宏單元邏輯陣列塊管腳到管腳延時(shí)最高頻率用戶I/O封裝EPM3032A6003224.5227.332PLCC44/TQFP44EPM3064A1,2506444.5222.23466PLCC44/TQFP44TQFP100(2)MAX7000

31、系列基于高性能低功耗CMOS EEPROM技術(shù)的MAX7000系列提供了高性能的邏輯解決方案,密度從600-10000個(gè)可用門(mén)不等(32-512個(gè)宏單元),同時(shí)MAX7000系列的同一密度產(chǎn)品還提供多種封裝形式,對(duì)于各種應(yīng)用具有相當(dāng)靈活的適應(yīng)性。該系列器件還具有的優(yōu)點(diǎn)有:遵循IEEE Std. 1149.1 Joint Test Action Group (JTAG)、標(biāo)準(zhǔn)ISP特性、I/O接口支持5V、3.3V和2.5V等多種電平、PCI兼容等。該系列產(chǎn)品為:EPM7064、EPM7032、EPM7096、EPM7256、EPM7192、EEPM7160E、EPM7128E、EPM7160S

32、、EPM7128S、EPM7064S、EPM7032S、EPM7192S、EPM7256S。MAX7000系列部分芯片的性能如表2-5所示。 表2-5 MAX7000系列部分芯片性能MAX70000可用門(mén)宏單元邏輯陣列塊管腳到管腳延時(shí)最高頻率(MHz)用戶I/O封裝EPM70326003226151.536PLCC44/TQFP44/PQFP44EPM70641,2506446151.5365268PLCC44/TQFP44PLCC68PLCC84/TQFP100(3)MAX II系列在近15年CPLD發(fā)展和創(chuàng)新的基礎(chǔ)上,Altera公司推出了低成本的CPLD MAX 器件,這些器件采用新的L

33、UT體系,采用0.18嵌入Flash工藝,使其裸片尺寸僅為同樣工藝器件的1/4。新的系列器件容量翻了兩番,內(nèi)部集成一片8Kbits串行EEPROM,增加很多功能。MAXII采用2.5v或者3.3v內(nèi)核電壓,MAXII G系列采用1.8v內(nèi)核電壓。因而MAX 器件和上一代MAX器件相比,成本降低了一半,功耗只有原來(lái)的1/10,同時(shí)保持了MAX系列原有的瞬態(tài)啟動(dòng)、單芯片、非易失性和易用性。該系列產(chǎn)品為:EPM240/G、EPM570/G 、EPM1270/G、EPM240/G等。MAX II系列芯片性能如表2-6所示。該系列器件性價(jià)比不錯(cuò),是未來(lái)幾年主流器件,推薦使用,不過(guò)MAXII容量較大,對(duì)于

34、只需要幾十個(gè)邏輯單元的簡(jiǎn)單邏輯應(yīng)用,建議使用小容量的EPM3000A系列芯片。表2-6 MAX II系列芯片性能 FeatureEPM240/GEPM570/GEPM1270/GEPM2210/G邏輯單元 (LE)2405701,2702,210等效宏單元(Macrocell)1924409801,700最大用戶IO80160212272內(nèi)置Flash大小(bit)8K8K8K8K管腳到管腳延時(shí)(ns)3.6-4.53.6-5.53.6-6.03.6-6.52. Xilinx公司的CPLD器件Xilinx公司是FPGA的發(fā)明者,老牌FPGA公司,是最大可編程邏輯器件供應(yīng)商之一。CPL

35、D產(chǎn)品種類(lèi)較全,主要有XC9500和Coolrunner 這兩個(gè)系列。(1)XC9500系列XC9500低成本CPLD系列采用Flash工藝,提供了當(dāng)今前沿系統(tǒng)設(shè)計(jì)所需要的高性能、豐富的性能組合以及靈活性。另外,出色的管腳鎖定功能使設(shè)計(jì)者能夠修改其CPLD設(shè)計(jì),而不會(huì)影響電路板布局。與競(jìng)爭(zhēng)CPLD產(chǎn)品相比,XC9500系列在每個(gè)密度點(diǎn)都提供了多12%以上的邏輯資源,而且不需要額外的成本。 該系列有三種型號(hào)的產(chǎn)品即:XC9500、XC9500XL、XC9500XV。另外5V產(chǎn)品已經(jīng)不推薦使用,而XC9500XL系列目前仍然是Xilinx主要的CPLD產(chǎn)品。 XC9500 系列的常見(jiàn)型號(hào)

36、有XC9536,XC9572,XC95144等, 其主要性能如表2-7所示。XC9500XL系列的常見(jiàn)型號(hào)有XC9536XL,XC9572XL,XC95144 XL等,其主要性能表如表2-8所示。XC9500XV系列的常見(jiàn)型號(hào)有XC9536XV,XC9572XV,XC95144 XV等,其主要性能表如表2-9所示。表2-7  XC9500系列芯片性能 特性/產(chǎn)品XC9536XC9572XC95108XC95144 XC95216 XC95288Macrocell 36 72 108 144 216288 可用門(mén)電路800 1,600 2,400 3,200 4,8

37、006,400  Tpd(ns)5.0 7.5 7.5 7.5 10.015.0  SYS (MHz)10083.383.383.366.755.6表2-8  XC9500XL系列芯片性能 特性/產(chǎn)品XC9536XLXC9572XLXC95144XL XC95288XL宏單元 36 72 144 288 可用門(mén)電路800 1,600 3,200 6,400  Tpd(ns)5.0 5.0 5.0 6.0  SYS (MHz)178178178208表2-9  XC9500XV系列芯片性能特性/產(chǎn)品XC9536XVX

38、C9572XVXC95144XV XC95288XV宏單元 36 72 144 288 可用門(mén)電路800 1,600 3,200 6,400  Tpd(ns)5 5 5 6  SYS (MHz)222222222208(2)Cool Runner-II系列Xilinx的Cool Runner系列CPLD是業(yè)界具有最低功耗、最高性能的器件。這些CPLD提供了諸如I/O組、高級(jí)時(shí)鐘控制和出色的設(shè)計(jì)安全性等先進(jìn)功能來(lái)支持系統(tǒng)級(jí)設(shè)計(jì)。該系列采用 1.8v低功耗PLD產(chǎn)品, 靜態(tài)功耗很低,性能指標(biāo)優(yōu)于XC9500,主要用于用于電池供電系統(tǒng),國(guó)內(nèi)使用者還不是非常廣泛。Cool

39、Runner-II系列的常見(jiàn)型號(hào)有XC2C32A、XC2C64A、XC2C128等, 其主要性能如表2-10所示。2-10  CoolRunner-II系列芯片性能 特性/產(chǎn)品XC2C32AXC2C64AXC2C128XC2C256XC2C384XC2C512 宏單元3264128256384512 Tpd(ns)3.84.65.75.77.17.1 SYS (MHz)323263270256217179 I/O組2222442.4 FPGAFPGA即現(xiàn)場(chǎng)可編程門(mén)陣列(Field Programmable Gate Array),是大

40、規(guī)模可編程邏輯器件除CPLD外的另一類(lèi)PLD器件。前面提到的CPLD和簡(jiǎn)單PLD都是基于乘積項(xiàng)的可編程結(jié)構(gòu),即可編程的與陣列和固定的或項(xiàng)組成,而FPGA使用可編程的查找表(Look Up Table, LUT)結(jié)構(gòu),用靜態(tài)隨機(jī)存儲(chǔ)器SRAM構(gòu)成邏輯函數(shù)發(fā)生器,它的集成度高于CPLD。2.4.1 查找表查找表LUT是現(xiàn)場(chǎng)可編程門(mén)陣列的最小邏輯構(gòu)成單元,其本質(zhì)上就是一個(gè)基于SRAM的邏輯函數(shù)發(fā)生器。目前FPGA中多使用4輸入的LUT,所以每一個(gè)LUT可以看成一個(gè)有4位地址線的16x1的RAM。 當(dāng)用戶通過(guò)原理圖或HDL語(yǔ)言描述了一個(gè)邏輯電路以后,PLD/FPGA開(kāi)發(fā)軟件會(huì)自動(dòng)計(jì)算邏輯電路的所有可能

41、的結(jié)果,并把結(jié)果事先寫(xiě)入RAM,這樣,每輸入一個(gè)信號(hào)進(jìn)行邏輯運(yùn)算就等于輸入一個(gè)地址進(jìn)行查表,找出地址對(duì)應(yīng)的內(nèi)容,然后輸出即可。下面是一個(gè)4輸入與門(mén)的例子,四輸入與門(mén)實(shí)際邏輯電路實(shí)現(xiàn)與用LUT的實(shí)現(xiàn)對(duì)照表如表2-11所示,其內(nèi)部結(jié)構(gòu)如圖2-18所示。由2-18的內(nèi)部結(jié)構(gòu)可知,4輸入查找表LUT由15個(gè)2選一數(shù)據(jù)選擇器和-個(gè)16×1的SRAM存儲(chǔ)器構(gòu)成, A、B、C、D邏輯變量作為數(shù)據(jù)選擇器的控制信號(hào),最后一個(gè)數(shù)據(jù)選擇器的輸出就是邏輯函數(shù)的輸出。我們知道,任何4邏輯函數(shù)都可以表示為唯一的一個(gè)16行邏輯真值表。LUT就是利用數(shù)據(jù)選擇器為輸入變量A、B、C、D和它對(duì)應(yīng)的函數(shù)值之間建立一條通道

42、,16×1的SRAM存儲(chǔ)器中的每一位恰恰存儲(chǔ)的就是對(duì)應(yīng)邏輯函數(shù)的輸出值。由LUT構(gòu)成邏輯函數(shù)時(shí),只需將真值表中邏輯函數(shù)的輸出值存儲(chǔ)到SRAM存儲(chǔ)器的對(duì)應(yīng)位即可,當(dāng)然,將哪一位輸出是由邏輯變量A、B、C、D決定的。表2-11 四輸入與門(mén)實(shí)際邏輯電路實(shí)現(xiàn)與用LUT的實(shí)現(xiàn)對(duì)照表實(shí)際邏輯電路LUT的實(shí)現(xiàn)方式a,b,c,d 輸入邏輯輸出地址RAM中存儲(chǔ)的內(nèi)容00000000000001000010.0.01111111111圖2-18 FPGA的四輸入LUT的內(nèi)部結(jié)構(gòu)顯然,一個(gè)N輸入的查找表,需要用2的N次冪個(gè)位的SRAM單元。當(dāng)利用N輸入的查找表去實(shí)現(xiàn)N-1個(gè)輸入變量的邏輯函數(shù)時(shí),幾乎一半資

43、源處于閑置狀態(tài),所以N不可能很大,否則LUT的利用率很低。2.4.2 FPGA的基本結(jié)構(gòu)和工作原理FLEX10K系列器件的結(jié)構(gòu)和工作原理在Altera的FPGA器件中具有一定的代表性,這里以此為例,介紹FPGA的結(jié)構(gòu)和工作原理。FLEX10K系列結(jié)構(gòu)主要由邏輯陣列塊(Logic Array Block, LAB)、嵌入式陣列塊(EBA, Embedded Array Block)、快速通道和I/O單元四部分組成,其內(nèi)部結(jié)構(gòu)如圖2-19所示。下面分別介紹各模塊的結(jié)構(gòu)。圖2-19 FLEX 10K系列的內(nèi)部結(jié)構(gòu)1. 邏輯陣列塊LAB邏輯陣列塊LAB由8個(gè)邏輯單元(LE,Logic Element)

44、、兩條專用高速通路(進(jìn)位鏈和級(jí)聯(lián)鏈)、1個(gè)局部互連通道和三個(gè)多路選擇器組成。LAB可完成一些通用的邏輯功能,例如,實(shí)現(xiàn)計(jì)數(shù)器、加法器、狀態(tài)機(jī)和多路選擇器等。其結(jié)構(gòu)如圖2-20所示。圖2-20 LAB的結(jié)構(gòu)(1) 邏輯單元LE邏輯單元LE(Logic Element)是FLEX10K結(jié)構(gòu)中的最小單元,它能有效地實(shí)現(xiàn)邏輯功能。每個(gè)LE由一個(gè)4輸入的查找表LUT、一個(gè)帶有同步使能的可編程觸發(fā)器、一個(gè)進(jìn)位鏈和一個(gè)級(jí)聯(lián)鏈等電路組成。每個(gè)LE有兩個(gè)輸出分別可以驅(qū)動(dòng)局部互連和快速通道互連,圖2-21是LE結(jié)構(gòu)圖。圖2-21 LE的結(jié)構(gòu)1) 查找表查找表是一個(gè)函數(shù)發(fā)生器,它能快速計(jì)算四變量的任何邏輯函數(shù)。其數(shù)

45、據(jù)輸入來(lái)自LAB的局部互聯(lián)通道。2) 可編程觸發(fā)器可編程觸發(fā)器可以設(shè)置成D、T、JK或RS觸發(fā)器,其輸入信號(hào)由接在輸入端的二選一數(shù)據(jù)選擇器控制,既可以選擇級(jí)聯(lián)鏈的輸出信號(hào),也可以選擇來(lái)自LAB互連通道的數(shù)據(jù)4的信號(hào)。除了數(shù)據(jù)輸入外,觸發(fā)器的復(fù)位(CLRN)和置位(PRN)是通過(guò)置位/復(fù)位邏輯電路來(lái)實(shí)現(xiàn);在LE中置位/復(fù)位邏輯電路有四個(gè)輸入端分別是LAB控制1、LAB控制2、全部器件清零、數(shù)據(jù)3,其中LAB控制1、LAB控制2是每個(gè)LAB為所有邏輯單元提供的兩個(gè)復(fù)位/置位信號(hào),全部器件清零可對(duì)器件中所有的觸發(fā)器進(jìn)行復(fù)位,其信號(hào)優(yōu)先級(jí)最高。選通使能端(ENA)通過(guò)控制信號(hào)與數(shù)據(jù)1的或門(mén)來(lái)實(shí)現(xiàn);控制

46、時(shí)鐘通過(guò)數(shù)據(jù)選擇器選擇2個(gè)由每個(gè)LAB為所有邏輯單元提供的兩個(gè)時(shí)鐘信號(hào)LAB控制3和LAB控制4其一作為時(shí)鐘脈沖。3) 進(jìn)位鏈(Carry Chain)與級(jí)聯(lián)鏈(Cascade Chain)FLEX10K的結(jié)構(gòu)提供了兩條專用高速通道,即進(jìn)位鏈(Carry Chain)與級(jí)聯(lián)鏈(Cascade Chain)。它們并不占用LAB的局部互連通道(這一點(diǎn)從圖2-20和2-21都可以看出),而是在同一LAB中的所有LE和同一行中所有LAB之間建立布線區(qū),將所有的LAB直接連通。進(jìn)位鏈為L(zhǎng)E提供了快速的進(jìn)位功能。來(lái)自低位的進(jìn)位信號(hào)經(jīng)進(jìn)位鏈(Carry Chain)的連接送至高位LE中的LUT和進(jìn)位鏈(Ca

47、rry Chain),使FLEX10K器件能實(shí)現(xiàn)高速計(jì)數(shù)器和任意位的加法器和比較器。超過(guò)8個(gè)LE的進(jìn)位鏈(Carry Chain)可通過(guò)LAB的連接實(shí)現(xiàn),而低于8個(gè)的進(jìn)位鏈可以在同一LAB的邏輯單元中實(shí)現(xiàn)。用n+1個(gè)LE實(shí)現(xiàn)n位全加器的進(jìn)位鏈(Carry Chain)操作如圖2-22所示。級(jí)聯(lián)鏈(Cascade Chain)可在最小延時(shí)的情況下,實(shí)現(xiàn)多輸入變量的邏輯函數(shù)。相鄰的LUT用來(lái)并行完成部分邏輯功能,級(jí)聯(lián)鏈把中間結(jié)果串接起來(lái)。級(jí)聯(lián)鏈可以使用邏輯“與(and)”或者邏輯“或(or)”來(lái)連接相鄰LE的輸出。每個(gè)附加的LE提供有效輸入4個(gè),其延時(shí)會(huì)增加少許。4n位變量邏輯函數(shù)級(jí)聯(lián)鏈如圖2-2

48、3所示。4) 輸出驅(qū)動(dòng)電路LE有兩個(gè)數(shù)據(jù)選擇器來(lái)實(shí)現(xiàn)兩個(gè)輸出端,分別驅(qū)動(dòng)局部互連通道和快速互連通道。每個(gè)輸出都可以獨(dú)立控制,通過(guò)編程可形成兩種輸出方式:一種是將觸發(fā)器旁路,直接由LUT的組合輸出;另一種是用于時(shí)序電路的寄存器輸出。因而在一個(gè)LE中的觸發(fā)器和LUT能夠用來(lái)完成不相干的功能,提高了LE的資源利用率。另外通過(guò)軟件可以為L(zhǎng)E設(shè)置四種工作模式:正常模式、運(yùn)算模式、加/減計(jì)數(shù)模式和可復(fù)位的計(jì)數(shù)模式。圖2-22 n位全加器的進(jìn)位鏈操作圖2-23 4n位變量邏輯函數(shù)級(jí)聯(lián)鏈(2) LAB的局部互連通道LAB的局部互連通道是一個(gè)可編程的布線區(qū),其輸入信號(hào)來(lái)自互連通道和LE的輸出反饋信號(hào),其輸出為每

49、個(gè)LE提供4個(gè)數(shù)據(jù)輸入信號(hào),同時(shí)也為控制電路提供4個(gè)控制信號(hào),作為L(zhǎng)E的時(shí)鐘、置位/復(fù)位邏輯的選通。(3) LAB的控制電路和輸出驅(qū)動(dòng)電路LAB的控制電路有一個(gè)四選一數(shù)據(jù)選擇器組成,其輸入取自LAB的局部互連通道和專用輸入與全局信號(hào),并采用互補(bǔ)輸入;輸出則為各LE的時(shí)鐘和置位/復(fù)位信號(hào)。LAB的輸出驅(qū)動(dòng)電路由兩個(gè)二選一數(shù)據(jù)選擇器組成。其中一個(gè)實(shí)現(xiàn)行互連通道對(duì)LE的輸出信號(hào)和列互連通道信號(hào)的選通,而另一個(gè)則完成列互連通道對(duì)LE的輸出和行互連的選通。因而LAB通過(guò)輸出驅(qū)動(dòng)電路實(shí)現(xiàn)LE的輸出與行、列互連通道,以及行、列互連通道之間的連通。2. 嵌入式陣列塊(EAB,Embedded Array Bl

50、ock )FLEX10K系列器件的嵌入式陣列塊EAB是輸入和輸出端帶有寄存器的非常靈活的RAM塊,可用于實(shí)現(xiàn)通用陣列邏輯。EAB可用來(lái)實(shí)現(xiàn)各種不同存儲(chǔ)的RAM,也可以用來(lái)實(shí)現(xiàn)復(fù)雜的邏輯功能,如能夠方便地構(gòu)成乘法器、加法器、糾錯(cuò)電路等模塊,并由這些功能模塊進(jìn)一步構(gòu)成諸如數(shù)字濾波器和微控制器等功能的系統(tǒng)。EAB的結(jié)構(gòu)如圖2-24所示,它由可編程RAM、輸入/輸出寄存器、局部互連通路(EAB Local Interconnect)、三個(gè)四選一數(shù)據(jù)選擇器構(gòu)成的控制電路和三個(gè)二選一數(shù)據(jù)選擇器構(gòu)成的輸出電路五部分組成。(1)可編程RAM可編程RAM是EAB的核心,用來(lái)存儲(chǔ)數(shù)據(jù),實(shí)現(xiàn)邏輯功能。它為EAB提供

51、了2048字節(jié)的容量。通過(guò)編程可配置成256×8、512×4、1024×2、2048×1等多種規(guī)格的RAM。當(dāng)需要較大容量的RAM時(shí),可由多個(gè)EAB連接產(chǎn)生。例如,兩個(gè)256×8的RAM可組成256×16的RAM;兩個(gè)512×4的RAM可組成512×8的RAM。EAB的連接可通過(guò)軟件自動(dòng)連接。(2)輸入/輸出寄存器由圖2-24可知,RAM的數(shù)據(jù)輸入端(Data In)、數(shù)據(jù)輸出端(Data Out)以及地址輸入端(Address)和寫(xiě)使能端(WE)都接由寄存器。輸入寄存器用來(lái)完成暫存RAM的輸入數(shù)據(jù)、地址信息和寫(xiě)使

52、能信號(hào),輸出寄存器用來(lái)暫存RAM的輸出數(shù)據(jù),它們都是由D觸發(fā)器構(gòu)成的。在每個(gè)寄存器的輸出端都接有二選一數(shù)據(jù)選擇器,通過(guò)編程可實(shí)現(xiàn)RAM的寄存器輸入/輸出和直接輸出。所有寄存器都可通過(guò)Reset直接復(fù)位。圖2-24 EAB的結(jié)構(gòu)(3)局部互連通路(EAB Local Interconnect)EAB的局部互連通路是一個(gè)可編程布線區(qū),其輸入信號(hào)來(lái)自行互連通路(Row Interconnect),其輸出信號(hào)驅(qū)動(dòng)輸入寄存器和控制電路。它為EAB提供數(shù)據(jù)輸入信號(hào)、地址輸入信號(hào)、寫(xiě)使能控制信號(hào)及寄存器的時(shí)鐘,使可編程RAM完成數(shù)據(jù)的讀/寫(xiě)操作。EAB控制電路與輸出電路和LAB控制電路與輸出電路的分析相同,

53、作用也相同,這里就不重復(fù)說(shuō)明了。3. 快速互連通道FLEX10K系列器件結(jié)構(gòu)中,LE和I/O引腳之間的連接是通過(guò)快速互連通道實(shí)現(xiàn)的??焖倩ミB通道遍布于整個(gè)器件中,是一系列水平和垂直走向的連續(xù)布線通道。每行的LAB有一個(gè)專用的“行互連”,“行互連”可以驅(qū)動(dòng)I/O引腳,并將信號(hào)傳送到同一行中的其他LAB中?!傲谢ミB”連接各行,同時(shí)也能夠驅(qū)動(dòng)I/O引腳。 即使器件用于非常復(fù)雜的設(shè)計(jì),采用這種布線結(jié)構(gòu)也可以預(yù)測(cè)其延時(shí)特性。有些FPGA采用分段式連線結(jié)構(gòu),需要用開(kāi)關(guān)矩陣把若干條短的線段連接起來(lái),這樣邏輯布線變得容易了許多,但同時(shí)會(huì)使延時(shí)難以預(yù)測(cè),給設(shè)計(jì)帶來(lái)了困難。4.輸入/輸出單元IOE器件的I/O引腳

54、是由輸入輸出單元IOE驅(qū)動(dòng)的。IOE位于快速互連通道行和列的末端,包含一個(gè)雙向的I/O緩沖器和一個(gè)觸發(fā)器,這個(gè)觸發(fā)器可以用作需要快速建立時(shí)間的外部數(shù)據(jù)輸入寄存器,也可以作為要求快速“時(shí)鐘到輸出”性能的數(shù)據(jù)輸出寄存器。2.4.3 常用的FPGA器件1. Altera公司的FPGA器件Altera公司是全球最大的可編程邏輯器件供應(yīng)商之一。其主要FPG產(chǎn)品為:FLEX10K/E、Cyclone/ CycloneII、Stratix/StratixII這三個(gè)系列。(1)FLEX10K/E系列FLEX10K/E 系列是Altera歷史上最成功的器件,依靠該器件,Altera在FPGA市場(chǎng)上獲得了今天的地

55、位,由于時(shí)間久遠(yuǎn),所有的FLEX10系列已經(jīng)不推廣。 FLEX10KE是98推出的2.5vSRAM工藝 FPGA,帶嵌入式存儲(chǔ)塊(EAB) 。該系列的主要型號(hào)有EPF10K30E、EPF10K50E等, 其主要性能表如表2-12所示。表2-12 FLEX10K/E系列的芯片性能2.5v2.5v邏輯單元(LE)嵌入式RAM塊備注-EP1K105763每個(gè)RAM塊容量為4KbitEPF10K30EEP1K3017286EPF10K50EEP1K50288010EPF10K100EEP1K100499212 (2)Cyclone/ CycloneII系列Altera的主流FPGA分為兩大類(lèi),一種側(cè)重低成本應(yīng)用,容量中等,性能可以滿足一般的邏輯設(shè)計(jì)要求,如Cyclone,CycloneII;還有一種側(cè)重于高性能應(yīng)用,容量大,性能能滿足各類(lèi)高端應(yīng)用,如Startix,Stratix

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論