




已閱讀5頁(yè),還剩19頁(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)介
信息論基礎(chǔ)實(shí)驗(yàn)報(bào)告FPGA實(shí)驗(yàn)報(bào)告 學(xué)院 電子信息工程學(xué)院 專業(yè) 通信工程 姓名 李聰 學(xué)號(hào) 11211060 同組成員: 閆科 吳文文 韓富瑋 羅玉明 指導(dǎo)教師 張立軍 作者: 李聰 時(shí)間 2014年5月03日 目錄實(shí)驗(yàn)(一)認(rèn)識(shí)FPGA開(kāi)發(fā)板3一、實(shí)驗(yàn)?zāi)康?二、實(shí)驗(yàn)原理31.FPGA組成32.FPGA設(shè)計(jì)流程33實(shí)驗(yàn)思路:5三、實(shí)驗(yàn)步驟53.1新建ISE工程53.2添加源文件63.3代碼綜合83.4添加約束文件83.5布線93.6生成比特流并下載到FPGA上9四、實(shí)驗(yàn)拓展12設(shè)計(jì)思路:12源文件13約束文件14仿真文件14五、思考題15測(cè)試程序:15仿真波形17六、實(shí)驗(yàn)感想與收獲176.1、感想176.2、一些Verilog語(yǔ)句歸納:18七附錄:201.Kintex-7 FPGA 主要包括特性:202.FPGA主要原理213.FPGA的基本特點(diǎn):224.FPGA一些應(yīng)用22實(shí)驗(yàn)(一)認(rèn)識(shí)FPGA開(kāi)發(fā)板一、實(shí)驗(yàn)?zāi)康?、了解FPGA開(kāi)發(fā)流程2、了解Xilinx KC705 開(kāi)發(fā)平臺(tái)二、實(shí)驗(yàn)原理1.FPGA組成FPGA是Field Programmable Gate Array 的縮寫(xiě),即現(xiàn)場(chǎng)可編程門(mén)陣列,它是在CPLD的基礎(chǔ)上發(fā)展起來(lái)的新型高性能可編程邏輯器件,它一般采用SRAM工藝,也有一些專用器件采用Flash工藝或反熔絲(Anti-Fuse)工藝等。FPGA 的集成度很高,其器件密度從數(shù)萬(wàn)系統(tǒng)門(mén)到數(shù)千萬(wàn)系統(tǒng)門(mén)不等,可以完成極其復(fù)雜的時(shí)序與組合邏輯電路功能,適用于高速、高密度的高端數(shù)字邏輯電路設(shè)計(jì)領(lǐng)域。FPGA的基本組成部分有可編程輸入/輸出單元、基本可編程邏輯單元、嵌入式RAM、豐富的布線資源、底層嵌入功能單元、內(nèi)嵌專用硬核等。2.FPGA設(shè)計(jì)流程一般來(lái)說(shuō),完整的FPGA設(shè)計(jì)流程包括電路設(shè)計(jì)與輸入、功能仿真、綜合優(yōu)化、綜合后仿真、布局布線、布局布線后仿真、板級(jí)驗(yàn)證與加載配置調(diào)試等主要步驟,如圖1所示。(1) 電路設(shè)計(jì)與輸入。電路設(shè)計(jì)與輸入是指通過(guò)某些規(guī)范的描述方式,將工程師電路構(gòu)思輸入給EDA 工具。常用的設(shè)計(jì)輸入方法有硬件描述語(yǔ)言(HDL)和原理圖設(shè)計(jì)輸入方法等。HDL語(yǔ)言中,應(yīng)用最為廣泛的是VHDL和Verilog HDL。(2)功能仿真。電路設(shè)計(jì)完成后,要用專用的仿真工具對(duì)設(shè)計(jì)進(jìn)行功能仿真,驗(yàn)證電路功能是否符合設(shè)計(jì)要求。(3)綜合優(yōu)化。綜合優(yōu)化(Synthesize)是指將HDL 語(yǔ)言、原理圖等設(shè)計(jì)輸入翻譯成由與、或、非門(mén),RAM,觸發(fā)器等基本邏輯單元組成的邏輯連接(網(wǎng)表),并根據(jù)目標(biāo)與要求(約束條件)優(yōu)化所生成的網(wǎng)表,輸出edf和edn等標(biāo)準(zhǔn)格式的網(wǎng)表文件,供FPGA廠家的布局布線器進(jìn)行實(shí)現(xiàn)。(4)綜合后仿真。綜合完成后需要檢查綜合結(jié)果是否與原設(shè)計(jì)一致,做綜合后仿真。在仿真時(shí),把綜合生成的標(biāo)準(zhǔn)延時(shí)文件反標(biāo)到綜合仿真模型中去,可估計(jì)門(mén)延時(shí)帶來(lái)的影響。(5)實(shí)現(xiàn)與布局布線。綜合結(jié)果的本質(zhì)是一些與、或、非門(mén),觸發(fā)器,RAM 等基本邏輯單元組成的邏輯網(wǎng)表,它與芯片實(shí)際的配置情況有較大差距。此時(shí),應(yīng)該使用FPGA廠商提供的軟件工具,根據(jù)所選芯片型號(hào),將綜合輸出的邏輯網(wǎng)表適配到具體FPGA器件上,這個(gè)過(guò)程叫做實(shí)現(xiàn)過(guò)程。在實(shí)現(xiàn)過(guò)程中,最主要的過(guò)程就是布局布線。所謂布局(Place)是指將邏輯網(wǎng)表中的硬件原語(yǔ)或者底層單元合理地適配到FPGA內(nèi)部的固有硬件結(jié)構(gòu)上;所謂布線(Route)是指根據(jù)布局的拓?fù)浣Y(jié)構(gòu),利用FPGA內(nèi)部的各種連線資源,合理正確連接各個(gè)元件的過(guò)程。(6)時(shí)序仿真與驗(yàn)證。將布局布線的時(shí)延信息反標(biāo)到設(shè)計(jì)網(wǎng)表中,所進(jìn)行的仿真就叫時(shí)序仿真或布局布線后仿真,簡(jiǎn)稱后仿真。布局布線后仿真的主要目的在于發(fā)現(xiàn)時(shí)序違規(guī)(Timing Violation),即不滿足時(shí)序約束條件或者器件固有時(shí)序規(guī)則(建立時(shí)間、保持時(shí)間)的情況。(7)板級(jí)仿真與驗(yàn)證。在有些高速設(shè)計(jì)情況下還需要使用第三方的板極驗(yàn)證工具進(jìn)行仿真與驗(yàn)證。這些工具通過(guò)對(duì)設(shè)計(jì)的IBIS、HSPICE等模型的仿真,能較好地分析高速設(shè)計(jì)的信號(hào)完整性、電磁干擾(EMI)等電路特性等。(8)對(duì)器件下載調(diào)試。設(shè)計(jì)開(kāi)發(fā)的最后步驟是在線調(diào)試或者將生成的配置文件寫(xiě)入芯片中進(jìn)行測(cè)試。示波器和邏輯分析儀是邏輯設(shè)計(jì)的主要測(cè)試工具。以上任何仿真或者驗(yàn)證步驟出現(xiàn)問(wèn)題,就需要根據(jù)錯(cuò)誤的定位返回到相應(yīng)的步驟更改或者重新設(shè)計(jì)。本實(shí)驗(yàn)采用的是Xilinx公司的帶有Kintex-7 FPGA的KC705開(kāi)發(fā)平臺(tái)。Xilinx 的7 系列FPGA 包括Artix-7,Kintex-7 和Virtex-7 三個(gè)系列。具有超高端連接帶寬,邏輯容量和信號(hào)完整性,提供低成本,小型尺寸和大容量的要求嚴(yán)格的高性能應(yīng)用。其中,Kintex-7 FPGA具有較高的性價(jià)比,其組成的收發(fā)器從600Mbps到最高的6.6 Gbps,達(dá)到28.05Gbps。主要用在航空電子、LED背光的平板電視和3D TV、LTE基帶、手持超聲設(shè)備、多模式無(wú)線電、Prosumer數(shù)碼單反照相機(jī)和視頻IP網(wǎng)關(guān)。圖1FPGA開(kāi)發(fā)流程3實(shí)驗(yàn)思路:為了了解并掌握 FPGA 開(kāi)發(fā)流程,本實(shí)驗(yàn)在 KC705平臺(tái)設(shè)計(jì)設(shè)計(jì)一個(gè)分頻計(jì)數(shù)的實(shí)驗(yàn),用 FPGA 內(nèi)部邏輯控制 LED 燈的亮滅。KC705 平臺(tái)自帶的8個(gè)LED 燈原理圖如圖3所示,當(dāng) GPIO 輸入端為高電平時(shí),二極管導(dǎo)通,燈變亮。當(dāng)輸入端為低電平時(shí),二極管截止,燈變暗。本實(shí)驗(yàn)通過(guò)Verilog 代碼進(jìn)行計(jì)數(shù)分頻,控制GPIO_LED_0的周期性變化。在Verilog 代碼設(shè)計(jì)中,把分頻輸出信號(hào)與GPIO_LED_0管腳相連,大家就可以感受到分頻產(chǎn)生的效果了。在代碼里,使用的200M的差分時(shí)鐘,一個(gè)周期是5ns,在代碼里24位計(jì)數(shù)器cnt進(jìn)行循環(huán)計(jì)數(shù),一個(gè)周期有224個(gè)時(shí)鐘周期,大約是80ms,所以LED0 以80ms為周期變化。三、實(shí)驗(yàn)步驟3.1新建ISE工程(a) 打開(kāi) ISE 軟件,新建工程,如圖 4 所示圖 4 新建 ISE 工程圖5 輸入工程名稱和路徑然后輸入工程名稱和路徑,其余選擇默認(rèn)選項(xiàng),點(diǎn)擊 finish,如圖 5 所示。新建工程結(jié)束之后,右擊新建的工程名稱,選擇 add new source,可以向工程中添加源文件,在這里選擇verilog module,在左側(cè)對(duì)話框輸入文件名稱和路徑,如圖 6 所示。3.2添加源文件圖6 添加verilog源文件回到設(shè)計(jì)頁(yè)面,可以發(fā)現(xiàn)在工程下面多了一個(gè).v 文件,點(diǎn)開(kāi)文件,輸入下面代碼:module clk_div(clk_p,clk_n,rst,clk_div); input clk_p,rst;input clk_n;/定義輸出輸入端口,差分輸入的脈沖,復(fù)位輸入output clk_div;/定義輸出端口reg clk_div;/為了操作方便定義了一個(gè)與輸出端口同名的寄存器reg23:0 count;/定義24位變量用于分頻是計(jì)數(shù)wire clk;always (posedge clk)/always例化語(yǔ)句,每到下降沿是執(zhí)行if(rst)/檢查是否有按鍵按下begincount = 1b0;/對(duì)輸出和計(jì)數(shù)值進(jìn)行初始化clk_div = 1b0;endelseif ( count!=24hffffff)/計(jì)數(shù)最大值為ffffff,如果沒(méi)有加到ffffff折繼續(xù)加begincount = count + 1b1;endelse /計(jì)數(shù)到ffffff個(gè)時(shí)鐘周期后開(kāi)始對(duì)計(jì)數(shù)值初始化,然后輸出電平求反begincount = 1b0;clk_div = clk_div;end/差分時(shí)鐘例化原語(yǔ)IBUFDS UUT_IBUFG(.I(clk_p),.IB(clk_n),.O(clk);Endmodule代碼功能分析:這段程序的主要功能就是對(duì)輸入時(shí)鐘進(jìn)行分頻,每到ffffff個(gè)時(shí)鐘周期,輸出則求一次反,這樣輸出的脈沖則會(huì)是對(duì)時(shí)鐘脈沖ffffff分頻。3.3代碼綜合代碼輸入完成之后對(duì)代碼進(jìn)行綜合,雙擊Synthesize-XST,綜合成功后會(huì)顯示對(duì)號(hào)或感嘆號(hào),如圖7所示。如果是感嘆號(hào),代表有警告,可右擊Synthesize-XST查看綜合報(bào)告,對(duì)這里出現(xiàn)的警告可以忽略。圖10 布局布線3.4添加約束文件(c)為了使我們的代碼與硬件映射,還需要進(jìn)行管腳約束,管腳約束文件格式為ucf,與添加 verilog module 文件相同的方法,添加一ucf文件,不同的是在圖8的左側(cè)界面中選擇 Implementation Consraints File。 圖 8 添加 ucf 文件回到設(shè)計(jì)界面,開(kāi)始編輯ucf文件,打開(kāi)KC705的datasheet,我們可以找到要使用的 LED0與FPGA 管腳AB8相連,如圖9所示圖 9 LED0 與 FPGA 管腳對(duì)應(yīng)關(guān)系 同樣的方法,再對(duì)時(shí)鐘和復(fù)位信號(hào)進(jìn)行配置。時(shí)鐘選用 200M 的 system clock source,復(fù)位信號(hào)選用 SW3,確定了管腳對(duì)應(yīng)關(guān)系之后,開(kāi)始編輯 ucf 文件,輸入下列內(nèi)容,其中 IOSTANDARD 為電壓約束,在 KC705 的 datasheet 中可以找到。NET clk_p LOC=AD12 |IOSTANDARD=LVDS; /200MNET clk_n LOC=AD11 |IOSTANDARD=LVDS; /200MNET rst LOC=AG5|IOSTANDARD=LVCMOS15;/sw3NET clk_div LOC=AB8 |IOSTANDARD=LVCMOS15;/LED03.5布線d) 以上工作做完之后,就要對(duì)代碼進(jìn)行布局布線,生成可下載的比特流,如圖 10 所示,雙擊 Generate Programming File。圖10 布局布線3.6生成比特流并下載到FPGA上上面步驟完成之后,開(kāi)始將生成的比特流下載到FPGA板,如11 所示,連接開(kāi)發(fā)板與電腦 圖 11 連接 FPGA 與電腦點(diǎn)擊 configure target device,打開(kāi) Impact,如圖 12 所示12 打開(kāi)iMPACT 軟件點(diǎn)擊箭頭所示按鈕,出現(xiàn)圖 13 界面,點(diǎn)擊 OK圖13掃描設(shè)備如圖 14 所示,軟件識(shí)別出所連接設(shè)備,點(diǎn)擊 OK圖 14 設(shè)別設(shè)備雙擊設(shè)備,找到生成的比特流,出現(xiàn)圖 15 對(duì)話框選擇 no圖 15 生成 PROM然后選擇 program,將比特流下載到 FPGA 板,下載成功后出現(xiàn) program successed 標(biāo)志,如圖 16 所示圖16 下載比特流成功(f)觀察實(shí)驗(yàn)結(jié)果。按下 SW3,發(fā)現(xiàn) LED0 是滅的,然后它會(huì)由 暗到明周期性的變化,如圖 17,18 所示 圖 17 LED0 變亮圖 18 LED0 變暗四、實(shí)驗(yàn)拓展設(shè)計(jì)思路:在看了實(shí)驗(yàn)指導(dǎo)書(shū)之后,我發(fā)現(xiàn)實(shí)現(xiàn)輸出的波形都是方波,這時(shí)候,我打算改一下程序,讓它輸出PWM波,通過(guò)占空比來(lái)改變燈的亮度,通過(guò)PWM波的頻率來(lái)改變閃爍的頻率,經(jīng)過(guò)仿真和下載到FPGA上面,得到了比較好的效果。如圖19,計(jì)數(shù)值count一直線性增長(zhǎng),輸入脈沖每來(lái)一個(gè)上升沿,計(jì)數(shù)值就會(huì)加1,當(dāng)計(jì)數(shù)值達(dá)到duty cycle(占空比)時(shí),則輸出低電平,當(dāng)達(dá)到frequence時(shí)候,則計(jì)數(shù)值會(huì)變?yōu)?,同時(shí)輸出高電平,通過(guò)改變frequence計(jì)數(shù)值和duty cycle值來(lái)分別改變頻率和占空比圖19源文件module vanpersie(clk_p,clk_n,clk_div,rst1,rst2,rst3);inputrst1,rst2,rst3;/rst1復(fù)位,rst2用于改變燈閃爍的頻率,rst3用于改變燈閃爍的亮度,rst4用于改變閃爍的模式input clk_p, clk_n;/差分時(shí)鐘輸入口output clk_div;reg clk_div;reg23:0 count;/計(jì)數(shù)值reg23:0 freqence;/設(shè)置輸出脈沖的頻率reg23:0 duty;/用于設(shè)置輸出脈沖的占空比reg0:0 i=0;/標(biāo)志i初始化為0用來(lái)判斷按鍵是否釋放wire clk;always(posedge clk)/輸入脈沖下降沿時(shí)執(zhí)行if(rst1)&(!i)/判斷是否按下按鍵rst1,rst1用于初始化begini=1b1;/按鍵按下則將標(biāo)志位置位freqence = 24hffffff;/初始化頻率,這是后輸出脈沖的頻率等于上一個(gè)實(shí)驗(yàn)輸出方波頻率duty = 24hffffff;/占空比先設(shè)置為1,這是輸出脈沖一直未高電平count = 1b0;/初始化計(jì)數(shù)值為0clk_div = 1b1;/輸出為高電平endelse if(rst2)&(!i)/判斷按鍵rst2是否有按下(rst2用于改變頻率,變?yōu)樵瓉?lái)兩倍)begini=1b1;/有按鍵按下則置位標(biāo)志位freqence = freqence/2d2;/每按一下,frequence計(jì)數(shù)值變?yōu)樵瓉?lái)一半,頻率變?yōu)樵瓉?lái)兩倍endelse if(rst3)&(!i)/判斷rst3是否按下,rst3用于改變占空比begini=1b1;/置位標(biāo)志位i,用于顯示按鍵已經(jīng)按下duty = duty/2d2;/duty減半,占空比變?yōu)樵瓉?lái)一半endelse if(!rst1)&(!rst2)&(rst3)/如果此時(shí)沒(méi)有按鍵按下begin i=1b0;/復(fù)位標(biāo)志位i,用于告訴系統(tǒng)沒(méi)有按鍵按下if(count!=freqence)/如果計(jì)數(shù)值沒(méi)有達(dá)到frequence則計(jì)數(shù)值加1 begin count =duty)/如果計(jì)數(shù)值達(dá)到duty則輸出低電平clk_div =1b0;else;end else/否則(計(jì)數(shù)值達(dá)到frequence),置位輸出,復(fù)位計(jì)數(shù)值beginclk_div =1b1;count = 1b0;endend/差分時(shí)鐘例化原語(yǔ)IBUFDS UUT_IBUFG(.I(clk_p), .IB(clk_n), .O(clk);Endmodule約束文件NET rst1 LOC=AG5 | IOSTANDARD=LVCMOS15;/sw3NET rst2 LOC=AB12| IOSTANDARD=LVCMOS15;/sw4NET rst3 LOC=AC6| IOSTANDARD=LVCMOS15;/sw5NET clk_div LOC=AB8 |IOSTANDARD=LVCMOS15;/LED0NET clk_p LOC=AD12 |IOSTANDARD=LVDS; /200MNET clk_n LOC=AD11 |IOSTANDARD=LVDS; /200M仿真文件module vanpersie_test;/定義模塊/ Inputs/定義輸入reg clk_p;reg clk_n;reg rst1;reg rst2;reg rst3;/ Outputs/定義輸出wire clk_div;/ Instantiate the Unit Under Test (UUT)vanpersie uut (.clk_p(clk_p), .clk_n(clk_n), .clk_div(clk_div), .rst1(rst1), .rst2(rst2), .rst3(rst3);/ Add stimulus here initial begin/ Initialize Inputs/初始化clk_p = 0;clk_n = 1;rst1 = 1;/先按下按鍵rst1,這樣先對(duì)輸出初始化rst2=0;rst3 =1;/按下rst3,這樣輸出的方波占空比減半#100; / Add stimulus here forever begin rst3=1;#100;rst3=0; clk_p=#1 clk_p; clk_n=clk_n; end endinitial begin#80;rst1 = 0;/釋放按鍵rst2=0;#200;rst3 = 0; end endmodule五、思考題(1)本實(shí)驗(yàn)中代碼實(shí)現(xiàn)的是偶數(shù)分頻,試編寫(xiě)奇數(shù)分頻,如3分頻代碼。 1 首先,完全可以通過(guò)計(jì)數(shù)器來(lái)實(shí)現(xiàn),如進(jìn)行三分頻,通過(guò)待分頻時(shí)鐘上升沿觸發(fā)計(jì)數(shù)器進(jìn)行模三計(jì)數(shù),當(dāng)計(jì)數(shù)器計(jì)數(shù)到鄰近值進(jìn)行兩次翻轉(zhuǎn),比如可以在計(jì)數(shù)器計(jì)數(shù)1時(shí),輸出時(shí)鐘進(jìn)行翻轉(zhuǎn),計(jì)數(shù)到2時(shí)再次進(jìn)行翻轉(zhuǎn)。即是在計(jì)數(shù)值在鄰近的1和2進(jìn)行了兩次翻轉(zhuǎn)。這樣實(shí)現(xiàn)的三分頻占空比為1/3或者2/3。2. 如果要實(shí)現(xiàn)占空比為50%的三分頻時(shí)鐘,可以通過(guò)待分頻時(shí)鐘下降沿觸發(fā)計(jì)數(shù),和上升沿同樣的方法計(jì)數(shù)進(jìn)行三分頻,然后下降沿產(chǎn)生的三分頻時(shí)鐘和上升沿產(chǎn)生的時(shí)鐘進(jìn)行相或運(yùn)算,即可得到占空比為50%的三分頻時(shí)鐘。這種方法可以實(shí)現(xiàn)任意的奇數(shù)分頻。測(cè)試程序:方法一:/上升沿觸發(fā)的分頻設(shè)計(jì)modulethree(clkin,clkout);inputclkin;/定義輸入端口outputclkout;/定義輸出端口reg1:0step1,step;always(posedgeclkin)/數(shù)組step在上升沿是加1,對(duì)上升沿獨(dú)立技術(shù)begin case(step) 2b00:step=2b01;2b01:step=2b10;2b10:step=2b00;default:step=2b00;endcaseendalways(negedgeclkin)/數(shù)組step1在下降沿是加1,對(duì)下降沿獨(dú)立計(jì)數(shù)begin case(step1) 2b00:step1=2b01;2b01:step1=2b10;2b10:step1=2b00;default:step1=2b00;endcaseendassignclkout=(step1|step11);/采用差分脈沖輸出,輸出的式step,step1第二位求或的反,得到三分頻沖(占空比為1/3或者2/3)endmodule方法二:/如 果dutycycle=50%,可以第一個(gè)周期第二個(gè)周期輸出原先clock,第三個(gè)周期輸出低,這樣可以實(shí)現(xiàn)三分頻,輸出是占空比1:1的三分頻.modulethree(clk,throut)inputclkoutputthrout; regq1,q2,d,throut;always(posedgeclk)/q1用于記錄上升沿,有1和0兩種狀態(tài)if(!d)q1=1b1; else q1=q1always(negedgeclk)/q2用于記錄下降沿,有1和0兩種狀態(tài)if(!d)q2=1b1;else q2=q2always(q1orq2)/用or語(yǔ)句,每當(dāng)q1,q2中其中一個(gè)有變化時(shí)d=q1&q2/d記錄差分時(shí)鐘 always(posedged)/當(dāng)d發(fā)生變化時(shí)候則輸出求反,得到占空比50%的三分頻脈沖throut=throut;endmodule 仿真波形(2)本實(shí)驗(yàn)中把比特流下載到FPGA開(kāi)發(fā)板是通過(guò)USB接口,除USB之外還有哪些下載方式? 奇數(shù)倍分頻有兩種實(shí)現(xiàn)方法:下載FPGA里面 有三種方式JTAG:下載sof文件,掉電丟失可以將sof轉(zhuǎn)換為jic文件,用EPCSx配置,掉電不丟失AS:下載pof文件,配置EPCSx,掉電不丟失PS:比較老的下載方式,很少使用六、實(shí)驗(yàn)感想與收獲6.1、感想通過(guò)這次FPGA實(shí)驗(yàn),我有很深的感觸。之前在做實(shí)驗(yàn)之前,就對(duì)FPGA早有耳聞,最早是在學(xué)習(xí)verilog時(shí)候老師提到過(guò)fpga是可編程電路,能夠并行地處理數(shù)據(jù),運(yùn)算快,后來(lái)在實(shí)驗(yàn)室參觀的時(shí)候,老師提到FPGA說(shuō)現(xiàn)在數(shù)據(jù)處理能力要求越來(lái)越高,很多時(shí)候,會(huì)用到FPGA,它速度很快,普通電腦做一些數(shù)據(jù)處理可能要花費(fèi)將近一年時(shí)間,而FPGA則只要花費(fèi)一天,因?yàn)槭浅绦驁?zhí)行可以是并行的,因此速度快,在很多領(lǐng)域內(nèi)都有很廣的用途。后來(lái)在實(shí)驗(yàn)課上,助教老師給我們介紹了FPGA和xilinux的軟件ISE,我越來(lái)越喜歡這款開(kāi)發(fā)工具,因?yàn)楣δ軓?qiáng)大,運(yùn)算能力強(qiáng),普通的DSP芯片做數(shù)據(jù)處理時(shí)候時(shí)序控制能力較弱,而且受到時(shí)鐘約束,在越來(lái)越追求速度的今天,它時(shí)序控制能力強(qiáng)(時(shí)序能力強(qiáng),沒(méi)有指令周期,速度快),控制能力較強(qiáng)的特點(diǎn)得到了很好的發(fā)揮,而且ISE軟件還帶有仿真器,能夠在沒(méi)有硬件的時(shí)候能夠比較好地仿真出時(shí)序邏輯。回去后,自己開(kāi)始仿真,發(fā)現(xiàn)很多時(shí)候都出問(wèn)題,最開(kāi)始是編譯不通過(guò),對(duì)verilog語(yǔ)言數(shù)據(jù)表示,塊語(yǔ)句,always,assign,case,if等例化語(yǔ)句很不熟悉,時(shí)常就寫(xiě)錯(cuò)編譯不通過(guò),仿真文件編寫(xiě)時(shí)候理解有問(wèn)題,得不到想要的結(jié)果,因?yàn)檫@些原因,我花費(fèi)了很長(zhǎng)的一段時(shí)間去適應(yīng),理解,最后,我做了一些總結(jié)如下。6.2、一些Verilog語(yǔ)句歸納:過(guò)程語(yǔ)句有:initial、always(可綜合) initial語(yǔ)句常用于仿真中的初始化,initial過(guò)程塊中的語(yǔ)句僅執(zhí)行一次;always塊內(nèi)的語(yǔ)句則是不斷重復(fù)執(zhí)行的;一般來(lái)說(shuō)always語(yǔ)句使用方法是always ()begin/過(guò)程賦值/if-else,case,casex,casez選擇語(yǔ)句/while,repeat,for循環(huán)/task,function調(diào)用end注意:1.always過(guò)程語(yǔ)句通常是帶有觸發(fā)條件的,觸發(fā)條件寫(xiě)在敏感信號(hào)表達(dá)式中,只有當(dāng)觸發(fā)條件滿足時(shí),其后的“begin-end”塊語(yǔ)句才能被執(zhí)行2.其中敏感信號(hào)表達(dá)式為事件表達(dá)式或敏感信號(hào)列表當(dāng)表達(dá)式中變量的值改變,就會(huì)引發(fā)塊內(nèi)語(yǔ)句的執(zhí)行應(yīng)列出影響塊內(nèi)取值的所有信號(hào),用“or”連接。塊語(yǔ)句有:begin-end(可綜合)、fork-join塊語(yǔ)句是由塊標(biāo)志符begin-end或fork-join界定的一組語(yǔ)句,當(dāng)塊語(yǔ)句只包含一條語(yǔ)句時(shí),塊標(biāo)志符可以缺省。注意:begin-end串行塊中的語(yǔ)句按串行方式順序執(zhí)行。assign為持續(xù)賦值語(yǔ)句,主要用于對(duì)wire型變量的賦值。比如:assign c=a&b; 在上面的賦值中,a、b、c三個(gè)變量皆為wire型變量,a和b信號(hào)的任何變化,都將隨時(shí)反映到c上來(lái)。賦值語(yǔ)句有:assign、=、=。(均可綜合)非阻塞(non_blocking)賦值方式 賦值符號(hào)為“=” 非阻塞賦值在整個(gè)過(guò)程塊結(jié)束時(shí)才完成賦值操作阻塞(blocking)賦值方式 賦值符號(hào)為“=”, 如:b= a; 阻塞賦值在該語(yǔ)句結(jié)束時(shí)就立即完成賦值操作,即b的值在該條語(yǔ)句結(jié)束后立刻改變。條件語(yǔ)句有:if-else、case(前兩個(gè)可綜合)、casez、casexif-else語(yǔ)句使用方法有以下3種:(1)if(表達(dá)式) 語(yǔ)句1;(2)if(表達(dá)式) 語(yǔ)句1; else 語(yǔ)句2;(3)if(表達(dá)式1) 語(yǔ)句1; else if(表達(dá)式2) 語(yǔ)句2; else if(表達(dá)式3) 語(yǔ)句3; else if(表達(dá)式n) 語(yǔ)句n; else 語(yǔ)句n+1;case (敏感表達(dá)式) 值1: 語(yǔ)句1;/case分支項(xiàng) 值2: 語(yǔ)句2; 值n: 語(yǔ)句n; default:語(yǔ)句n+1; endcase循環(huán)語(yǔ)句(for、forever、repeat、while)(1)forever:連續(xù)地執(zhí)行語(yǔ)句;多用在“initial”塊中,以生成時(shí)鐘等周期性波形。(2)repeat:連續(xù)執(zhí)行一條語(yǔ)句n次。(3)while:執(zhí)行一條語(yǔ)句直到某個(gè)條件不滿足。(4)for:有條件的循環(huán)語(yǔ)句(唯一可綜合)。七附錄:1.Kintex-7 FPGA 主要包括特性:(1)基于6輸入查找表(LUT)技術(shù),可配置為分布式內(nèi)存的,先進(jìn)的高性能FPGA邏輯。(2)36kB 雙端口RAM塊,內(nèi)置片上數(shù)據(jù)緩沖的FIFO邏輯。(3)高性能的Select IO技術(shù),支持高達(dá)1866 Mb/s的DDR3接口。(4)強(qiáng)大的時(shí)鐘管理瓷磚(CMT),結(jié)合鎖相環(huán)(PLL)和混合模式時(shí)鐘管理器(MMCM),用于實(shí)現(xiàn)高精度和低抖動(dòng)。(5)低成本,線焊接,無(wú)蓋倒裝芯片,高信號(hào)完整性,倒裝芯片封裝,可以方便在同一系列產(chǎn)品之間互換。所有型號(hào)都具有無(wú)鉛封裝,并具有可選鉛封裝。本實(shí)驗(yàn)采用的Kintex-7 FPGA 的KC705 評(píng)估板提供了一個(gè)硬件環(huán)境,用于Kintex-7 XC7K325T-2FFG900C FPGA 的設(shè)計(jì)開(kāi)發(fā)和評(píng)估,KC705開(kāi)發(fā)平臺(tái)如圖2所示。圖2 KC705開(kāi)發(fā)平臺(tái)從圖中可以看出 KC705 板提供了許多嵌入式處理系統(tǒng)的共同特性,開(kāi)發(fā)板資源介紹如表 1 所示。2.FPGA主要原理FPGA采用了邏輯單元陣列LCA(Logic Cell Array)這樣一個(gè)概念,內(nèi)部包括可配置邏輯模塊CLB(Configurable Logic Block)、輸入輸出模塊IOB(Input Output Block)和內(nèi)部連線(Interconnect)三個(gè)部分。 現(xiàn)場(chǎng)可編程門(mén)陣列(FPGA)是可編程器件,與傳統(tǒng)邏輯電路和門(mén)陣列(如PAL,GAL及CPLD器件)相比,F(xiàn)PGA具有不同的結(jié)構(gòu)。FPGA利用小型查找表(161RAM)來(lái)實(shí)現(xiàn)組合邏輯,每個(gè)查找表連接到一個(gè)D觸發(fā)器的輸入端,觸發(fā)器再來(lái)驅(qū)動(dòng)其他邏輯電路或驅(qū)動(dòng)I/O,由此構(gòu)成了既可實(shí)現(xiàn)組合邏輯功能又可實(shí)現(xiàn)時(shí)序邏輯功能的基本邏輯單元模塊,這些模塊間利用金屬連線互相連接或連接到I/O模塊。FPGA的邏輯是通過(guò)向內(nèi)部靜態(tài)存儲(chǔ)單元加載編程數(shù)據(jù)來(lái)實(shí)現(xiàn)的,存儲(chǔ)在存儲(chǔ)器單元中的值決定了邏輯單元的邏輯功能以及各模塊之間或模塊與I/O間的聯(lián)接方式,并最終決定了FPGA所能實(shí)現(xiàn)的功能,F(xiàn)PGA允許無(wú)限次的編程。3.FPGA的基本特點(diǎn):1)采用FPGA設(shè)計(jì)ASIC電路,用戶不需要投片生產(chǎn),就能得到合用的芯片。 -2)FPGA可做其它全定制或半定制ASIC電路的中試樣片。 3)FPGA內(nèi)部有豐富的觸發(fā)器和IO引腳。4)FPGA
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 教材解析水利水電工程試題及答案
- 五年級(jí)心理健康成長(zhǎng)教育
- 物理學(xué)原理在工程中的應(yīng)用知識(shí)集萃
- 高爾夫運(yùn)動(dòng)基礎(chǔ)技能培訓(xùn)指南
- 教育科技產(chǎn)品研發(fā)合同
- 探索市政工程考試領(lǐng)域的試題及答案
- 企業(yè)臨時(shí)用工勞動(dòng)合同
- 經(jīng)濟(jì)師中級(jí)考試重要試題及答案提醒
- 物理實(shí)驗(yàn)答辯報(bào)告設(shè)計(jì)規(guī)范
- 學(xué)習(xí)“鑄牢中華民族共同體意識(shí)”應(yīng)知應(yīng)會(huì)知識(shí)競(jìng)賽測(cè)試題庫(kù)
- 幼兒園教師專業(yè)發(fā)展路徑研究論文
- 規(guī)范佩戴紅領(lǐng)巾
- 非暴力溝通在臨床的應(yīng)用
- 《C語(yǔ)言程序設(shè)計(jì)》教學(xué)設(shè)計(jì) 項(xiàng)目七-人工智能大賽數(shù)據(jù)處理-結(jié)構(gòu)體
- TCAWAORG 032-2024 家庭醫(yī)生遠(yuǎn)程與互聯(lián)網(wǎng)健康服務(wù)規(guī)范
- 電磁懸浮手術(shù)床技術(shù)-深度研究
- 消防大隊(duì)法紀(jì)教育專題授課
- 國(guó)畫(huà)、書(shū)法硯臺(tái)企業(yè)數(shù)字化轉(zhuǎn)型與智慧升級(jí)戰(zhàn)略研究報(bào)告
- 2025年春季學(xué)期 形勢(shì)與政策講稿第五講-從教育大國(guó)邁向教育強(qiáng)國(guó)
- 大型活動(dòng)安保人員配置措施
- 2025年浙江樂(lè)清市金融控股有限公司招聘筆試參考題庫(kù)含答案解析
評(píng)論
0/150
提交評(píng)論