FPGA實驗報告_第1頁
FPGA實驗報告_第2頁
FPGA實驗報告_第3頁
FPGA實驗報告_第4頁
FPGA實驗報告_第5頁
已閱讀5頁,還剩7頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、實驗報告課程名稱: FPGA技術 實驗名稱: 用狀態(tài)機實現(xiàn)序列檢測器的設計 姓 名: 學 號: 班 級: 指導教師: 2實驗題目一、 實驗原理1、實驗目的:用狀態(tài)機實現(xiàn)序列檢測器的設計,并對其進行仿真和硬件測試。2、實驗內(nèi)容:應用有限狀態(tài)機設計思路,檢測輸入的串行數(shù)據(jù)是否是“010000”,本次實驗由頂層文件、串行檢測、并行數(shù)據(jù)轉(zhuǎn)串行、數(shù)碼管顯示四個模塊組成。 圖3.1整體模塊方塊圖3、序列檢測器的原理說明:序列檢測器可用于檢測一組或多組由二進制碼組成的脈沖序列信號,當序列檢測器連續(xù)收到一組串行二進制碼后,如果這組碼與檢測器中預先設置的碼相同,則輸出A,否則輸出b。由于這種檢測的關鍵在于正確碼

2、的收到必須是連續(xù)的,這就要求檢測器必須記住前一次的正確碼及正確序列,直到在連續(xù)的檢測中所收到的每一位碼都與預置數(shù)的對應碼相同。在檢測過程中,任何一位不相等都將回到初始狀態(tài)重新開始檢測。例3-1描述的電路完成對特定的序列數(shù)"100101"的檢測的部分HDL代碼。當這一串序列數(shù)高位在前(左移)串行進入檢測器后,若此數(shù)與預置的密碼數(shù)相同,則輸出“A”,否則仍然輸出“b”。4、 系統(tǒng)共包括4個模塊: 4.1、并行數(shù)據(jù)轉(zhuǎn)串行數(shù)據(jù)模塊(xulie.v) 1)、輸入端口:clk-系統(tǒng)時鐘,由按鍵K2通過消抖模塊后提供。din6-6bits輸入數(shù)據(jù),需在時鐘控制下,串行輸出。reset-系

3、統(tǒng)復位信號,當reset=1b1時,系統(tǒng)輸出復位,否則系統(tǒng)正常工作。 2)、輸出端口:din-1bit輸出信號 3)、操作要求及功能描述:1、異步復位,在時鐘控制下,將并行輸入數(shù)據(jù)din65:0,按照din5,din4,din3,din2, din1,din0的順序輸出至串行檢測模塊的輸入端口din。2、根據(jù)設計要求,先畫出并行數(shù)據(jù)轉(zhuǎn)串行數(shù)據(jù)模塊的狀態(tài)轉(zhuǎn)移圖,在此基礎上寫出HDL代碼。3、比較實驗指導書提供并行數(shù)據(jù)轉(zhuǎn)串行數(shù)據(jù)模塊(xulie.v)的參考代碼,總結有限狀態(tài)機的HDL設計方法 4.2、串行檢測模塊(schk.v) 1)、輸入信號: DIN-1bit的串行輸入數(shù)據(jù) CLK-同步輸入時

4、鐘 CLR -異步清零信號,當CLR=1,系統(tǒng)輸出置0,否則,系統(tǒng)正常工作 2)、輸出信號: AB-4bits數(shù)據(jù),如果系統(tǒng)檢測到6b100101的串行輸入,AB=4b1010,否則,AB=4b1011。3) 、操作要求及功能描述: 1、根據(jù)設計要求,畫出串行檢測模塊(schk.v)的狀態(tài)轉(zhuǎn)移圖,并自行設計HDL源代碼。 2、用Verilog HDL設計數(shù)碼管驅(qū)動電路、系統(tǒng)頂層電路。 3、注意頂層系統(tǒng)中,應加入消抖模塊,對K2輸入的時鐘clk進行消抖處理。 注:剩下兩個模塊在第二次實驗中都已經(jīng)運用過,在這里不另做說明。二、 實驗步驟(1) 新建一個工程,為工程命名、指定存儲路徑和目標芯片等。(

5、在 E 盤或者 DATA 盤的根目錄下, 以自己的學號為文件名建立工程)。建議工程名、路徑名中不要使用中文,file->New Project。(2) 選擇 Top-level 的類型是 HDL。 圖3.2 Top-level操作界面(3) 做好器件、EDA工具的正確選擇,才能使得正常完成鎖定引腳、下載的操作。本次實驗中仍采用ISE自帶的綜合和仿真工具。 圖3.3器件和 EDA 工具選擇界面(4) 建立新Verilog HDL模塊編輯窗口,添加文件,選擇Verilog Module,建立工程后建立工程后,開始分別設計:1) 并行數(shù)據(jù)轉(zhuǎn)串行數(shù)據(jù)模塊(xulie.v) 程序代碼如下:modu

6、le xulie(clk, din6, reset, din);input clk;input5:0 din6;input reset;output din;parameter s0 = 3'b000, s1 = 3'b001, s2 = 3'b010, s3 = 3'b011, s4 = 3'b100, s5 = 3'b101;reg2:0 cur_state,next_state;reg din;always (posedge clk or posedge reset) if(reset) cur_state <= s0; else c

7、ur_state <= next_state;always (cur_state or din6 or din )begin case (cur_state) s0 : begin din <= din65; next_state <= s1; end s1 : begin din <= din64; next_state <= s2; end s2 : begin din <= din63; next_state <= s3; end s3 : begin din <= din62; next_state <= s4; end s4 :

8、begin din <= din61; next_state <= s5; end s5 : begin din <= din60; next_state <= s0; end default : begin din <= 1'b0; next_state <= s0; endendcaseendendmodule2) 串行檢測模塊(schk.v) 程序代碼如下: module schk(din,clk,reset,AB);input din;input clk;input reset;output3:0AB;reg 3:0AB;reg2:0 cur

9、_state,next_state;parameter s0 = 3'b000, s1 = 3'b001, s2 = 3'b010, s3 = 3'b011, s4 = 3'b100, s5 = 3'b101,s6 = 3'b110;always (posedge clk or posedge reset) if(reset) cur_state <= s0; else cur_state <= next_state;always (cur_state or din)begincase(cur_state)s0:begin A

10、B<=4'b1011;next_state<=(din=0)?s1:s0;ends1:begin AB<=4'b1011;next_state<=(din=1)?s2:s1;ends2:begin AB<=4'b1011;next_state<=(din=0)?s3:s0;ends3:begin AB<=4'b1011;next_state<=(din=0)?s4:s2;ends4:begin AB<=4'b1011;next_state<=(din=0)?s5:s2;ends5:begin i

11、f(din=0)begin AB<=4'b1010;next_state<=s6;endelse begin AB<=4'b1011;next_state<=s0;end ends6:begin AB<=4'b1011;next_state<=(din=0)?s1:s0;endendcaseendendmodule 3)數(shù)碼管顯示模塊(decled7s .v) 程序代碼如下:module decled7s(IN,OUT);input 3:0IN;output 6:0OUT;reg 6:0OUT;wire 3:0IN;always (I

12、N)begincase(IN) 4'b1010: OUT<=7'b0001000; 4'b1011: OUT<=7'b0000011; default: OUT<=0; endcase end Endmodule 4)消抖模塊(debounce_module.v) 程序代碼如下: module debounce_module ( CLK, RSTn, Pin_In, Pin_Out); input CLK;input RSTn;input Pin_In;output Pin_Out; wire H2L_Sig;wire L2H_Sig; det

13、ect_module U1 ( .CLK( CLK ), .RSTn( RSTn ), .Pin_In( Pin_In ), / input - from top .H2L_Sig( H2L_Sig ), / output - to U2 .L2H_Sig( L2H_Sig ) / output - to U2 );delay_module U2 ( .CLK( CLK ),.RSTn( RSTn ), .H2L_Sig( H2L_Sig ), / input - from U1 .L2H_Sig( L2H_Sig ), / input - from U1.Pin_Out( Pin_Out )

14、 / output - to top );endmodule(5) 按照前述子模塊的相同的設計步驟完成,用Verilog HDL將并行數(shù)據(jù)轉(zhuǎn)串行數(shù)據(jù)模塊(xulie.v)串行檢測模塊(schk.v)數(shù)碼管顯示模塊(decled7s .v)組合為一個模塊XULIEQI .v。 編寫頂層文件將以上模塊進行組合,程序代碼如下:timescale 1ns / 1psmodule XULIEQI(CLK,RESET,din6, din, AB,LED7S);input CLK,RESET;input 5:0 din6;output 6:0 LED7S;output 3:0 AB;output din;w

15、ire din;wire 3:0 AB;xulie u1(CLK, din6, RESET, din);schk u2(din,CLK,RESET,AB);decled7s u3(AB,LED7S);endmodule(6) 對XULIEQI .v進行綜合,功能仿真,時序仿真。 (7) 將XULIEQI .v文件和消抖模塊,用Verilog HDL組合起來,建立頂層模塊top.v, 該頂層模塊不需要仿真。程序代碼如下:timescale 1ns / 1psmodule XULIEQI(CLK_50M,CLK,RESET,din6, din, AB,LED7S);input CLK_50M,CL

16、K,RESET;input 5:0 din6;output 6:0 LED7S;output 3:0 AB;output din;wire din;wire Pin_Out;wire 3:0 AB;debounce_module u0( CLK_50M, RESET, CLK, Pin_Out);xulie u1(Pin_Out, din6, RESET, din);schk u2(din,Pin_Out,RESET,AB);decled7s u3(AB,LED7S);Endmodule(八)進行引腳鎖定,然后驗證程序后,下載,連接輸入信號到FPGA,改變相應的撥動開關和按鍵,觀察結果。3、

17、實驗結果及分析(1) 、完成并行數(shù)據(jù)轉(zhuǎn)串行數(shù)據(jù)模塊(xulie.v)程序代碼的編寫之后,保存文件,然后對此模塊進行綜合。方法為在sources窗口選中待綜合模塊(xulie.v),在process窗口雙擊Synthesize-XST,綜合完后可以雙擊Synthesize-XST下的View RTL Schematic,得到綜合后的電路圖為: 圖1、模塊(xulie.v)的綜合電路圖(2) 、完成串行檢測模塊(schk.v)程序代碼的編寫之后,然后對此模塊進行綜合。由(一)同理可得:綜合后的(schk.v)模塊電路圖為: 圖2、模塊(schk.v)的綜合電路圖激勵信號波形如下(序列號為01000

18、0): 添加Test Bench WaveForm文件,進行仿真仿真圖如下: 根據(jù)激勵波形和輸出波形可得。當序列號為010000時,輸出波形為1010,顯示“A”,其他結果顯示“B”,所以結果正確。(3) 、完成數(shù)碼管顯示模塊(decled7s .v)程序代碼的編寫之后,然后對此模塊進行綜合。由(一)同理可得:綜合后的(decled7s .v)模塊電路圖為: 圖3、模塊(decled7s .v)的綜合電路圖添加Test Bench WaveForm文件,進行仿真仿真圖如下: (4) 、完成消抖模塊(debounce_module.v)程序代碼的編寫之后,然后對此模塊進行綜合。由(一)同理可得:綜合后的(debounce_module.v)模塊電路圖為: 圖4、模塊(debounce_module.v)的綜合電路圖(5) 、將XULIEQI .v文件和消抖模塊,用Verilog HDL組合起來,建立頂層模塊top.v,然后進行整體綜合,即

溫馨提示

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

評論

0/150

提交評論