數(shù)字圖像處理課件 第7章 FPGA設(shè)計(jì)基礎(chǔ)學(xué)習(xí)資料_第1頁
數(shù)字圖像處理課件 第7章 FPGA設(shè)計(jì)基礎(chǔ)學(xué)習(xí)資料_第2頁
數(shù)字圖像處理課件 第7章 FPGA設(shè)計(jì)基礎(chǔ)學(xué)習(xí)資料_第3頁
數(shù)字圖像處理課件 第7章 FPGA設(shè)計(jì)基礎(chǔ)學(xué)習(xí)資料_第4頁
數(shù)字圖像處理課件 第7章 FPGA設(shè)計(jì)基礎(chǔ)學(xué)習(xí)資料_第5頁
已閱讀5頁,還剩54頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

FPGA設(shè)計(jì)基礎(chǔ)FPGA基本概念FPGA的發(fā)展和動(dòng)向FPGA的應(yīng)用領(lǐng)域FPGA工藝結(jié)構(gòu)FPGA芯片廠家與代表產(chǎn)品硬件描述語言VerilogHDLFPGA編程與仿真FPGA調(diào)試FPGA在圖像處理中的應(yīng)用7.1FPGA基本概念FPGA(Field-ProgrammableGateArray),即現(xiàn)場(chǎng)可編程門陣列,它是在PAL、GAL、CPLD等可編程器件的基礎(chǔ)上進(jìn)一步發(fā)展的產(chǎn)物。它是作為專用集成電路(ASIC)領(lǐng)域中的一種半定制電路而出現(xiàn)的,既解決了定制電路的不足,又克服了原有可編程器件門電路數(shù)有限的缺點(diǎn)。7.1FPGA基本概念FPGA采用了邏輯單元陣列LCA(LogicCellArray)這樣一個(gè)概念,內(nèi)部包括可配置邏輯模塊CLB(ConfigurableLogicBlock)、輸出輸入模塊IOB(InputOutputBlock)和內(nèi)部連線(Interconnect)三個(gè)部分。現(xiàn)場(chǎng)可編程門陣列(FPGA)是可編程器件。7.1FPGA基本概念與傳統(tǒng)邏輯電路和門陣列(如PAL,GAL及CPLD器件)相比,F(xiàn)PGA具有不同的結(jié)構(gòu),F(xiàn)PGA利用小型查找表(16×1RAM)來實(shí)現(xiàn)組合邏輯,每個(gè)查找表連接到一個(gè)D觸發(fā)器的輸入端,觸發(fā)器再來驅(qū)動(dòng)其他邏輯電路或驅(qū)動(dòng)I/O,由此構(gòu)成了即可實(shí)現(xiàn)組合邏輯功能又可實(shí)現(xiàn)時(shí)序邏輯功能的基本邏輯單元模塊,這些模塊間利用金屬連線互相連接或連接到I/O模塊。7.1FPGA基本概念FPGA的邏輯是通過向內(nèi)部靜態(tài)存儲(chǔ)單元加載編程數(shù)據(jù)來實(shí)現(xiàn)的,存儲(chǔ)在存儲(chǔ)器單元中的值決定了邏輯單元的邏輯功能以及各模塊之間或模塊與I/O間的聯(lián)接方式,并最終決定了FPGA所能實(shí)現(xiàn)的功能,F(xiàn)PGA允許無限次的編程。CPLD內(nèi)部結(jié)構(gòu)CPLD實(shí)現(xiàn)邏輯功能原理f=(A+B)*C*(!D)=A*C*!D+B*C*!D

FPGA查找表FPGA邏輯單元7.1FPGA基本概念可以毫不夸張的講,F(xiàn)PGA能完成任何數(shù)字器件的功能,上至高性能CPU,下至簡(jiǎn)單的74電路,都可以用FPGA來實(shí)現(xiàn)。FPGA如同一張白紙或是一堆積木,工程師可以通過傳統(tǒng)的原理圖輸入法,或是硬件描述語言自由的設(shè)計(jì)一個(gè)數(shù)字系統(tǒng)。通過軟件仿真,我們可以事先驗(yàn)證設(shè)計(jì)的正確性。7.1FPGA基本概念在PCB完成以后,還可以利用FPGA/CPLD的在線修改能力,隨時(shí)修改設(shè)計(jì)而不必改動(dòng)硬件電路。使用FPGA來開發(fā)數(shù)字電路,可以大大縮短設(shè)計(jì)時(shí)間,減少PCB面積,提高系統(tǒng)的可靠性。FPGA還可以做數(shù)字IC設(shè)計(jì)的前端驗(yàn)證,用這種方式可以很大程度上降低IC設(shè)計(jì)的成本。FPGA的這些優(yōu)點(diǎn)使得FPGA技術(shù)在90年代以后得到飛速的發(fā)展,同時(shí)也大大推動(dòng)了EDA軟件和硬件描述語言(HDL)的進(jìn)步。7.2FPGA的發(fā)展和動(dòng)向FPGA分為不同的應(yīng)用,向著以下幾個(gè)方向發(fā)展:更高的密度和速度(千萬門以上,速度600MHz以上);更高的傳輸速度(10Gbps以上);更低的功耗、更低的成本(面向低成本應(yīng)用);集成硬核處理器(雙核ARMCortexA9,800M主頻)。7.3FPGA的應(yīng)用領(lǐng)域FPGA技術(shù)發(fā)展迅速,正在逐漸融合CPU和DSP的功能;FPGA已經(jīng)廣泛應(yīng)用在如無線基站、千兆網(wǎng)絡(luò)路由器、智能手機(jī)、便攜式產(chǎn)品、高端武器、視頻處理、航空航天等方方面面。FPGA有逐步取代CPU和DSP的趨勢(shì)。7.4FPGA工藝結(jié)構(gòu)基于FLASH工藝(Actel)基于PROM工藝(用于航天,Actel)基于SRAM工藝(最普遍,Xilinx、Altera等)7.5FPGA芯片廠家與代表產(chǎn)品三大FPGA廠商及代表產(chǎn)品Xilinx:高端:Virtex系列中低端:Spartan系列Altera:高端:Stratix系列中端:ArriaGX系列低端:Cyclone系列Actel:低功耗:IGLOO系列混合信號(hào):SmartFusion耐輻射:RTAX系列7.5FPGA芯片廠家與代表產(chǎn)品其他FPGA廠商:LatticeatmelFPGA開發(fā)流程7.6硬件描述語言VerilogHDLHDL簡(jiǎn)介設(shè)計(jì)舉例術(shù)語定義(termsanddefinitions)硬件描述語言HDL:描述電路硬件及時(shí)序的一種編程語言仿真器:讀入HDL并進(jìn)行解釋及執(zhí)行的一種軟件抽象級(jí):描述風(fēng)格的詳細(xì)程度,如行為級(jí)和門級(jí)ASIC:專用集成電路(ApplicationSpecificIntegratedCircuit)ASICVender:芯片制造商,開發(fā)并提供單元庫自下而上的設(shè)計(jì)流程:一種先構(gòu)建底層單元,然后由底層單元構(gòu)造更大的系統(tǒng)的設(shè)計(jì)方法。自頂向下的設(shè)計(jì)流程:一種設(shè)計(jì)方法,先用高抽象級(jí)構(gòu)造系統(tǒng),然后再設(shè)計(jì)下層單元RTL級(jí):寄存器傳輸級(jí)(RegisterTransferLevel),用于設(shè)計(jì)的可綜合的一種抽象級(jí)Tcl:ToolcommandLanguage,向交互程序輸入命令的描述語言什么是硬件描述語言HDL具有特殊結(jié)構(gòu)能夠?qū)τ布壿嬰娐返墓δ苓M(jìn)行描述的一種高級(jí)編程語言這種特殊結(jié)構(gòu)能夠:描述電路的連接描述電路的功能在不同抽象級(jí)上描述電路描述電路的時(shí)序表達(dá)具有并行性HDL主要有兩種:Verilog和VHDLVerilog起源于C語言,因此非常類似于C語言,容易掌握VHDL起源于ADA語言,格式嚴(yán)謹(jǐn),不易學(xué)習(xí)。VHDL出現(xiàn)較晚,但標(biāo)準(zhǔn)化早。IEEE1706-1985標(biāo)準(zhǔn)。為什么使用HDL使用HDL描述設(shè)計(jì)具有下列優(yōu)點(diǎn):設(shè)計(jì)在高層次進(jìn)行,與具體實(shí)現(xiàn)無關(guān)設(shè)計(jì)開發(fā)更加容易早在設(shè)計(jì)期間就能發(fā)現(xiàn)問題能夠自動(dòng)的將高級(jí)描述映射到具體工藝實(shí)現(xiàn)在具體實(shí)現(xiàn)時(shí)才做出某些決定HDL具有更大的靈活性可重用可以選擇工具及生產(chǎn)廠HDL能夠利用先進(jìn)的軟件更快的輸入易于管理Verilog的歷史VerilogHDL是在1983年由GDA(GateWayDesignAutomation)公司的PhilMoorby所創(chuàng)。PhiMoorby后來成為Verilog-XL的主要設(shè)計(jì)者和Cadence公司的第一個(gè)合伙人。在1984~1985年間,Moorby設(shè)計(jì)出了第一個(gè)Verilog-XL的仿真器。1986年,Moorby提出了用于快速門級(jí)仿真的XL算法。1990年,Cadence公司收購了GDA公司1991年,Cadence公司公開發(fā)表Verilog語言,成立了OVI(OpenVerilogInternational)組織來負(fù)責(zé)VerilogHDL語言的發(fā)展。1995年制定了VerilogHDL的IEEE標(biāo)準(zhǔn),即IEEE1364。Verilog的用途Verilog的主要應(yīng)用包括:ASIC和FPGA工程師編寫可綜合的RTL代碼高抽象級(jí)系統(tǒng)仿真進(jìn)行系統(tǒng)結(jié)構(gòu)開發(fā)測(cè)試工程師用于編寫各種層次的測(cè)試程序用于ASIC和FPGA單元或更高層次的模塊的模型開發(fā)抽象級(jí)(LevelsofAbstraction)Verilog既是一種行為描述的語言也是一種結(jié)構(gòu)描述語言。Verilog模型可以是實(shí)際電路的不同級(jí)別的抽象。這些抽象的級(jí)別包括:系統(tǒng)說明-設(shè)計(jì)文檔/算法描述RTL/功能級(jí)-Verilog門級(jí)/結(jié)構(gòu)級(jí)-Verilog版圖/物理級(jí)-幾何圖形行為綜合綜合前仿真邏輯綜合綜合后仿真版圖抽象級(jí)(LevelsofAbstraction)在抽象級(jí)上需要進(jìn)行折衷系統(tǒng)說明-設(shè)計(jì)文檔/算術(shù)描述RTL/功能級(jí)-Verilog門級(jí)/結(jié)構(gòu)級(jí)-Verilog版圖/物理級(jí)-幾何圖形詳細(xì)程度低高輸入/仿真速度高低抽象級(jí)(LevelsofAbstraction)Verilog可以在三種抽象級(jí)上進(jìn)行描述行為級(jí)用功能塊之間的數(shù)據(jù)流對(duì)系統(tǒng)進(jìn)行描述在需要時(shí)在函數(shù)塊之間進(jìn)行調(diào)度賦值。RTL級(jí)/功能級(jí)用功能塊內(nèi)部或功能塊之間的數(shù)據(jù)流和控制信號(hào)描述系統(tǒng)基于一個(gè)已定義的時(shí)鐘的周期來定義系統(tǒng)模型結(jié)構(gòu)級(jí)/門級(jí)用基本單元(primitive)或低層元件(component)的連接來描述系統(tǒng)以得到更高的精確性,特別是時(shí)序方面。在綜合時(shí)用特定工藝和低層元件將RTL描述映射到門級(jí)網(wǎng)表抽象級(jí)(LevelsofAbstraction)設(shè)計(jì)工程師在不同的設(shè)計(jì)階段采用不同的抽象級(jí)首先在行為級(jí)描述各功能塊,以降低描述難度,提高仿真速度。在綜合前將各功能模塊進(jìn)行RTL級(jí)描述。用于綜合的庫中的大多數(shù)單元采用結(jié)構(gòu)級(jí)描述。在本教程中的結(jié)構(gòu)級(jí)描述部分將對(duì)結(jié)構(gòu)級(jí)(門級(jí))描述進(jìn)行更詳細(xì)的說明。Verilog還有一定的晶體管級(jí)描述能力及算法級(jí)描述能力行為級(jí)和RTL級(jí)MUX的行為可以描述為:只要信號(hào)a或b或sel發(fā)生變化,如果sel為0則選擇a輸出;否則選擇b輸出。modulemuxtwo(out,a,b,sel);inputa,b,sel;outputout;regout;always@(seloraorb)if(!sel)out=a;elseout=b;endmodule這個(gè)行為級(jí)RTL描述不處理X和Z狀態(tài)輸入,并且沒有延時(shí)。在行為級(jí)模型中,邏輯功能描述采用高級(jí)語言結(jié)構(gòu),如@,while,wait,if,case。Testbench(testfixture)通常采用行為級(jí)描述。所有行為級(jí)結(jié)構(gòu)在testbench描述中都可以采用。RTL模型中數(shù)據(jù)流都是基于時(shí)鐘的。任何時(shí)鐘元件在時(shí)鐘沿處的行為都要精確描述。RTL級(jí)描述是行為級(jí)Verilog的子集。結(jié)構(gòu)級(jí)描述結(jié)構(gòu)級(jí)Verilog適合開發(fā)小規(guī)模元件,如ASIC和FPGA的單元Verilog內(nèi)部帶有描述基本邏輯功能的基本單元(primitive),如and門。用戶可以定義自己的基本單元UDP(UserDefinedPrivitives)綜合產(chǎn)生的結(jié)果網(wǎng)表通常是結(jié)構(gòu)級(jí)的。用戶可以用結(jié)構(gòu)級(jí)描述粘接(glue)邏輯。下面是MUX的結(jié)構(gòu)級(jí)描述,采用Verilog基本單元(門)描述。描述中含有傳輸延時(shí)。moduletwomux(out,a,b,sl);inputa,b,sl;outputout;notu1(nsl,sl);and#1u2(sela,a,nsl);and#1u3(selb,b,sl);or#2u4(out,sela,selb);endmodule綜合不支持!僅需一種語言Verilog的一個(gè)主要特點(diǎn)是可應(yīng)用于各種抽象級(jí)。建模時(shí)可采用門級(jí)和RTL級(jí)混合描述,在開發(fā)testfixture時(shí)可以采用行為級(jí)描述。語言的主要特點(diǎn)module(模塊)module能夠表示:物理塊,如IC或ASIC單元邏輯塊,如一個(gè)CPU設(shè)計(jì)的ALU部分整個(gè)系統(tǒng)每一個(gè)模塊的描述從關(guān)鍵詞module開始,有一個(gè)名稱(如SN74LS74,DFF,ALU等等),由關(guān)鍵詞endmodule結(jié)束。module是層次化設(shè)計(jì)的基本構(gòu)件邏輯描述放在module內(nèi)部語言的主要特點(diǎn)—模塊端口(moduleports)端口在模塊名字后的括號(hào)中列出端口可以說明為input,output及inout端口等價(jià)于硬件的引腳(pin)注意模塊的名稱DFF,端口列表及說明模塊通過端口與外部通信語言的主要特點(diǎn)模塊實(shí)例化(moduleinstances)moduleDFF(d,clk,clr,q,qb);....endmodulemoduleREG4(d,clk,clr,q,qb);output[3:0]q,qb;input[3:0]d;inputclk,clr;DFFd0(d[0],clk,clr,q[0],qb[0]);DFFd1(d[1],clk,clr,q[1],qb[1]);DFFd2(d[2],clk,clr,q[2],qb[2]);DFFd3(d[3],clk,clr,q[3],qb[3]);endmodule語言的主要特點(diǎn)可以將模塊的實(shí)例通過端口連接起來構(gòu)成一個(gè)大的系統(tǒng)或元件。在上面的例子中,REG4有模塊DFF的四個(gè)實(shí)例。注意,每個(gè)實(shí)例都有自己的名字(d0,d1,d2,d3)。實(shí)例名是每個(gè)對(duì)象唯一的標(biāo)記,通過這個(gè)標(biāo)記可以查看每個(gè)實(shí)例的內(nèi)部。實(shí)例中端口的次序與模塊定義的次序相同。模塊實(shí)例化與調(diào)用程序不同。每個(gè)實(shí)例都是模塊的一個(gè)完全的拷貝,相互獨(dú)立、并行。模塊實(shí)例化(moduleinstances)一個(gè)完整的簡(jiǎn)單例子testfixture被測(cè)試器件DUT是一個(gè)二選一多路器。測(cè)試裝置(testfixture)提供測(cè)試激勵(lì)及驗(yàn)證機(jī)制。Testfixture使用行為級(jí)描述,DUT采用門級(jí)描述。下面將給出Testfixture的描述、DUT的描述及如何進(jìn)行混合仿真。DUT被測(cè)器件(deviceundertest)moduleMUX2_1(out,a,b,sel);//Portdeclarationsoutputout;inputa,b,sel;wireout,a,b,sel;wiresel_,a1,b1;//Thenetlistnot(sel_,sel);and(a1,a,sel_);and(b1,b,sel);or(out,a1,b1);endmodule注釋行已定義的Verilog基本單元的實(shí)例a,b,sel是輸入端口,out是輸出端口。所有信號(hào)通過這些端口從模塊輸入/輸出。另一個(gè)模塊可以通過模塊名及端口說明使用多路器。實(shí)例化多路器時(shí)不需要知道其實(shí)現(xiàn)細(xì)節(jié)。這正是自上而下設(shè)計(jì)方法的一個(gè)重要特點(diǎn)。模塊的實(shí)現(xiàn)可以是行為級(jí)也可以是門級(jí),但并不影響高層次模塊對(duì)它的使用。多路器由關(guān)鍵詞module和endmodule開始及結(jié)束。TestFixturetemplatemoduletestfixture;//Datatypedeclaration//Instantiatemodules//Applystimulus//Displayresultsendmodule為什么沒有端口?由于testfixture是最頂層模塊,不會(huì)被其它模塊實(shí)例化。因此不需要有端口。TestFixture—如何說明實(shí)例moduletestfixture;//Datatypedeclaration//InstantiatemodulesMUX2_1mux(out,a,b,sel);//Applystimulus//Displayresultsendmodule多路器實(shí)例化語句MUX的實(shí)例化語句包括:模塊名字:與引用模塊相同實(shí)例名字:任意,但要符合標(biāo)記命名規(guī)則端口列表:與引用模塊的次序相同TestFixture—過程(proceduralblock)所有過程在時(shí)間0執(zhí)行一次過程之間是并行執(zhí)行的

過程語句有兩種:

initial

:只執(zhí)行一次

always

:循環(huán)執(zhí)行TestFixture—過程(proceduralblock)通常采用過程語句進(jìn)行行為級(jí)描述。testfixture的激勵(lì)信號(hào)在一個(gè)過程語句中描述。過程語句的活動(dòng)與執(zhí)行是有差別的所有過程在時(shí)間0處于活動(dòng)狀態(tài),并根據(jù)用戶定義的條件等待執(zhí)行;所有過程并行執(zhí)行,以描述硬件內(nèi)在的并行性;Testfixture激勵(lì)描述moduletestfixture;//Datatypedeclarationrega,b,sel;wireout;//MUXinstanceMUX2_1mux(out,a,b,sel);//Applystimulusinitialbegina=0;b=1;sel=0;#5b=0;#5b=1;sel=1;#5a=1;#5$finish;end//DisplayresultsendmoduleTimeValues absel0 01050001001115111例子中,a,b,sel說明為reg類數(shù)據(jù)。reg類數(shù)據(jù)是寄存器類數(shù)據(jù)信號(hào),在重新賦值前一直保持當(dāng)前數(shù)據(jù)。#5用于指示等待5個(gè)時(shí)間單位。$finish是結(jié)束仿真的系統(tǒng)任務(wù)。TestFixture響應(yīng)產(chǎn)生$time系統(tǒng)函數(shù),給出當(dāng)前仿真時(shí)間$monitor

系統(tǒng)任務(wù),若參數(shù)列表中的參數(shù)值發(fā)生變化,則在時(shí)間單位末顯示參數(shù)值。

$monitor([“format_specifiers”,]<arguments>);例如:

$monitor($time,o,in1,in2);$monitor($time,,out,,a,,b,,sel);$monitor($time,“%b%h%d%o”,sig1,sig2,sig3,sig4);Verilog提供了一些系統(tǒng)任務(wù)和系統(tǒng)函數(shù),包括:注意不能有空格TestFixture響應(yīng)產(chǎn)生$time是一個(gè)系統(tǒng)函數(shù),返回當(dāng)前返回仿真時(shí)間。時(shí)間用64位整數(shù)表示。$monitor在時(shí)間單位末,若參數(shù)列表中的參數(shù)值發(fā)生變化則顯示所列參數(shù)的值。由$time引起的變化不會(huì)顯示。$monitor系統(tǒng)任務(wù)支持不同的數(shù)基。缺省數(shù)基是十進(jìn)制。支持的數(shù)基還有二進(jìn)制、八進(jìn)制、十進(jìn)制。完整的TestFixturemoduletestfixture;//Datatypedeclarationrega,b,sel;wireout;//MUXinstanceMUX2_1mux(out,a,b,sel);//Applystimulusinitialbegina=0;b=1;sel=0;#5b=0;#5b=1;sel=1;#5a=1;#5$finish;end//Displayresultsinitial$monitor($time,,"out=%ba=%bb=%bsel=%b",out,a,b,sel);endmodule0out=0a=0b=1sel=05out=0a=0b=0sel=010out=1a=0b=1sel=115out=1a=1b=1sel=1結(jié)果輸出時(shí)間單位末的概念`timescale1ns/1ns

moduletestfixture;//Datatypedeclarationrega,b,sel;wireout;//MUXinstanceMUX2_1mux(out,a,b,sel);//Applystimulusinitialbegina=0;b

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論