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

下載本文檔

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

文檔簡介

1、可編程邏輯器件的認(rèn)識器件篇1可編程邏輯器件到底是個什么東西呢?先舉個很簡單但是比較藝術(shù)的例子吧,像一塊空白的畫布,你可以在上面做隨意做繪畫的事情,你要做行為藝術(shù)也可以,嘿嘿,因此它的最大一個特點(diǎn)就是可編程性了,當(dāng)然也不是說它做什么都可以做,如果你想用空白的畫布來做雕塑的話,我倒是想見識一下,:)呵呵言規(guī)正傳,可編程邏輯器件通俗點(diǎn)講就是比GAL(如16V8等)更大,門數(shù)更多而且使用上更靈活的GAL(但跟GAL上稍有區(qū)別,下面會講到),因此在這里就有了新名詞了,叫CPLD(Complex Programable Logic Device)或者FPGA(Field Programable Gate

2、Array)。因此,可以籠統(tǒng)地講,凡是涉及到數(shù)字電路的設(shè)計,可編程邏輯器件都可以實(shí)現(xiàn)和完成。據(jù)我所知,國內(nèi)的號稱的第一塊自主產(chǎn)權(quán)的CPU“龍芯”就是在先在FPGA上實(shí)現(xiàn)后,然后驗(yàn)證,成功后才拿去流片的;而很多的ASIC其實(shí)上也是在CPLD或者FPGA上實(shí)現(xiàn)驗(yàn)證后拿去流片的?,F(xiàn)在的可編程邏輯器件絕大部分都只能完成數(shù)字信號的處理,如果需要對模擬量信號的處理,那CPLD/FPGA就無能為力了,但現(xiàn)在已經(jīng)出現(xiàn)了可編程的模擬器件的趨勢了。 對于數(shù)字電路來說,所有的組合邏輯都可以通過最簡的“與或非”表達(dá)式來完成,因此我們?nèi)绻獙?shí)現(xiàn)一些數(shù)字邏輯功能的話,完全可以在一塊可以編程的“與或非”的邏輯陣列上通過編程

3、來實(shí)現(xiàn)所需要的功能,如同簡單的GAL可以實(shí)現(xiàn)的功能一樣,在GAL的結(jié)構(gòu)里來講,它的與陣是可編程的,而或陣是固定連接的。但它的輸出完全由用戶定義,得以用戶能完成任何所需要的邏輯功能。而對于CPLD/FPGA來講,器件內(nèi)部的結(jié)構(gòu)基本上是基于兩種結(jié)構(gòu)的,一種是乘積項(Product-Term),一種是基于查找表(Look-Up-Table)。 1.先看一下基于乘積項的CPLD的結(jié)構(gòu)。如下面的圖所示。此主題相關(guān)圖片如下:這種CPLD可分為三塊結(jié)構(gòu):宏單元(Marocell),可編程連線(PIA)和I/O控制塊。宏單元是PLD的基本結(jié)構(gòu),由它來實(shí)現(xiàn)基本的邏輯功能。圖1中藍(lán)色部分是多個宏單元的集合(因?yàn)楹?/p>

4、單元較多,沒有一一畫出)??删幊踢B線負(fù)責(zé)信號傳遞,連接所有的宏單元。I/O控制塊負(fù)責(zé)輸入輸出的電氣特性控制,比如可以設(shè)定集電極開路輸出,擺率控制,三態(tài)輸出等。圖1 左上的INPUT/GCLK1,INPUT/GCLRn,INPUT/OE1,INPUT/OE2是全局時鐘,清零和輸出使能信號,這幾個信號有專用連線與PLD中每個宏單元相連,信號到每個宏單元的延時相同并且延時最短。宏單元的具體結(jié)構(gòu)見下圖:此主題相關(guān)圖片如下:左側(cè)是乘積項陣列,實(shí)際就是一個與或陣列,每一個交叉點(diǎn)都是一個可編程熔絲,如果導(dǎo)通就是實(shí)現(xiàn)“與”邏輯。后面的乘積項選擇矩陣是一個“或”陣列。兩者一起完成組合邏輯。圖右側(cè)是一個可編程D觸

5、發(fā)器,它的時鐘,清零輸入都可以編程選擇,可以使用專用的全局清零和全局時鐘,也可以使用內(nèi)部邏輯(乘積項陣列)產(chǎn)生的時鐘和清零。如果不需要觸發(fā)器,也可以將此觸發(fā)器旁路,信號直接輸給PIA或輸出到I/O腳。再講一講基于乘積項的結(jié)構(gòu)的CPLD是如何實(shí)現(xiàn)數(shù)字電路的。此主題相關(guān)圖片如下:假設(shè)組合邏輯的輸出(AND3的輸出)為f,則f=(A+B)*C*(!D)=A*C*!D + B*C*!D ( 我們以!D表示D的“非”)。CPLD將以下面的方式來實(shí)現(xiàn)組合邏輯f:此主題相關(guān)圖片如下:A,B,C,D由CPLD芯片的管腳輸入后進(jìn)入可編程連線陣列(PIA),在內(nèi)部會產(chǎn)生A,A反,B,B反,C,C反,D,D反8個輸

6、出。圖中每一個叉表示相連(可編程熔絲導(dǎo)通),所以得到:f=f1 + f2 = (A*C*!D) + (B*C*!D) 。這樣組合邏輯就實(shí)現(xiàn)了。 圖3電路中D觸發(fā)器的實(shí)現(xiàn)比較簡單,直接利用宏單元中的可編程D觸發(fā)器來實(shí)現(xiàn)。時鐘信號CLK由I/O腳輸入后進(jìn)入芯片內(nèi)部的全局時鐘專用通道,直接連接到可編程觸發(fā)器的時鐘端??删幊逃|發(fā)器的輸出與I/O腳相連,把結(jié)果輸出到芯片管腳。這樣PLD就完成了圖3所示電路的功能。(以上這些步驟都是由軟件自動完成的,不需要人為干預(yù))。圖3的電路是一個很簡單的例子,只需要一個宏單元就可以完成。但對于一個復(fù)雜的電路,一個宏單元是不能實(shí)現(xiàn)的,這時就需要通過并聯(lián)擴(kuò)展項和共享擴(kuò)展項

7、將多個宏單元相連,宏單元的輸出也可以連接到可編程連線陣列,再做為另一個宏單元的輸入。這樣PLD就可以實(shí)現(xiàn)更復(fù)雜邏輯。這種基于乘積項的PLD基本都是由EEPROM和Flash工藝制造的,一上電就可以工作,無需其他芯片配合。2.先看看查找表(Look-Up-Table)的原理和結(jié)構(gòu)采用這種結(jié)構(gòu)的PLD芯片我們也可以稱之為FPGA:如altera的ACEX,APEX系列,xilinx的Spartan,Virtex系列等。查找表(Look-Up-Table)簡稱為LUT,LUT本質(zhì)上就是一個RAM。目前FPGA中多使用4輸入的LUT,所以每一個LUT可以看成一個有4位地址線的16x1的RAM。當(dāng)用戶通

8、過原理圖或HDL語言描述了一個邏輯電路以后,PLD/FPGA開發(fā)軟件會自動計算邏輯電路的所有可能的結(jié)果,并把結(jié)果事先寫入RAM,這樣,每輸入一個信號進(jìn)行邏輯運(yùn)算就等于輸入一個地址進(jìn)行查表,找出地址對應(yīng)的內(nèi)容,然后輸出即可。下面是一個4輸入與門的例子,此主題相關(guān)圖片如下:再看看基于查找表(LUT)的FPGA的結(jié)構(gòu)我們看一看Xilinx Spartan-II的內(nèi)部結(jié)構(gòu),如下圖:此主題相關(guān)圖片如下:Xilinx Spartan-II 芯片內(nèi)部結(jié)構(gòu)此主題相關(guān)圖片如下:Slices結(jié)構(gòu)Spartan-II主要包括CLBs,I/O塊,RAM塊和可編程連線(未表示出)。在spartan-II中,一個CLB包

9、括2個Slices,每個slices包括兩個LUT,兩個觸發(fā)器和相關(guān)邏輯。 Slices可以看成是SpartanII實(shí)現(xiàn)邏輯的最基本結(jié)構(gòu) (xilinx其他系列,如SpartanXL,Virtex的結(jié)構(gòu)與此稍有不同,具體請參閱數(shù)據(jù)手冊)。Altera的FLEX/ACEX等芯片的結(jié)構(gòu)如下圖:此主題相關(guān)圖片如下:Altera FLEX/ACEX 芯片的內(nèi)部結(jié)構(gòu)此主題相關(guān)圖片如下:邏輯單元(LE)內(nèi)部結(jié)構(gòu)FLEX/ACEX的結(jié)構(gòu)主要包括LAB,I/O塊,RAM塊(未表示出)和可編程行/列連線。在FLEX/ACEX中,一個LAB包括8個邏輯單元(LE),每個LE包括一個LUT,一個觸發(fā)器和相關(guān)的相關(guān)邏

10、輯。LE是FLEX/ACEX芯片實(shí)現(xiàn)邏輯的最基本結(jié)構(gòu)(altera其他系列,如APEX的結(jié)構(gòu)與此基本相同,具體請參閱數(shù)據(jù)手冊)。FPGA是如何利用查找表來實(shí)現(xiàn)數(shù)字電路的原理(以圖3的電路為例)A,B,C,D由FPGA芯片的管腳輸入后進(jìn)入可編程連線,然后作為地址線連到到LUT,LUT中已經(jīng)事先寫入了所有可能的邏輯結(jié)果,通過地址查找到相應(yīng)的數(shù)據(jù)然后輸出,這樣組合邏輯就實(shí)現(xiàn)了。該電路中D觸發(fā)器是直接利用LUT后面D觸發(fā)器來實(shí)現(xiàn)。時鐘信號CLK由I/O腳輸入后進(jìn)入芯片內(nèi)部的時鐘專用通道,直接連接到觸發(fā)器的時鐘端。觸發(fā)器的輸出與I/O腳相連,把結(jié)果輸出到芯片管腳。這樣PLD就完成了圖3所示電路的功能。(

11、以上這些步驟都是由軟件自動完成的,不需要人為干預(yù))。這個電路是一個很簡單的例子,只需要一個LUT加上一個觸發(fā)器就可以完成。對于一個LUT無法完成的的電路,就需要通過進(jìn)位邏輯將多個單元相連,這樣FPGA就可以實(shí)現(xiàn)復(fù)雜的邏輯。由于LUT主要適合SRAM工藝生產(chǎn),所以目前大部分FPGA都是基于SRAM工藝的,而SRAM工藝的芯片在掉電后信息就會丟失,一定需要外加一片專用配置芯片,在上電的時候,由這個專用配置芯片把數(shù)據(jù)加載到FPGA中,然后FPGA就可以正常工作,由于配置時間很短,不會影響系統(tǒng)正常工作。 也有少數(shù)FPGA采用反熔絲或Flash工藝,對這種FPGA,就不需要外加專用的配置芯片。3.是選擇CPLD還是選擇FPGA根據(jù)上一篇PLD的結(jié)構(gòu)和原理可以知道,PLD分解組合邏輯的功能很強(qiáng),一個宏單元就可以分解十幾個甚至2030多個組合邏輯輸入。而FPGA的一個LUT只能處理4輸入的組合邏輯,因此

溫馨提示

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

評論

0/150

提交評論