FPGA設計實驗指導書(2013)_第1頁
FPGA設計實驗指導書(2013)_第2頁
FPGA設計實驗指導書(2013)_第3頁
FPGA設計實驗指導書(2013)_第4頁
FPGA設計實驗指導書(2013)_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、FPGA設計實驗指導書安全操作注意事項1、 接插下載電纜前,請務必關閉實驗箱開關,避免損壞下載電纜或實驗箱器件。2、 操作過程中應防止靜電。3、 保持實驗箱和電路板的表面清潔。4、 小心輕放,避免不必要的硬件損傷或者人身受傷。實驗箱簡介實驗一 簡單組合邏輯設計一、實驗目的和任務 1、 熟習Quartus II軟件的使用; 2、 掌握用原理圖輸入法和硬件描述語言(Verilog HDL)兩種方法來設計邏輯電路; 3、 通過電路的仿真及驗證,進一步了解4選1數(shù)據選擇器的功能; 二、實驗內容1、用原理圖輸入法來設計4選1數(shù)據選擇器參照按圖1-1所示來編輯完成4選1數(shù)據選擇器的原理圖輸入,其中a、b、

2、c、d 為數(shù)據輸入端,sel1、sel0為控制輸入端,q為4選1數(shù)據輸出端。存盤仿真后,觀察仿真波形,以驗證數(shù)據選擇器的功能。圖1-1 4選1數(shù)據選擇器原理圖2、用Verilog HDL硬件描述語言來設計4選1數(shù)據選擇器 用QuartusII中的文本編輯器,編輯輸入4選1數(shù)據選擇器源程序: module m41( a, b, c, d, sel, q); input a,b,c,d; input 1:0sel; output q; reg q; always ( sel) case(sel) 2b00: q=a; 2b01: q=b; 2b10: q=c; 2b11: q=d; endcase

3、 endmodule程序中的a、b、c、d 依然為數(shù)據輸入端,sel1、sel0為控制輸入端,q為4選1數(shù)據輸出端。同樣存盤后進行仿真,并觀察仿真波形,以驗證數(shù)據選擇器的功能。三、實驗儀器、設備及材料 電腦、EDA軟件、實驗箱、下載電纜。四、實驗原理4選1數(shù)據選擇器的原理框圖及真值表如圖1-2及表1-1所示,sel1:0可能出現(xiàn)四種組合情況: 00 01 10 11,它分別對應選通四個不同的數(shù)據輸入a、b、c、d,從q端輸出。結合以前所學數(shù)字電路的知識,可由真值表得出利用“與非門”實現(xiàn)的邏輯電路,進而可用QuartusII原理圖輸入方法,設計出該4選1數(shù)據選擇器;如應用EDA技術所學的Veri

4、log HDL硬件描述語言來描述該電路功能,即可設計出該4選1數(shù)據選擇器的源程序。dabcqsel1:0四選一電路圖1-2 4選1數(shù)據選擇器的原理框圖五、重點、難點 本實驗技術重點在于理解4選1數(shù)據選擇器的功能后,用原理圖輸入法和硬件描述語言(Verilog HDL)兩種方法來設計該邏輯電路。 其難點是要仿真出4選1數(shù)據選擇器的波形,然后通過觀測仿真波形,來驗證該數(shù)據選擇器的功能。六、實驗步驟(一)原理圖輸入法的設計步驟:(1)進入Windows 操作系統(tǒng),雙擊Quartus II圖標,啟動軟件。1、 單擊File New Project Wizard菜單,輸入文件名路徑與設計項目的名字mux

5、41,點擊finish, 完成設計項目建立。點擊Assignment Device菜單,選擇器件(本設計選用cyclone 系列的EP1C12Q240C8)。 2、啟動菜單File New,選擇Block Diagram/Schematic File,點OK,啟動原理圖編輯器。畫出圖1-1(具體方法見后面說明)。默認存盤名為mux41,保存。(2)設計的輸入1. 在原理圖空白處雙擊,會出現(xiàn)元件選擇對話框,在name處輸入元件名,點OK完成元件放置。依次放置4個三輸入端與門(and3)、1個四輸入端或門(or4),2個非門(not)器件、及6個輸入端(input)、1個輸入端(output)在原

6、理圖上;2. 添加連線到器件的管腳上 把鼠標移到元件引腳附近,則鼠標光標自動由箭頭變?yōu)槭?,按住鼠標右鍵拖動,即可畫出連線, 參照圖1連好相應元件的輸入、輸出腳。3.保存原理圖單擊保存按鈕。原理圖文件出現(xiàn)在紅色箭頭所指的地方。(3)編譯點擊菜單欄上紅色箭頭所指的工具圖標,完成編譯。圖1-3 編譯(4)仿真設計文件 編譯沒有錯誤可以進行仿真。點擊 File New菜單。選擇other files中的vector waveform file。畫出輸入波形,執(zhí)行仿真命令,啟動仿真并觀察仿真波形,進行設計電路的功能驗證。點擊開始仿真 圖1-4 新建波形文件的選擇對話框(二)用Verilog HDL語言

7、完成的設計步驟:(1)、運行Quartus II軟件,先建立一個新的項目。(2)、啟動File New菜單命令(如圖1-5); 圖1-5 新建文本文件的選擇對話框(3)、選擇verilog hdl file,點擊OK后,鍵入上面“二、實驗內容”中的程序。(4)、以默認文件名和路徑保存。(5)參照原理圖輸入設計進行仿真,并觀察仿真波形,以驗證所設計電路的功能。七、實驗報告要求1. 對于原理圖設計要求有設計過程。2. 詳細論述實驗步驟。3. 給出原理圖輸入法和Verilog HDL語言設計兩種方法的仿真波形。八、實驗注意事項1. 使用原理圖設計時,其文件名mux41.gdf要與仿真的波形文件名mu

8、x41.vwf相同,只是文件的后綴不同;使用Verilog HDL語言設計時,其文件名(m4_1.V)要與模塊名module m4_1( a, b, c, d, sel, q);相同,且仿真的波形文件名m4_1.vwf也要相同。2. 用原理圖輸入法和Verilog HDL語言兩種方法所做的設計,一定要建兩個不同的工程,最好放在不同的目錄中,且目錄名不要出現(xiàn)中文字符。3.在Waveform Editor仿真時,應先在菜單選項的Edit/ Grid Size中所彈出的對話框中將Grid Size:改為1.0us;并菜單選項的Edit/ End Time中所彈出的對話框中將Grid Size改為10

9、0.0us,以方便觀察、理解仿真得到的波形。九、思考題 1. 如何用設計好的4選1數(shù)據選擇器,來實現(xiàn)8選1數(shù)據選擇器的設計(用原理圖輸入法來設計),試給出設計與仿真的結果。 2.談談使用原理圖輸入法和Verilog HDL語言設計兩種方法的優(yōu)劣心得。實驗二 組合邏輯電路設計一、實驗目的1、繼續(xù)學習Verilog HDL基本語法;2、鞏固Quartus II環(huán)境下的Verilog HDL編程設計的基礎二、主要儀器設備EDA實驗系統(tǒng)1臺PC機三、實驗內容1、設計一個四線至二線編碼器,其真值表如下:表2.1 四線至二線編碼器的真值表2、 設計一個2位信號的比較器,該比較器的電路符號如圖2.1所示。圖

10、2.1 比較器電路符號引腳說明:A、B皆為二位信號;CLK為時鐘脈沖輸入;RST為清除控制信號。AGTB:當A>B時,其值為1,否則為0;AEQB:當A=B時,其值為1,否則為0;ALTB:當A<B時,其值為1,否則為0;3、設計一個八位全加器。四、實驗報告根據以上實驗內容寫出實驗報告,包括程序設計,軟件編譯,管腳分配,硬件測試結果等內容。實驗三 一般計數(shù)器的設計及ModelSim 仿真測試一、實驗目的1、掌握一般計數(shù)器的設計方法;2、了解ModelSim 仿真測試方法。二、主要儀器設備EDA實驗系統(tǒng)1臺PC機三、實驗內容1、設計一個8421BCD十進制計數(shù)器,并將計數(shù)結果在LED

11、或數(shù)碼管上顯示。2、利用ModelSiml工具進行仿真測試。四、ModelSim仿真步驟見參考資料ModelSim操作簡介五、實驗報告根據以上實驗內容寫出實驗報告,包括程序設計,軟件編譯,仿真結果及分析,硬件測試等內容。實驗四 時序邏輯電路設計一、實驗目的理解觸發(fā)器和計數(shù)器的概念,掌握時序器件的Verilog HDL語言程序設計的方法二、主要儀器設備EDA實驗系統(tǒng)1臺PC機三、實驗內容設計以下內容:1、 基本的D觸發(fā)器;2、 同步復位的D觸發(fā)器;3、 異步復位的D觸發(fā)器;4、 同步置位/復位的D觸發(fā)器;5、 設計一個簡單的加法或減法計數(shù)器,并用LED或數(shù)碼管顯示四、實驗報告根據以上實驗內容寫出

12、實驗報告,包括程序設計,管腳分配,用示波器觀察D觸發(fā)器波型;計數(shù)器用LED或數(shù)碼管顯示,并提交其仿真結果及分析。 實驗五 有限狀態(tài)機(FSM)的設計一、實驗目的1、了解FSM的應用范圍和兩種類型的不同特點;2、掌握FSM的電路結構和設計要點。二、主要儀器設備EDA實驗系統(tǒng)一臺三、實驗原理FSM適合于設計數(shù)字系統(tǒng)的控制模塊。用Verilog HDL的case/if-else等語句能很好地描述基于狀態(tài)機的設計。狀態(tài)機可以認為是組合邏輯和時序邏輯的特殊組合。時序邏輯部分用于存貯狀態(tài),組合電路用于狀態(tài)譯碼和產生輸出信號。狀態(tài)機的下一個狀態(tài)不僅與輸入信號有關,還與狀態(tài)寄存器當前所處的狀態(tài)有關。狀態(tài)機分為

13、Mealy和Moore兩種類型,前者的輸出只是當前狀態(tài)的函數(shù),也就是狀態(tài)的轉換與輸入信號無關,后者的輸出則是當前狀態(tài)和當前輸入的函數(shù),即狀態(tài)的轉換與輸入信號有關。狀態(tài)機的表示方法:狀態(tài)圖、狀態(tài)表和流程圖。四、實驗內容檢測一個5位二進制序列“10010”五、實驗報告根據以上實驗內容寫出實驗報告,包括程序設計,軟件編譯,仿真結果及分析,硬件測試等內容。實驗六 基于模塊多層次引用的結構化電路設計一、實驗目的1、了解復雜電路與系統(tǒng)的“top-down”設計思想;2、掌握簡單多層次電路的描述方法。二、主要儀器設備EDA/SOPC實驗系統(tǒng)1臺三、實驗原理1、多層次結構電路的設計1、復雜數(shù)字系統(tǒng)可采用“to

14、p-down”的方法進行設計:首先把系統(tǒng)分為幾個模塊,每個模塊在分為幾個子模塊,依次類推,知道易于實現(xiàn)為止。這種“top-down”的方法能夠把復雜的設計分為許多簡單的設計來實現(xiàn),同時也適合于多人進行合作開發(fā)。多層次結構電路的描述既可以采用文本方式,也可以采用圖形和文本混合設計的方式。被調用模塊的指定方式:1)文件復制方式;2)使用include語句;3)庫管理方式。2、設計實例分析這個實例的功能是將并行數(shù)據轉化為串行數(shù)據送交外部電路編碼,并將解碼后得到的串行數(shù)據轉化為并行數(shù)據交由CPU處理。顯而易見,這實際上是兩個獨立的邏輯功能,分別設計為獨立的模塊,然后再合并為一個模塊顯得目的明確、層次清

15、晰。模塊源代碼/ - p_to_s.v -modulep_to_s(D_in,T0,data,SEND,ESC,ADD_100);output D_in,T0; / D_in是串行輸出,T0是移位時鐘并給 / CPU中斷,以確定何時給出下個數(shù)據。input7:0 data; /并行輸入的數(shù)據。input SEND,ESC,ADD_100; /SEND、ESC共同決定是否進行并到串 /的數(shù)據轉化。ADD_100決定何時置數(shù)。wire D_in,T0;reg7:0 DATA_Q,DATA_Q_buf;assign T0 = ! (SEND & ESC); /形成移位時鐘。.assign D

16、_in = DATA_Q7; /給出串行數(shù)據。always (posedge T0 or negedge ADD_100) /ADD_100下沿置數(shù),T0上沿移位。 begin if(!ADD_100) DATA_Q = data; else begin DATA_Q_buf = DATA_Q<<1; /DATA_Q_buf作為中介,以令綜合器 DATA_Q = DATA_Q_buf; /能辨明。 end endendmodule在p_to_s.v中,由于移位運算雖然可綜合,但是不是簡單的RTL級描述,直接用DATA_Q<=DATA_Q<<1的寫法在綜合時會令綜合

17、器產生誤解。另外,在該設計中,由于時鐘T0的頻率較低,所以沒有象以往那樣采用低電平置數(shù),而是采用ADD_100的下降沿置數(shù)。/- s_to_p.v -module s_to_p(T1, data, D_out,DSC,TAKE,ADD_101); output T1; /給CPU中斷,以確定CPU何時取轉化 /得到的并行數(shù)據。 output 7:0 data; input D_out, DSC, TAKE, ADD_101; /D_out提供輸入串行數(shù)據。DSC、TAKE /共同決定何時取數(shù)。 wire 7:0 data; wire T1,clk2; reg 7:0 data_latch, d

18、ata_latch_buf; assign clk2 = DSC & TAKE ; /提供移位時鐘。 assign T1 = !clk2; assign data = (!ADD_101) ? data_latch : 8'bz; always (posedge clk2) begin data_latch_buf = data_latch << 1; /data_latch_buf作緩沖 data_latch = data_latch_buf; /,以令綜合器能辯明。 data_latch0 = D_out; endendmodule將上面的兩個模塊合并起來的sy

19、s.v的源代碼:/- sys.v -include "./p_to_s.v"include "./s_to_p.v"module sys(D_in,T0,T1, data, D_out,SEND,ESC,DSC,TAKE,ADD_100,ADD_101); input D_out,SEND,ESC,DSC,TAKE,ADD_100,ADD_101; inout 7:0 data; output D_in,T0,T1; p_to_s p_to_s(.D_in(D_in),.T0(T0),.data(data),.SEND(SEND),.ESC(ESC),.

20、ADD_100(ADD_100); s_to_p s_to_p(.T1(T1),.data(data),.D_out(D_out),.DSC(DSC),.TAKE(TAKE),.ADD_101(ADD_101); endmodule四、實驗內容完成實驗原理中的所有步驟,并用ModelSim進行仿真五、實驗報告根據以上實驗內容寫出實驗報告,包括仿真結果及分析、硬件實現(xiàn)、硬件測試等內容。實驗七 交通燈設計一、實驗目的綜合運用Verilog HDL語言進行時序設計二、主要儀器設備EDA實驗系統(tǒng)1臺PC機三、實驗內容編寫時序控制程序,實現(xiàn)東西、南北向的交通燈計數(shù)并亮燈的程序。東西、南北方向紅燈、綠燈亮

21、的時間各為30秒,黃燈亮時間為3秒;表7.1 交通燈控制器的狀態(tài)轉換表四、實驗報告根據以上實驗內容寫出實驗方案,包括程序設計,軟件編譯,仿真結果及分析,硬件測試等內容。選做實驗一 秒表的設計一、實驗目的1、實現(xiàn)FPGA對四位動態(tài)數(shù)碼管的控制;2、熟悉模塊化編程的操作流程二、主要儀器設備EDA/SOPC實驗系統(tǒng)1臺三、實驗要求1、秒表的最小計時單位為0.1秒;2、設計的秒表能夠實現(xiàn)暫停和繼續(xù)計時的功能。五、實驗報告根據以上實驗內容寫出實驗報告,包括程序設計,軟件編譯,仿真結果及分析,硬件測試等內容。選做實驗二 出租車計費器設計一、實驗目的1了解出租車計費器的工作原理。2學會用Verilog HD

22、L 語言編寫正確的七段碼管顯示程序。3掌握用Verilog HDL編寫復雜功能模塊。4掌握電機測速、顯示電器、計數(shù)電路的設計方法。5熟悉狀態(tài)機在數(shù)字系統(tǒng)設計中的應用二、主要儀器設備EDA/SOPC實驗系統(tǒng)1臺三、實驗原理出租車計費器一般都是按公里計費,通常是起步價xx 元(xx 元可以行走2 公里),然后再是xx 元/公里。所以要完成一個出租車計費器,就要有兩個計數(shù)單位,一個用來計公里,另外一個用來計費用。通常在出租車的輪子上都有傳感器,用來記錄車輪轉動的圈數(shù),而車輪子的周長是固定的,所以知道了圈數(shù)自然也就知道了里程。在這個實驗中,就要模擬出租車計費器的工作過程,用直流電機模擬出租車輪子,通過

23、傳感器,可以得到電機每轉一周輸出一個脈沖波形。結果的顯示用8 個七段碼管,前四個顯示里程,后四個顯示費用。在設計verilog 程序時,首先在復位信號的作用下將所有用到的寄存器進行清零,然后開始設定到起步價記錄狀態(tài),在此狀態(tài)時,在起步價規(guī)定的里程里都一直顯示起步價,直到路程超過起步價規(guī)定的里程時,系統(tǒng)轉移到每公里計費狀態(tài),此時每增加一公里,計費器增加相應的費用。為了便于顯示,在編寫過程中的數(shù)據用BCD 碼來顯示,這樣就不存在數(shù)據格式轉換的問題。比如表示一個三位數(shù),那么就分別用四位二進制碼來表示,當個位數(shù)字累加大于9時,將其清零,同時十位數(shù)字加1,依此類推。四、實驗內容本實驗要完成的任務就是設計

24、一個簡單的出租車計費器,要求是起步價3 元,準行1 公里,以后1 元/公里。顯示部分的七段碼管掃描時鐘選擇時鐘模塊的1KHz,電機模塊的跳線選擇GND 端,這樣通過旋鈕電機模塊的電位器,即可達到控制電機轉速的目的。另外用按鍵模塊的S1 來作為整個系統(tǒng)的復位按鈕,每復位一次,計費器從頭開始計費。直流電機用來模擬出租車的車輪子,沒轉動一圈認為是行走1 米,所以每旋轉1000 圈,認為車子前進1 公里。系統(tǒng)設計是需要檢測電機的轉動情況,每轉一周,計米計數(shù)器增加1。七段碼管顯示要求為前4 個顯示里程,后3 個顯示費用。五、實驗報告根據以上實驗內容寫出實驗報告,包括程序設計,軟件編譯,仿真結果及分析,硬

25、件測試等內容。選做實驗三 頻率計的設計一、實驗目的1 了解頻率計的工作原理。2 體會FPGA 在數(shù)字系統(tǒng)設計方面的靈活性。3 掌握Verilog HDL 在測量模塊設計方面的技巧。二、主要儀器設備EDA/SOPC實驗系統(tǒng)1臺、信號源1臺三、實驗原理所謂頻率就是周期性信號在單位時間(1s)內變化的次數(shù)。若在一定時間間隔T(也稱閘門時間)內測得這個周期性信號的重復變化次數(shù)為N,則其頻率可表示為fN/T由上面的表示式可以看到,若時間間隔T 取1s,則fN,但是這種頻率計僅能測出頻率大于或者等于1Hz 的情況,且頻率越高,精度也越高。實際應用中,頻率計的閘門時間十個可變量,當頻率小于1Hz 是,閘門時

26、間就要適當放大。本實驗中為了簡化實驗代碼,閘門時間固定為1s,閘門信號是一個0.5Hz 的方波,在閘門有效(高電平)期間,對輸入的脈沖進行計數(shù),在閘門信號的下降沿時刻,所存當前的計數(shù)值,并且清零所有的頻率計數(shù)器。由于閘門時間是1s(0.5Hz 方波),所以顯示的頻率是1s 鐘更新一次,且顯示的內容是閘門下降沿時鎖存的值。在設計頻率計的時候,八個七段碼管最多可以顯示99,999,999Hz,因此在設計時候用八個4 位二進制碼(BCD 碼)來表示,另外還必須有同樣的八個4 位二進制碼來對輸入的頻率進行計數(shù),在閘門下降沿的時候,將后者的值鎖存到前者的8 個寄存器中。另外為了讀數(shù)方便,在顯示時需要進行

27、判斷,假如頻率的值小于1KHz 并且大于100Hz,那么只顯示三位有效值,其他高位全部不顯示。四、實驗內容本實驗要完成的任務就是設計一個頻率計,系統(tǒng)時鐘選擇實驗箱時鐘模模塊的1KHz 時鐘,閘門時間為1s(0.5Hz,需要對系統(tǒng)時鐘進行2000 分頻),在閘門為高電平期間,對輸入的頻率進行計數(shù),當閘門變低的時候,記錄當前的頻率值,并將頻率計數(shù)器清零,頻率的顯示每過2 秒刷新一次。頻率計的輸入從實驗箱的觀察模塊的探針輸入。五、實驗報告根據以上實驗內容寫出實驗報告,包括程序設計,軟件編譯,仿真結果及分析,硬件測試等內容。附 錄FPGA接口對照表復位信號信號名稱對應FPGA引腳RESET240串行接

28、口(RS-232)信號名稱對應FPGA引腳RXD1195TXD1128RXD2223TXD2222VGA接口信號名稱對應FPGA引腳R219G218B217HS216VS215PS/2接口信號名稱對應FPGA引腳CLOCK214DATA213USB接口模塊信號名稱對應FPGA引腳DB0228DB1233DB2234DB3235DB4236DB5237DB6238DB7239A0227WR224RD225CS208INT207SUSPEND206LCD顯示模塊信號名稱對應FPGA引腳DB0228DB1233DB2234DB3235DB4236DB5237DB6238DB7239C/D227WR2

29、24RD225CS226以太網接口模塊信號名稱對應FPGA引腳SA096/38SA195SA294SA393SA488SA587SA686SA785SA884SA983SD098SD1100SD241SD3104SD4106SD5108SD6114SD7116SD899SD9101SD1047SD11105SD12107SD13113SD14115SD15117RD82WR23AEN79INT39RESET21LED顯示模塊信號名稱對應FPGA引腳D1_198D1_299D1_3100D1_4101D1_541D1_647D1_7104D1_8105D2_1106D2_2107D2_3108D2_4113D2_5114D2_6115D2_7116D2_8117撥檔開關信號名稱對應FPGA引腳K11

溫馨提示

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

評論

0/150

提交評論