FPGA用狀態(tài)機實現(xiàn)序列檢測器的設(shè)計報告_第1頁
FPGA用狀態(tài)機實現(xiàn)序列檢測器的設(shè)計報告_第2頁
FPGA用狀態(tài)機實現(xiàn)序列檢測器的設(shè)計報告_第3頁
FPGA用狀態(tài)機實現(xiàn)序列檢測器的設(shè)計報告_第4頁
FPGA用狀態(tài)機實現(xiàn)序列檢測器的設(shè)計報告_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡介

FPGA實驗報告題目:用狀態(tài)機實現(xiàn)序列檢測器的設(shè)計一.實驗?zāi)康模河脿顟B(tài)機實現(xiàn)序列檢測器的設(shè)計,并對其進(jìn)行仿真和硬件測試。二.實驗原理及內(nèi)容:序列檢測器可用于檢測一組或多組由二進(jìn)制碼組成的脈沖序列信號,當(dāng)序列檢測器連續(xù)收到一組串行二進(jìn)制碼后,如果這組碼與檢測器中預(yù)先設(shè)置的碼相同,那么輸出a,否那么輸出b。由于這種檢測的關(guān)鍵在于正確碼的收到必須是連續(xù)的,這就要求檢測器必須記住前一次的正確碼及正確序列,直到在連續(xù)的檢測中所收到的每一位碼都與預(yù)置數(shù)的對應(yīng)碼相同。在檢測過程中,任何一位不相等都將回到初始狀態(tài)重新開始檢測。電路完成對序列數(shù)"11100101"的。當(dāng)這一串序列數(shù)高位在前〔左移〕串行進(jìn)入檢測器后,假設(shè)此數(shù)與預(yù)置的密碼數(shù)相同,那么輸出“a〞,否那么仍然輸出“b〞。頂層模塊并轉(zhuǎn)串模塊串行檢測模塊數(shù)碼管顯示模塊并行8bits數(shù)據(jù)clk串行數(shù)據(jù)4bits數(shù)據(jù)reset7bits數(shù)據(jù)程序結(jié)構(gòu).四.實驗步驟.在QUARTUSII軟件下創(chuàng)立一工程,工程名為schk,芯片名為EP2C35F672C6;輸入串行檢測模塊,并命名為schk.v,保存在與工程相同的文件夾中;moduleschk(DIN,CLK,CLR,AB,Q);inputDIN,CLK,CLR;output[3:0]AB;output[7:0]Q;reg[7:0]Q;reg[3:0]AB;parameter idle=8'b00000000,a=8'b00000001,b=8'b00000010,c=8'b00000100,d=8'b00001000,e=8'b00010000,f=8'b00100000,g=8'b01000000,h=8'b10000000;parameterdata=8'b11100101;always@(posedgeCLKornegedgeCLR) if(!CLR)beginQ<=idle;endelsebegin case(Q) idle:begin if(DIN==data[7])Q<=a;elseQ<=idle;end a:begin if(DIN==data[6])Q<=b; elseQ<=idle;end b:begin if(DIN==data[5])Q<=c;elseQ<=idle;end c:begin if(DIN==data[4])Q<=d; elseQ<=idle;end d:begin if(DIN==data[3])Q<=e; elseQ<=idle;end e:begin if(DIN==data[2])Q<=f; elseQ<=idle;end f:begin if(DIN==data[1])Q<=g;elseQ<=idle;end g:begin if(DIN==data[0])Q<=h;elseQ<=idle;end default:Q<=idle; endcaseendalways@(Q)begin if(Q==h)AB<=4'b1010;elseAB<=4'b1011;endendmodule其功能仿真波形和時序仿真波形分別如下:結(jié)果分析如下:當(dāng)CLR有效時,連續(xù)8位DIN=11100101時,AB=1011=0x0A,連續(xù)8位DIN!=11100101時,AB=1011=0x0B,可知結(jié)果正確。輸入前端預(yù)置8位數(shù)據(jù)輸入程序并命名為xulie.v,保存在與工程相同的文件夾中。modulexulie(clk,din8,reset,din);inputclk;input[7:0]din8;inputreset;outputdin;parameters0=3'b000,s1=3'b001,s2=3'b010,s3=3'b011,s4=3'b100,s5=3'b101,s6=3'b110,s7=3'b111;reg[2:0]cur_state,next_state;regdin;always@(posedgeclkornegedgereset)if(!reset)cur_state<=s0;elsecur_state<=next_state;always@(cur_stateordin8ordin)begincase(cur_state) s0:begindin<=din8[7];next_state<=s1;end s1:begin din<=din8[6];next_state<=s2;end s2:begin din<=din8[5];next_state<=s3;end s3:begin din<=din8[4];next_state<=s4;end s4:begin din<=din8[3];next_state<=s5;end s5:begin din<=din8[2];next_state<=s6;end s6:begin din<=din8[1];next_state<=s7;end s7:begindin<=din8[0];next_state<=s0;enddefault:begindin<=1'b0;next_state<=s0;end endcase endendmodule其功能仿真波形和時序仿真波形分別如下:波形分析:當(dāng)復(fù)位信號無效,在時鐘脈沖作用下并行輸入的8bits數(shù)據(jù)轉(zhuǎn)為由din連續(xù)輸出的8字節(jié)數(shù)據(jù)。4數(shù)碼管顯示程序,將其命名為decl7s.v,保存在與工程相同的文件夾中。moduledecl7s(AB,LED7S);input[3:0]AB;output[6:0]LED7S;reg[6:0]LED7S;always@(AB)BeginLED7S={7{1'b0}};case(AB)4'b1010:LED7S[6:0]<=7'b0001000;4'b1011:LED7S[6:0]<=7'b0000011;4'b0000:LED7S[6:0]<=7'b0000000;default:LED7S[6:0]<={7{1'b0}};endcaseendendmodule其真值表如下列圖:輸入〔4bits〕輸出〔7bits〕顯示內(nèi)容4’b10107’b0001000a4’b10117’b0000011b4’b00007’b10000000其功能仿真波形和時序仿真波形分別如下所示:結(jié)果分析:當(dāng)輸入AB=1010時,LED7S=0001000,當(dāng)輸入AB=1011時,LED7S=0000011,和真值表相對應(yīng),由此可得,結(jié)果正確。5創(chuàng)立頂層文件,命名為XULIEQI.v,保存在與工程相同的文件夾中。moduleXULIEQI(clk,reset,din8,LED7S);inputclk;inputreset;input[7:0]din8;output[6:0]LED7S;wire[3:0]AB;xulieu1(clk,din8,reset,din);schku2(din,clk,reset,AB);decl7su3(AB,LED7S);endmodule其功能仿真波形和時序仿真波形分別如下所示:6鎖定引腳。根據(jù)DE2_pin_assignments文件內(nèi)容、格式制作本設(shè)計引腳對應(yīng)文件的引腳鎖定文件:XUELIEQI.csv,其中用KEY1〔PIN23〕控制復(fù)位信號RESET;KEY0〔PING26〕控制狀態(tài)機工作時鐘CLK;指示輸出AB接數(shù)碼管HEX0(PIN_AF10,PIN_AB12,PIN_AC12,PIN_AD11,PIN_AE11,PIN_V14,PIN_V13)。由Assignments->ImportAssignment,翻開對話框,調(diào)入引腳對應(yīng)文件XUELIEQI.csv即可。鎖好引腳,進(jìn)行全編譯〔compile〕,重新布局布線,時序仿真。引腳鎖定,仿真結(jié)果核對無誤后,準(zhǔn)備下載7下載后,按以下提示進(jìn)行操作:1〕、按實驗板“系統(tǒng)復(fù)位〞鍵;2〕、用SW0-SW7(PIN_N25,PIN_N26,PIN_P25,PIN_AE14,PIN_AF14,PIN_AD13,PIN_AC13,PIN_C13)鍵輸入待測序列數(shù)"11100101";、按下RESET鍵;4〕、按KEY0鍵〔時鐘clk輸入〕8次,這時假設(shè)串行輸入的8位二進(jìn)制序列碼與預(yù)置碼"11100101"相同,那么數(shù)碼管HEX0應(yīng)從原來的B變成A,表示序列檢測正確,否那么仍為B。8硬件操作結(jié)果:將sw7至sw0依次置位為11100101,按下KEY0鍵復(fù)位,再按KEY1鍵8次,數(shù)碼管由b轉(zhuǎn)換為A,得知結(jié)果正確。五思考題.說明代碼表達(dá)的是什么類型的狀態(tài)機,它的優(yōu)點是什么?詳述其功能和對序列數(shù)檢測的邏輯過程;答:本實驗代

溫馨提示

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

最新文檔

評論

0/150

提交評論