硬件描述語言和數(shù)字系統(tǒng)設(shè)計:第13章 可編程邏輯器件FPGA原理_第1頁
硬件描述語言和數(shù)字系統(tǒng)設(shè)計:第13章 可編程邏輯器件FPGA原理_第2頁
硬件描述語言和數(shù)字系統(tǒng)設(shè)計:第13章 可編程邏輯器件FPGA原理_第3頁
硬件描述語言和數(shù)字系統(tǒng)設(shè)計:第13章 可編程邏輯器件FPGA原理_第4頁
硬件描述語言和數(shù)字系統(tǒng)設(shè)計:第13章 可編程邏輯器件FPGA原理_第5頁
已閱讀5頁,還剩29頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、1第13章 可編程邏輯器件FPGA原理硬件描述語言和數(shù)字系統(tǒng)設(shè)計2主要內(nèi)容:13.1 可編程邏輯器件FPGA原理13.2 基于可編程邏輯器件FPGA設(shè)計313.1 可編程邏輯器件FPGA原理知識點:13.1.1 FPGA概述13.1.2 FPGA組成13.1.3 FPGA特點13.1.4 電路結(jié)構(gòu)13.1.5 基于乘積項的PLD結(jié)構(gòu) 13.1.6 乘積項結(jié)構(gòu)PLD的邏輯實現(xiàn)原理 13.1.7 查找表的原理與結(jié)構(gòu)13.1.8 基于查找表(LUT)的FPGA的結(jié)構(gòu)13.1.9 查找表結(jié)構(gòu)的FPGA邏輯實現(xiàn)原理 413.1.1 概述FPGA(Field Programable Gate Array)

2、:現(xiàn)場可編程門陣列CPLD(Complex Programable Logic Device):復(fù)雜可編程邏輯器件FPGACPLD是在PAL、GAL等邏輯器件的基礎(chǔ)之上發(fā)展起來的,規(guī)模比較大Altera和Xilinx公司占有全球PLD/FPGA產(chǎn)品60%以上的份額513.1.2 組成FPGA,CPLD和其它類型PLD的結(jié)構(gòu)概括起來都由三大部分構(gòu)成:一個二維的邏輯塊陣列,構(gòu)成了PLD器件的邏輯組成核心輸入輸出塊連接邏輯塊的互連資源 6藍色:邏輯單元紅色:連線資源 黃色:輸入輸出塊 圖1 典型的PLD框圖 713.1.3 特點FPGACPLD芯片都是特殊的ASIC芯片,具有一般ASIC的特點FPG

3、ACPLD芯片規(guī)模已達上百萬門,所能實現(xiàn)的功能也越來越強,同時支持系統(tǒng)集成FPGACPLD芯片在出廠之前都做過測試,不需要設(shè)計人員承擔(dān)投片的風(fēng)險和費用,所以資金投入小,節(jié)省了許多潛在的花費用戶可以反復(fù)地編程、擦除、使用或者在外圍電路不動的情況下用不同軟件就可實現(xiàn)不同的功能。用FPGAPLD試制樣片,能以最快的速度占領(lǐng)市場813.1.4 電路結(jié)構(gòu)乘積項(Product-Term) 結(jié)構(gòu)(PLD多采用該結(jié)構(gòu))Altera的MAX7000,MAX3000系列(EEPROM工藝),Xilinx的XC9500系列(Flash工藝)和Lattice,Cypress的大部分產(chǎn)品(EEPROM工藝) 查找表(

4、Look-Up-Table) 結(jié)構(gòu)(FPGA多采用該結(jié)構(gòu))altera的ACEX,APEX系列,xilinx的Spartan,Virtex系列等 913.1.5 基于乘積項(Product-Term)的PLD結(jié)構(gòu) 圖2 基于乘積項的PLD內(nèi)部結(jié)構(gòu) 這種PLD可分為三塊結(jié)構(gòu):宏單元(Marocell)、可編程連線(PIA)和I/O控制塊。10宏單元是PLD的基本結(jié)構(gòu),由它來實現(xiàn)基本的邏輯功能。圖1中藍色部分是多個宏單元的集合。可編程連線負責(zé)信號傳遞,連接所有的宏單元。I/O控制塊負責(zé)輸入輸出的電氣特性控制。圖2左上的INPUT/GCLK1,INPUT /GCLRn, INPUT/OE1, INP

5、UT/OE2 是全局時鐘、清零和輸出使能信號,這幾個信號有專用連線與PLD中每個宏單元相連,信號到每個宏單元的延時相同并且延時最短。宏單元的具體結(jié)構(gòu)見圖3所示。 11圖3 PLD宏單元結(jié)構(gòu) 1213.1.6 乘積項結(jié)構(gòu)PLD的邏輯實現(xiàn)原理 圖4 CMOS工藝實現(xiàn)電路 13圖5 PLD的邏輯實現(xiàn)方法 14PLD將以下面的方式來實現(xiàn)組合邏輯f: A,B,C,D由PLD芯片的管腳輸入后進入可編程連線陣列(PIA),在內(nèi)部會產(chǎn)生A,A反,B,B反,C,C反,D,D反8個輸出。圖5中每一個叉表示相連(可編程熔絲導(dǎo)通)對于一個復(fù)雜的電路,就需要通過并聯(lián)擴展項和共享擴展項將多個宏單元相連,宏單元的輸出也可以

6、連接到可編程連線陣列,再做為另一個宏單元的輸入。這樣PLD就可以實現(xiàn)更復(fù)雜邏輯?;诔朔e項的PLD基本都是由EEPROM和Flash工藝制造的,一上電就可以工作,無需其他芯片配合。1513.1.7 查找表(Look-Up-Table)的原理與結(jié)構(gòu)采用這種結(jié)構(gòu)的PLD芯片我們也可以稱之為FPGA 查找表(Look-Up-Table)簡稱為LUT,LUT本質(zhì)上就是一個RAM目前FPGA中多使用4輸入的LUT,所以每一個LUT可以看成一個有4位地址線的16x1的RAM 當(dāng)用戶通過原理圖或HDL語言描述了一個邏輯電路以后,PLD/FPGA開發(fā)軟件會自動計算邏輯電路的所有可能的結(jié)果,并把結(jié)果事先寫入RA

7、M 每輸入一個信號進行邏輯運算就等于輸入一個地址進行查表,找出地址對應(yīng)的內(nèi)容,然后輸出即可 164輸入與門的實際電路和LUT實現(xiàn)形式比較 實際邏輯電路LUT的實現(xiàn)方式a,b,c,d 輸入邏輯輸出地址RAM中存儲的內(nèi)容00000000000001000010.0.011111111111713.1.8 基于查找表(LUT)的FPGA的結(jié)構(gòu)Xilinx 公司的Spartan-II主要包括CLBs,I/O塊,RAM塊和可編程連線(未表示出)。在spartan-II中,一個CLB包括2個Slices,每個slices包括兩個LUT,兩個觸發(fā)器和相關(guān)邏輯。Slices可以看成是SpartanII實現(xiàn)邏輯

8、的最基本結(jié)構(gòu)。 18圖6 xilinx Spartan-II 芯片內(nèi)部結(jié)構(gòu) 圖7 Slices結(jié)構(gòu) 19Altera 公司的FLEX/ACEX的結(jié)構(gòu)主要包括LAB,I/O塊,RAM塊(未表示出)和可編程行/列連線。在FLEX/ACEX中,一個LAB包括8個邏輯單元(LE,如圖9所示),每個LE包括一個LUT,一個觸發(fā)器和相關(guān)的相關(guān)邏輯。LE是FLEX/ACEX芯片實現(xiàn)邏輯的最基本結(jié)構(gòu)。20圖8 altera FLEX/ACEX 芯片的內(nèi)部結(jié)構(gòu)21圖9 邏輯單元(LE)內(nèi)部結(jié)構(gòu) 2213.1.9 查找表結(jié)構(gòu)的FPGA邏輯實現(xiàn)原理 以圖4電路為例。A,B,C,D由FPGA芯片的管腳輸入后進入可編程

9、連線,然后作為地址線連到到LUT,LUT中已經(jīng)事先寫入了所有可能的邏輯結(jié)果,通過地址查找到相應(yīng)的數(shù)據(jù)然后輸出,這樣組合邏輯就實現(xiàn)了。該電路中D觸發(fā)器是直接利用LUT后面D觸發(fā)器來實現(xiàn)。時鐘信號CLK由I/O腳輸入后進入芯片內(nèi)部的時鐘專用通道,直接連接到觸發(fā)器的時鐘端。觸發(fā)器的輸出與I/O腳相連,把結(jié)果輸出到芯片管腳。這樣PLD就完成了圖4所示電路的功能。(以上這些步驟都是由軟件自動完成的,不需要人為干預(yù))23這個電路是一個很簡單的例子,只需要一個LUT加上一個觸發(fā)器就可以完成。對于一個LUT無法完成的的電路,就需要通過進位邏輯將多個單元相連,這樣FPGA就可以實現(xiàn)復(fù)雜的邏輯。 由于LUT主要適

10、合SRAM工藝生產(chǎn),所以目前大部分FPGA都是基于SRAM工藝的,而SRAM工藝的芯片在掉電后信息就會丟失,一定需要外加一片專用配置芯片,在上電的時候,由這個專用配置芯片把數(shù)據(jù)加載到FPGA中,然后FPGA就可以正常工作,由于配置時間很短,不會影響系統(tǒng)正常工作。也有少數(shù)FPGA采用反熔絲或Flash工藝,對這種FPGA,就不需要外加專用的配置芯片。2413.2 可編程邏輯器件FPGA設(shè)計知識點:13.2.1 PLD與FPGA的選擇13.2.2 FPGA設(shè)計流程(以4位加法器為例)13.2.3 FPGA管腳約束文件2513.2.1 選擇PLD還是FPGA? PLD分解組合邏輯的功能很強,一個宏單

11、元就可以分解十幾個甚至2030多個組合邏輯輸入。而FPGA的一個LUT只能處理4輸入的組合邏輯,因此,PLD適合用于設(shè)計譯碼等復(fù)雜組合邏輯。但FPGA的制造工藝確定了FPGA芯片中包含的LUT和觸發(fā)器的數(shù)量非常多,往往都是幾千上萬,PLD一般只能做到512個邏輯單元,而且如果用芯片價格除以邏輯單元數(shù)量,F(xiàn)PGA的平均邏輯單元成本大大低于PLD。所以如果設(shè)計中使用到大量觸發(fā)器,例如設(shè)計一個復(fù)雜的時序邏輯,那么使用FPGA就是一個很好的選擇。 26 FPGA軟件平臺:Xilinx 公司的ISE 6.2 Altera公司的QartusII 是一個以FPGA實現(xiàn)為目的的全流程平臺,集成了仿真工具Mod

12、elsim、綜合工具XST或synplify以及版圖工具可實現(xiàn)從源碼編寫、仿真、綜合、版圖布局直到最后生成可下載到FPGA器件去的*.bit位流文件以4位加法器為例演示整個操作過程2713.2.2 以4位加法器為例module adder( A, B, SUM );input 3:0 A; / 四位加法器的加數(shù)輸入線input 3:0 B; / 四位加法器的被加數(shù)輸入線output 4:0 SUM; / 包括進位的四位加法器輸出/ 利用Verilog HDL加法運算子設(shè)計出的加法器assign SUM = A + B; endmodule2813.2.3 4位加法器的FPGA管腳約束文件#PA

13、CE: Start of Constraints generated by PACE#PACE: Start of PACE I/O Pin AssignmentsNET A LOC = p163 ;NET A LOC = p161 ;NET A LOC = p109 ;NET A LOC = p111 ;NET B LOC = p113 ;NET B LOC = p115 ;NET B LOC = p120 ;NET B LOC = p122 ;NET SUM LOC = p33 ;NET SUM LOC = p30 ;NET SUM LOC = p27 ;NET SUM LOC = p23

14、 ;NET SUM LOC = p21 ;#PACE: Start of PACE Area Constraints#PACE: Start of PACE Prohibit Constraints#PACE: End of Constraints generated by PACE29 按照使用說明運行ISE的Project Navigator軟件新建project并向工程中加入源碼adder.v文件和管腳約束文件adder.ucf文件后FPGA器件選擇 device family: spartan2 device: xc2s200 package: pq208在左上角的module vie

15、w窗口中選中源碼頂層文件adder.v在左下角的process view窗口可進行全流程操作,重要步驟如下:301.選擇綜合synthesize可查看view synthesis report,可看代碼對應(yīng)的電路規(guī)模、所占資源等信息2.雙擊 Implement Design可完成綜合的translate、map、place&Route等步驟操作3.點開步驟2的子欄place&Route,可進行靜態(tài)時序分析Post-Place&Route Static Timing Report,看看是否有建立時間違背; 可進行FPGA布局布線后仿真網(wǎng)表和延時文件生成Post-Place&Route Simul

16、ation Model; 還可進行功耗分析Analyze Power(xpower)314.選擇產(chǎn)生可下載到FPGA器件去的位流文件Generate Programming File,于是在當(dāng)前工程路徑下生成了如adder.bit的位流文件5.然后選擇Configure Device(iMPACT),就可把位流文件下載到FPGA器件中,選擇run,F(xiàn)PGA器件里就有相應(yīng)的電路了,通過管腳約束文件中的相應(yīng)FPGA管腳,就可以對輸入端口寫入數(shù)據(jù),觀察輸出端口的信號了32FPGA的管腳約束文件*.ucf文件中:復(fù)位信號rst可用普通I/O接口來映射如(spartan ii 中用p163); 也可以用全局時鐘端口如(spartan ii 中用p182),一般普通I/O端口的延時比全局時鐘端口大,所以在規(guī)模比較大的設(shè)計中就要用全局時鐘端口。時鐘信號clk一般用全局時鐘端口(spartan ii 中用p80)。33 復(fù)位信號rst在用全局時鐘端口后,通常在用ISE map的時候會報

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論