FPGA設(shè)計(jì)基礎(chǔ)_第1頁
FPGA設(shè)計(jì)基礎(chǔ)_第2頁
FPGA設(shè)計(jì)基礎(chǔ)_第3頁
FPGA設(shè)計(jì)基礎(chǔ)_第4頁
FPGA設(shè)計(jì)基礎(chǔ)_第5頁
已閱讀5頁,還剩82頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、顯示器件驅(qū)動技術(shù)顯示器件驅(qū)動技術(shù)FPGA實(shí)驗(yàn)板課程安排第1章:A/D與D/A第2章:FPGA設(shè)計(jì)基礎(chǔ)(Quartus II軟件介紹)第3章:Verilog HDL語言介紹第4章:基于FPGA的數(shù)碼管顯示第5章:基于FPGA的液晶顯示第6章:基于FPGA的大LED點(diǎn)陣第7章:基于FPGA的VGA顯示提 要q1.可編程邏輯器件概述q2.可編程邏輯器件的結(jié)構(gòu)及原理q3. FPGA特點(diǎn)q4. FPGA設(shè)計(jì)語言q5. FPGA設(shè)計(jì)流程q6. FPGA廠商及開發(fā)環(huán)境q7. Quartus II開發(fā)軟件使用內(nèi)容提要:內(nèi)容提要:1 可編程邏輯器件概述 可編程邏輯器件(Programmable Logic De

2、vice簡稱 PLD)是20世紀(jì)70年代發(fā)展起來的一種新型邏輯器件,是目前數(shù)字系統(tǒng)設(shè)計(jì)的主要硬件基礎(chǔ)。 現(xiàn)場可編程邏輯陣列 FPLA(Field Programmable Logic Array) 可編程陣列邏輯 PAL(Programmable Array Logic) 通用陣列邏輯 GAL(Generic Array Logic) 可擦除的可編程邏輯器件EPLD(Erasable Programmable Logic Device) 復(fù)雜可編程邏輯器件CPLD(Complex Programmable Logic Device) 現(xiàn)場可編程門陣列 FPGA(Field Programmab

3、le Gate Array)1 可編程邏輯器件概述 分類(1) 熔絲或反熔絲編程器件Actel的FPGA器件體積小,集成度高,速度高,易加密,抗干擾,耐高溫只能一次編程,在設(shè)計(jì)初期階段不靈活 SRAM大多數(shù)公司的FPGA器件可反復(fù)編程,實(shí)現(xiàn)系統(tǒng)功能的動態(tài)重構(gòu)每次上電需重新下載,實(shí)際應(yīng)用時(shí)需外掛EEPROM用于保存程序 EEPROM大多數(shù)CPLD器件可反復(fù)編程不用每次上電重新下載,但相對速度慢,功耗較大1 可編程邏輯器件概述 分類(2) 低密度PROM,EPROM,EEPROM,PAL,PLA,GAL只能完成較小規(guī)模的邏輯電路 高密度,已經(jīng)有超過400萬門的器件EPLD ,CPLD,FPGA可用

4、于設(shè)計(jì)大規(guī)模的數(shù)字系統(tǒng)集成度高,甚至可以做到SOC(System On a Chip)CPLDCPLD與與FPGAFPGA的區(qū)別的區(qū)別CPLDFPGA內(nèi)部結(jié)構(gòu) ProducttermLookup Table程序存儲 內(nèi)部EEPROMSRAM,外掛EEPROM資源類型 組合電路資源豐富觸發(fā)器資源豐富集成度低高使用場合 完成控制邏輯能完成比較復(fù)雜的算法速度慢快其他資源EAB,鎖相環(huán)保密性可加密一般不能保密2 可編程邏輯器件結(jié)構(gòu)原理2 可編程邏輯器件結(jié)構(gòu)原理2 可編程邏輯器件結(jié)構(gòu)原理乘積項(xiàng)與門2 可編程邏輯器件結(jié)構(gòu)原理2 可編程邏輯器件結(jié)構(gòu)原理PROM結(jié)構(gòu)結(jié)構(gòu) 與陣列固定,或陣列可編程; 實(shí)現(xiàn)以“積

5、之和”形式表示的各種組合邏輯編程編程連接點(diǎn)連接點(diǎn)固定固定連接點(diǎn)連接點(diǎn)2 可編程邏輯器件結(jié)構(gòu)原理PLA結(jié)構(gòu)結(jié)構(gòu)與陣列或陣列均可編程;PLA的內(nèi)部結(jié)構(gòu)在簡單PLD中有最高的靈活性2 可編程邏輯器件結(jié)構(gòu)原理PAL結(jié)構(gòu)結(jié)構(gòu)與陣列可編程,或陣列固定;與陣列可編程使輸入項(xiàng)增多,或陣列固定使器件簡化?;蜿嚵泄潭黠@影響了器件編程的靈活性2 可編程邏輯器件結(jié)構(gòu)原理GAL結(jié)構(gòu)結(jié)構(gòu)用可編程的輸出邏輯宏單元(OLMC)代替固定的或陣列,可以實(shí)現(xiàn)時(shí)序電路;OLMC2 可編程邏輯器件結(jié)構(gòu)原理GAL結(jié)構(gòu)結(jié)構(gòu)(OLMC)輸出使能選擇輸出選擇或門控制選擇組成:異或門:控制輸出信號的極性D觸發(fā)器:適合設(shè)計(jì)時(shí)序電路4個(gè)多路選擇器

6、2 可編程邏輯器件結(jié)構(gòu)原理CPLDFPGA的結(jié)構(gòu)的結(jié)構(gòu)基于乘積項(xiàng):基于乘積項(xiàng): Altera的MAX7000,MAX3000系列, Xilinx的XC9500系列 Lattice,Cypress的大部分產(chǎn)品基于查找表:基于查找表:Altera的FLEX, ACEX, APEX 系列, Xilinx的Spartan,Virtex系列。 可編程邏輯陣列模塊LAB,包含多個(gè)宏單元可編程I/O單元可編程連線PIA基于乘積項(xiàng)的CPLD內(nèi)部結(jié)構(gòu)LAB中的宏單元結(jié)構(gòu)乘積項(xiàng)邏輯陣列乘積項(xiàng)選擇矩陣可編程觸發(fā)器基于查找表的FPGA內(nèi)部結(jié)構(gòu)C C 可編程邏輯模塊(CLB),含多個(gè)邏輯單元 可編程輸入輸出模塊(IOB

7、) 可編程內(nèi)部連線(PIC)基于查找表(基于查找表(LUT)LUT)的的FPGAFPGA的結(jié)構(gòu)的結(jié)構(gòu)xilinxxilinx Spartan-II Spartan-II的內(nèi)部結(jié)構(gòu)的內(nèi)部結(jié)構(gòu)CLB中邏輯單元內(nèi)部結(jié)構(gòu)查找表LUT原理3 FPGA特點(diǎn) 邏輯器件:用來實(shí)現(xiàn)某種特定邏輯功能的電子器件,最簡單的邏輯器件是與、或、非門(74LS00,74LS04等),在此基礎(chǔ)上可實(shí)現(xiàn)復(fù)雜的時(shí)序和組合邏輯功能。 可編程邏輯器件:器件的功能不是固定不變的,而是可根據(jù)用戶的需要而進(jìn)行改變,即由編程的方法來確定器件的邏輯功能。 配置數(shù)據(jù)可以存放在片外的EPROM或其它存儲體上,可現(xiàn)場修改器件的邏輯功能。 電路集成度

8、高 用硬件描述語言(Hardware Description Language)代替?zhèn)鹘y(tǒng)的數(shù)字電路設(shè)計(jì)方法來設(shè)計(jì)數(shù)字系統(tǒng)。3 FPGA特點(diǎn)EP1C12Q2404 FPGA設(shè)計(jì)語言l HDL語言是一種硬件描述語言,最終目的是生成實(shí)際數(shù)字邏輯電路,完成一個(gè)從抽象化的代碼到形象化的電路的轉(zhuǎn)變。 電路設(shè)計(jì)大規(guī)模和高復(fù)雜度發(fā)展的趨勢,傳統(tǒng)的用原理圖設(shè)計(jì)電路的方法無法勝任,如何使如此復(fù)雜的芯片變得易于人腦的理解呢?用一種高級語言來表達(dá)其功能性而隱藏具體實(shí)現(xiàn)的細(xì)節(jié)是很必要的,工程人員將不得不使用HDL語言進(jìn)行設(shè)計(jì),而把具體實(shí)現(xiàn)留給邏輯綜合工具去完成。l Verilog HDLl VHDL硬件描述語言HDL(

9、Hardware Description Language)4 FPGA設(shè)計(jì)語言HDL語言特點(diǎn)l HDL語言既包含一些高層程序設(shè)計(jì)語言的結(jié)構(gòu)形式同時(shí)也兼顧描述硬件線路連接的具體結(jié)構(gòu);l 通過使用結(jié)構(gòu)級或行為級描述可以在不同的抽象層次描述設(shè)計(jì)。 語言采用自頂向下的數(shù)字電路設(shè)計(jì)方法,主要包括三個(gè)領(lǐng)域五個(gè)抽象層次如表所示4 FPGA設(shè)計(jì)語言HDL語言特點(diǎn)l HDL語言是并發(fā)的,即具有在同一時(shí)刻執(zhí)行多任務(wù)的能力。一般編程語言是非并行的但在實(shí)際硬件中許多操作都是在同一時(shí)刻發(fā)生的,所以HDL語言具有并發(fā)的特征;l HDL語言有時(shí)序的概念,一般編程語言是沒有時(shí)序概念的,但在硬件電路中從輸入到輸出總是有延遲存

10、在的,為描述這些特征,HDL語言需要建立時(shí)序的概念。因此,使用HDL除了可以描述硬件電路的功能外還可以描述其時(shí)序要求;4 FPGA設(shè)計(jì)語言l由于Verilog HDL早在1983年就已推出至今已有十三年的歷史,因而擁有廣泛的設(shè)計(jì)群體,成熟的資源比VHDL豐富。l 目前版本的Verilog HDL和VHDL在行為級抽象建模的覆蓋范圍方面也有所不同,一般認(rèn)為VHDL在系統(tǒng)抽象方面比Verilog HDL強(qiáng)一些,Verilog HDL較為適合算法級、寄存器傳輸級、邏輯級、門級等的設(shè)計(jì),而VHDL更為適合大型的系統(tǒng)級設(shè)計(jì)。Verilog HDL與VHDL比較用兩種語言設(shè)計(jì)同一個(gè)計(jì)數(shù)器4 FPGA設(shè)計(jì)語

11、言VHDLlibrary ieee;use ieee.std_logic_1164.alluse ieee.std_logic_unsigned.allentity counter isport ( clk,clr: in std_logic;qout: in std_logic_vector(3 downto 0);architecture a of counter is signal qout_temp:std_logic_vector(3 downto 0);beginqout=qout_temp;process(clk)beginif clr=1 then qout_temp=“000

12、0”;else qout_temp= qout_temp+“0001”;end ifend process;end a; 4 FPGA設(shè)計(jì)語言Verilog HDLmodule counter (clk,clr,qout);input clk, clr;output 3:0qout;reg3:0qout;always (posedgeclk)if (clr)qout=0;elseqout=qout+1;endmodule4 FPGA設(shè)計(jì)語言頂層模塊子模塊A子模塊B子模塊C模塊化的邏輯電路I/O/狀態(tài)圖狀態(tài)圖5 FPGA設(shè)計(jì)的一般流程實(shí)現(xiàn)實(shí)現(xiàn)5.1 5.1 設(shè)計(jì)準(zhǔn)備設(shè)計(jì)準(zhǔn)備 方案論證,器件選擇根

13、據(jù)系統(tǒng)的功能和復(fù)雜度,對工作速度和器件本身的資源、成本及連線的可布性等方面進(jìn)行權(quán)衡,選擇合適的設(shè)計(jì)方案和合適的器件類型。5.2 5.2 設(shè)計(jì)輸入設(shè)計(jì)輸入 原理圖輸入 HDL(硬件描述語言)輸入 狀態(tài)圖輸入 波形輸入5.2.1 原理圖輸入方式 原理圖輸入方式是一種最直接的設(shè)計(jì)描述方式,要設(shè)計(jì)什么,就從軟件系統(tǒng)提供的元件庫中調(diào)出來,畫出原理圖。優(yōu)點(diǎn)是容易實(shí)現(xiàn)仿真,便于信號的觀察和電路的調(diào)整;缺點(diǎn)是效率低,特別是產(chǎn)品有所改動,需要選用另外一個(gè)公司的PLD器件時(shí),就需要重新輸入原理圖5.2.2 HDL輸入方式 硬件描述語言是用文本方式描述設(shè)計(jì)(普通硬件描述語言和行為描述語言)。 普通硬件描述語言有AB

14、EL、CUR和LFM等,它們支持邏輯方程、真值表、狀態(tài)機(jī)等邏輯表達(dá)方式,主要用于簡單PLD的設(shè)計(jì)輸入。 行為描述語言是目前常用的高層硬件描述語言,主要有VHDL和 Verilog HDL兩個(gè)IEEE標(biāo)準(zhǔn)。語言與工藝的無關(guān)性,可以使設(shè)計(jì)人員在系統(tǒng)設(shè)計(jì)、邏輯驗(yàn)證階段便確立方案的可行性;語言的公開可利用性,便于實(shí)現(xiàn)大規(guī)模系統(tǒng)的設(shè)計(jì);具有很強(qiáng)的邏輯描述和仿真功能,而且輸入效率高,在不同的設(shè)計(jì)輸入庫之間的轉(zhuǎn)換非常方便,用不著對底層的電路和PLD結(jié)構(gòu)的熟悉。 5.2.3 波形輸入方式 波形輸入方式主要是用來建立和編輯波形設(shè)計(jì)文件,用于輸入仿真向量和功能測試向量。 波形設(shè)計(jì)輸入適用于時(shí)序邏輯和有重復(fù)性的邏輯

15、函數(shù)。5.3 5.3 功能仿真功能仿真 驗(yàn)證邏輯功能的正確性,不加入任何硬延時(shí)信息。 仿真前,要先利用波形編輯器和硬件描述語言等建立波形文件和測試向量 仿真結(jié)果將會生成報(bào)告文件和輸出信號波形,從中便可以觀察到各個(gè)節(jié)點(diǎn)的信號變化。如果發(fā)現(xiàn)錯誤,則返回設(shè)計(jì)輸入中修改邏輯設(shè)計(jì)。功能仿真:驗(yàn)證邏輯功能的正確性,不加入任何硬件延時(shí)等信息。測試波形被測電路檢查輸出輸入信號輸出波形5.4 5.4 設(shè)計(jì)實(shí)現(xiàn)設(shè)計(jì)實(shí)現(xiàn) 設(shè)計(jì)處理是器件設(shè)計(jì)中的核心環(huán)節(jié)。在設(shè)計(jì)處理過程中,編譯軟件將對設(shè)計(jì)輸入文件進(jìn)行規(guī)則檢查、邏輯優(yōu)化綜合、適配和分割(映射)、布局布線等,最后產(chǎn)生編程用的編程文件。 5.4.1 邏輯優(yōu)化和綜合 化簡所

16、有的邏輯方程或用戶自建的宏,使設(shè)計(jì)所占用的資源最少。綜合的目的是將多個(gè)模塊化設(shè)計(jì)文件合并為一個(gè)網(wǎng)表文件,并使層次設(shè)計(jì)平面化。 綜合:將抽象的HDL代碼轉(zhuǎn)換成具體的邏輯電路原理圖。With sel selectDin =A when 1, B when others;process (clk ,rst) begin if rst=0 then D_out = 0; else D_out Simulator ToolTools-Simulator Tool選擇仿真類型選擇仿真類型(Functional),(Functional),并創(chuàng)建功并創(chuàng)建功能仿真網(wǎng)表能仿真網(wǎng)表( (點(diǎn)擊綠色薦頭所指按鈕點(diǎn)擊綠色薦頭所指按鈕) )此處應(yīng)為剛才保此處應(yīng)為剛才保存的波形文件存的波形文件功能仿真功能仿真網(wǎng)表創(chuàng)建完后點(diǎn)擊網(wǎng)表創(chuàng)建完后點(diǎn)擊StartStart運(yùn)行運(yùn)行, ,運(yùn)運(yùn)行完成后關(guān)閉此窗口行完成后關(guān)閉此窗口. .功能仿真功能仿真點(diǎn)擊此處點(diǎn)擊此處, ,開始仿真開始仿真功能仿真功能仿真運(yùn)行結(jié)束后會彈出功能仿真的波形報(bào)運(yùn)行結(jié)束后會彈出功能仿真的波形報(bào)告告, ,觀察仿真波形

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論