用狀態(tài)機實現(xiàn)序列檢測器的設(shè)計_第1頁
用狀態(tài)機實現(xiàn)序列檢測器的設(shè)計_第2頁
用狀態(tài)機實現(xiàn)序列檢測器的設(shè)計_第3頁
用狀態(tài)機實現(xiàn)序列檢測器的設(shè)計_第4頁
用狀態(tài)機實現(xiàn)序列檢測器的設(shè)計_第5頁
已閱讀5頁,還剩4頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、1. 掌握基于語言的ISE設(shè)計全流程;實驗三:用狀態(tài)機實現(xiàn)序列檢測器的設(shè)計1、 實驗?zāi)康?. 用狀態(tài)機實現(xiàn)序列檢測器的設(shè)計,并對其進行仿真和硬件測試。3. 掌握基于語言的ISE設(shè)計全流程;4. 熟悉、應(yīng)用VerilogHDL描述數(shù)字電路;2、 實驗原理與設(shè)計過程(1) 實驗內(nèi)容:序列檢測器可用于檢測一組或多組由二進制碼組成的脈沖序列信號,當序列檢測器連續(xù)收到一組串行二進制碼后,如果這組碼與檢測器中預(yù)先設(shè)置的碼相同,則輸出A,否則輸出b。由于這種檢測的關(guān)鍵在于正確碼的收到必須是連續(xù)的,這就要求檢測器必須記住前一次的正確碼及正確序列,直到在連續(xù)的檢測中所收到的每一位碼都與預(yù)置數(shù)的對應(yīng)碼相同。在檢測

2、過程中,任何一位不相等都將回到初始狀態(tài)重新開始檢測。例3-1描述的電路完成對序列數(shù)"11100101"的。當這一串序列數(shù)高位在前(左移)串行進入檢測器后,若此數(shù)與預(yù)置的密碼數(shù)相同,則輸出“A”,否則仍然輸出“b”。(2) 本次實驗的核心是:應(yīng)用有限狀態(tài)機的設(shè)計思路,檢測輸入的串行數(shù)據(jù)是否是8b11100101。根據(jù)下載電路板的資源,擬用SW3-SW0,J4接口的E8,F8,C7,D7作為系統(tǒng)輸入(系統(tǒng)由此需要設(shè)計一個8bits并行數(shù)據(jù)轉(zhuǎn)串行的模塊),一個7段數(shù)碼顯示譯碼器作為檢測結(jié)果的輸出顯示,如果串行序列為”11100101”,顯示A,否則顯示b(系統(tǒng)需要設(shè)計一個7段數(shù)碼

3、顯示譯碼器模塊),為了顯示可控,清晰,擬用V16,D18實現(xiàn)時鐘,復(fù)位信號的輸入。(3) 設(shè)計參考:本實驗由頂層文件、串行檢測、并行數(shù)據(jù)轉(zhuǎn)串行、數(shù)碼管顯示四個模塊組成:a) 系統(tǒng)共包括4個模塊:并行數(shù)據(jù)轉(zhuǎn)串行數(shù)據(jù)模塊、串行檢測模塊、數(shù)碼管顯示模塊、消抖模塊。由于需要用按鍵V16作為時鐘輸入,為保證實驗效果,調(diào)用實驗二中應(yīng)用的消抖模塊,對時鐘clk輸入信號進行消抖。b) 對于并行數(shù)據(jù)轉(zhuǎn)串行數(shù)據(jù)模塊輸入輸出端口說明:i. clk-系統(tǒng)時鐘,由按鍵V16通過消抖模塊后提供。ii. din8-8bits輸入數(shù)據(jù),需在時鐘控制下,串行輸出。iii. reset-系統(tǒng)復(fù)位信號,當reset=1b1時,系統(tǒng)

4、輸出復(fù)位,否則系統(tǒng)正常工作。iv. din-1bit輸出信號。該并行模塊的設(shè)計如下:module xulie_u1(clk,din8,reset,din );input clk;input7:0 din8;input reset;output din;parameter s0 = 3'b000, s1 = 3'b001, s2 = 3'b010, s3 = 3'b011, s4 = 3'b100, s5 = 3'b101, s6 = 3'b110, s7 = 3'b111;reg2:0 cur_state,next_state;r

5、eg din;always (posedge clk or posedge reset) if(reset) cur_state <= s0; else cur_state <= next_state;always (cur_state or din8 or din )begin case (cur_state) s0 : begin din <= din87; next_state <= s1; end s1 : begin din <= din86; next_state <= s2; end s2 : begin din <= din85; ne

6、xt_state <= s3; end s3 : begin din <= din84; next_state <= s4; end s4 : begin din <= din83; next_state <= s5; end s5 : begin din <= din82; next_state <= s6; end s6 : begin din <= din81; next_state <= s7; ends7 : begin din <= din80; next_state <= s0; end default : beg

7、in din <= 1'b0; next_state <= s0; endendcaseendendmodule(4) 對于串行檢測模塊其輸入輸出端口說明如下:a) din-1bit的串行輸入數(shù)據(jù)b) clk-同步輸入時鐘c) clr -異步清零信號,當CLR=1,系統(tǒng)輸出置0,否則,系統(tǒng)正常工作d) AB-4bits數(shù)據(jù),如果系統(tǒng)檢測到8b11100101的串行輸入,AB=4b1010,否則,AB=4b1011.e) 其設(shè)計代碼如下:module schk_u2(din,clk,reset,AB);input din;input clk;input reset;outpu

8、t3:0 AB;reg3:0 AB;reg3:0 current_state,next_state;parameter st0=4'b0000,st1=4'b0001,st2=4'b0010,st3=4'b0011,st4=4'b0100,st5=4'b0101,st6=4'b0110,st7=4'b0111,st8=4'b1000;always (posedge clk or posedge reset)beginif(reset)current_state<=st0;elsecurrent_state<=n

9、ext_state;endalways (current_state or din)begincase(current_state)st0:begin AB<=4'b1011; next_state<=(din=1)?st1:st0;endst1:begin AB<=4'b1011; next_state<=(din=1)?st2:st0;endst2:begin AB<=4'b1011; next_state<=(din=1)?st3:st0;endst3:begin AB<=4'b1011; next_state&l

10、t;=(din=0)?st4:st3;endst4:begin AB<=4'b1011; next_state<=(din=0)?st5:st1;endst5:begin AB<=4'b1011; next_state<=(din=1)?st6:st0;endst6:begin AB<=4'b1011; next_state<=(din=0)?st7:st1;endst7:begin if(din=1)begin AB<=4'b1010;next_state<=st8;endelsebegin AB<=4&#

11、39;b1011;next_state<=st0;endendst8:begin AB<=4'b1011; next_state<=(din=1)?st1:st0;endendcaseendendmodule(5) 其中最后的LED驅(qū)動模塊不做過多說明,只是簡單的設(shè)計如下:module decled7s_u3(AB,led7 ); input3:0 AB; output6:0 led7; reg6:0 led7; wire3:0 AB; initial led7=7'b0000000; always (AB) begin case(AB) 4'b101

12、0:led7<=7'b1110111; 4'b1011:led7<=7'b1111100; default:led7<=7'b0111111; endcase endEndmodule·(六)最終加入消抖模塊綜合結(jié)果如下:(7) 綜合模塊代碼:module XULIEQI(clk_50M,clk1,reset,din8,led7 );input clk_50M,clk1;input reset;input 7:0 din8;output 6:0 led7;wire 3:0 AB;wire din,clk;debounce_module

13、 u1(clk_50M,reset,clk1,clk);xulie_u1 u2(clk, din8, reset, din);schk_u2 u3(din,clk,reset,AB);decled7s_u3 u4(AB,led7);endmodule3、 實驗仿真(1) 根據(jù)實驗過程綜合程序結(jié)果:(2) 實驗引腳約束文件如下:NET "clk1" LOC = "V16" |PULLDOWN ;NET "clk_50M" LOC = "C9" ;NET "din80" LOC = "D7

14、" ;NET "din81" LOC = "C7" ;NET "din82" LOC = "F8" ;NET "din83" LOC = "E8" ;NET "din84" LOC = "L13" ;NET "din85" LOC = "L14" ;NET "din86" LOC = "H18" ;NET "din87" LOC

15、 = "N17" ;NET "led70" LOC = "D5" ;NET "led71" LOC = "C5" ;NET "led72" LOC = "B6" ;NET "led73" LOC = "E7" ;NET "led74" LOC = "F7" ;NET "led75" LOC = "A4" ;NET "led76" LOC = "B4" ;NET "reset" LOC = "D18" ;NET "clk1" CLOCK_DEDICATED_ROUTE=FALSE;(3) 并行模塊的時序仿真情況為:(4) 串行檢測模塊的相應(yīng)仿真:四、思考題本次實驗的設(shè)計代碼表達的是Moore類型的狀態(tài)機它的輸出信號僅與當前的狀態(tài)有關(guān),與當前的輸入無關(guān)。reset=0時,當

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論