實(shí)驗(yàn)八狀態(tài)機(jī)邏輯電路設(shè)計(jì)_第1頁
實(shí)驗(yàn)八狀態(tài)機(jī)邏輯電路設(shè)計(jì)_第2頁
實(shí)驗(yàn)八狀態(tài)機(jī)邏輯電路設(shè)計(jì)_第3頁
實(shí)驗(yàn)八狀態(tài)機(jī)邏輯電路設(shè)計(jì)_第4頁
實(shí)驗(yàn)八狀態(tài)機(jī)邏輯電路設(shè)計(jì)_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、EDA課程課程 實(shí)驗(yàn)實(shí)驗(yàn)八八狀態(tài)機(jī)邏輯電路設(shè)計(jì)狀態(tài)機(jī)邏輯電路設(shè)計(jì)EDA課組一、實(shí)驗(yàn)?zāi)康模阂弧?shí)驗(yàn)?zāi)康模?、了解狀態(tài)機(jī)狀態(tài)機(jī)邏輯電路設(shè)計(jì)原理及邏輯電路設(shè)計(jì)原理及特點(diǎn);2、學(xué)習(xí)使用使用狀態(tài)機(jī)狀態(tài)機(jī)邏輯電路設(shè)計(jì)邏輯電路設(shè)計(jì)方法。二、實(shí)驗(yàn)內(nèi)容二、實(shí)驗(yàn)內(nèi)容2、通過仿真軟件進(jìn)行驗(yàn)證仿真通過仿真軟件進(jìn)行驗(yàn)證仿真 。1、 設(shè)計(jì)設(shè)計(jì)兩種兩種典型典型狀態(tài)機(jī)狀態(tài)機(jī)邏輯電路系統(tǒng)邏輯電路系統(tǒng); 在數(shù)字系統(tǒng)中,有限狀態(tài)機(jī)(FSM,Finite State Machine)是一類十分重要的時(shí)序電路。微控制器的核心就是FSM。因此學(xué)習(xí)FSM的原理及設(shè)計(jì)方法對(duì)于學(xué)習(xí)數(shù)字系統(tǒng)設(shè)計(jì)和理解計(jì)算機(jī)原理都有重要意義。 本章首先概要介紹F

2、SM的相關(guān)理論知識(shí),通過典型實(shí)例說明FSM的設(shè)計(jì)方法。1、FSM概念概念三、實(shí)驗(yàn)原理三、實(shí)驗(yàn)原理 有限狀態(tài)機(jī)由輸入和輸出和具有記憶功能的寄存器組有限狀態(tài)機(jī)由輸入和輸出和具有記憶功能的寄存器組成,寄存器用于寄存狀態(tài)機(jī)內(nèi)部狀態(tài),也稱成,寄存器用于寄存狀態(tài)機(jī)內(nèi)部狀態(tài),也稱狀態(tài)寄存器狀態(tài)寄存器。 狀態(tài)機(jī)的下一個(gè)狀態(tài)不僅與輸入信號(hào)有關(guān),還與該寄狀態(tài)機(jī)的下一個(gè)狀態(tài)不僅與輸入信號(hào)有關(guān),還與該寄存器的當(dāng)前狀態(tài)有關(guān),因此有限狀態(tài)機(jī)可看作是存器的當(dāng)前狀態(tài)有關(guān),因此有限狀態(tài)機(jī)可看作是組合邏組合邏輯與時(shí)序邏輯的一種組合輯與時(shí)序邏輯的一種組合。其中的時(shí)序邏輯功能是存儲(chǔ)。其中的時(shí)序邏輯功能是存儲(chǔ)有限狀態(tài)機(jī)的內(nèi)部狀態(tài);而組

3、合邏輯又可分為次態(tài)產(chǎn)生有限狀態(tài)機(jī)的內(nèi)部狀態(tài);而組合邏輯又可分為次態(tài)產(chǎn)生邏輯和輸出邏輯兩部分,次態(tài)產(chǎn)生邏輯的功能是確定有邏輯和輸出邏輯兩部分,次態(tài)產(chǎn)生邏輯的功能是確定有限狀態(tài)機(jī)的下一個(gè)狀態(tài),輸出邏輯功能是確定有限狀態(tài)限狀態(tài)機(jī)的下一個(gè)狀態(tài),輸出邏輯功能是確定有限狀態(tài)機(jī)的輸出。機(jī)的輸出。由于由于FSM的描述較為復(fù)雜,因此不能使用原理圖方法的描述較為復(fù)雜,因此不能使用原理圖方法進(jìn)行描述,而必須采用進(jìn)行描述,而必須采用Verilog HDL語言進(jìn)行行為級(jí)設(shè)語言進(jìn)行行為級(jí)設(shè)計(jì)。計(jì)。2、FSM組成組成思考一下電梯運(yùn)動(dòng)控制過程? 電梯從一樓到頂樓是一系列樓層,電梯到達(dá)每一層要顯示該層樓層信息,還要由乘坐人控制

4、去那一層,在經(jīng)過的樓層還要判斷是否有相同方向的人乘坐,這一系列控制判斷過程如何設(shè)計(jì)呢?一層二層三層四層N層將整個(gè)電梯控制過程運(yùn)行狀態(tài)分解為將整個(gè)電梯控制過程運(yùn)行狀態(tài)分解為N個(gè)狀態(tài),在每個(gè)狀態(tài)下決定下一步個(gè)狀態(tài),在每個(gè)狀態(tài)下決定下一步如何控制,這就是將復(fù)雜狀態(tài)的運(yùn)動(dòng)過程分解為一系列狀態(tài)過程,這就是如何控制,這就是將復(fù)雜狀態(tài)的運(yùn)動(dòng)過程分解為一系列狀態(tài)過程,這就是狀態(tài)機(jī)設(shè)計(jì)思想。狀態(tài)機(jī)設(shè)計(jì)思想。有限狀態(tài)機(jī)是一個(gè)廣義的時(shí)序電路,它能將復(fù)雜邏輯分解為眾多狀態(tài)來完成,有限狀態(tài)機(jī)是一個(gè)廣義的時(shí)序電路,它能將復(fù)雜邏輯分解為眾多狀態(tài)來完成,使復(fù)雜邏輯層次分明,是設(shè)計(jì)復(fù)雜電路的方法。使復(fù)雜邏輯層次分明,是設(shè)計(jì)復(fù)雜

5、電路的方法。根據(jù)輸入與輸出機(jī)狀態(tài)之間的關(guān)系,狀態(tài)機(jī)分為兩類:摩爾型(根據(jù)輸入與輸出機(jī)狀態(tài)之間的關(guān)系,狀態(tài)機(jī)分為兩類:摩爾型(moore)狀態(tài))狀態(tài)機(jī)和米里型(機(jī)和米里型(Mealy)。)。摩爾型(摩爾型(Moore)狀態(tài)機(jī))狀態(tài)機(jī) 米里型(米里型(Mealy)狀態(tài)機(jī))狀態(tài)機(jī) 3、FSM原理框圖原理框圖三、實(shí)驗(yàn)步驟三、實(shí)驗(yàn)步驟1、序列檢測(cè)器的設(shè)計(jì)序列檢測(cè)器是一種用來監(jiān)測(cè)一組或多組序列信號(hào)的電路,在數(shù)據(jù)通信、雷達(dá)、遙感、遙測(cè)等領(lǐng)域中廣泛應(yīng)用,主要用于檢測(cè)同步識(shí)別標(biāo)志。下面通過Mealy型狀態(tài)機(jī)設(shè)計(jì)由輸入信號(hào)中檢測(cè)010序列,狀態(tài)編碼采用格雷編碼。dinclkresetdouts0s2s11/00/

6、11/01/00/00/0框圖狀態(tài)圖狀態(tài)表s下一狀態(tài)下一狀態(tài)din=0din=1s0=00s1 ,0s0 ,0s1=01s1 ,0s2 ,0s2=11s1 ,1s0 ,0din 001010101由輸入信號(hào)檢測(cè)010序列Verilong程序module mealyfsm(clk,reset,din,dout, cs_state,ns_state);output dout;output 1:0 cs_state,ns_state;input clk,reset,din;reg dout;/用格雷碼編碼聲明狀態(tài)值parameter 1:0 s0=2b00,s1=2b01,s2=2b11;reg 1

7、:0cs,ns;assign cs_state=cs,ns_state=ns;always(posedge clk,posedge reset)begin if(reset=1b1) /異步復(fù)位,高電平有效 cs=s0;else cs=ns; end/次態(tài)計(jì)算及輸出信號(hào)產(chǎn)生,always(cs,din) case(cs)s0:begin dout=1b0; if(din=1bx)ns=s0; else ns=(din)?s0:s1; end s1:begin dout=1b0; ns=(!din)?s1:s2; end s2:begin dout=(din)?1b0:1b1; ns=(din)

8、?s0:s1; end default:begin dout=1b0; ns=s0; end endcaseendmodulemealy型狀態(tài)機(jī)仿真結(jié)果可見輸出可見輸出dout和次態(tài)和次態(tài)ns均由當(dāng)前狀態(tài)均由當(dāng)前狀態(tài)cs和輸入和輸入din共同決定。這是共同決定。這是mealy狀狀態(tài)機(jī)特點(diǎn)。態(tài)機(jī)特點(diǎn)。din 001010101din輸入數(shù)據(jù)頻率要小于時(shí)鐘頻率才能準(zhǔn)確檢測(cè)相應(yīng)數(shù)據(jù)位輸入數(shù)據(jù)頻率要小于時(shí)鐘頻率才能準(zhǔn)確檢測(cè)相應(yīng)數(shù)據(jù)位!s0s2s11/00/11/01/00/00/0給定din(01000101)檢測(cè)結(jié)果01001001dout顯示的脈沖都是在檢測(cè)最后一個(gè)數(shù)對(duì)應(yīng)時(shí)鐘上升沿時(shí)結(jié)束,當(dāng)輸顯示

9、的脈沖都是在檢測(cè)最后一個(gè)數(shù)對(duì)應(yīng)時(shí)鐘上升沿時(shí)結(jié)束,當(dāng)輸入的數(shù)據(jù)在一個(gè)時(shí)鐘內(nèi)反復(fù)變化將導(dǎo)致時(shí)鐘周期內(nèi)的次態(tài)跟著變化,入的數(shù)據(jù)在一個(gè)時(shí)鐘內(nèi)反復(fù)變化將導(dǎo)致時(shí)鐘周期內(nèi)的次態(tài)跟著變化,而現(xiàn)態(tài)沒有變化,這就檢測(cè)不出所要的數(shù)據(jù)。時(shí)鐘周期相當(dāng)于數(shù)據(jù)檢而現(xiàn)態(tài)沒有變化,這就檢測(cè)不出所要的數(shù)據(jù)。時(shí)鐘周期相當(dāng)于數(shù)據(jù)檢測(cè)的時(shí)間分辨率。測(cè)的時(shí)間分辨率。2、二進(jìn)制乘法器設(shè)計(jì):、二進(jìn)制乘法器設(shè)計(jì): 實(shí)現(xiàn)兩個(gè)實(shí)現(xiàn)兩個(gè)8位二進(jìn)制數(shù)的乘法運(yùn)算,被乘數(shù)(位二進(jìn)制數(shù)的乘法運(yùn)算,被乘數(shù)(mcnd)和乘數(shù)(和乘數(shù)(mplr)存放存放在寄存器在寄存器mcnd_temp和和acc7:0中,乘積為中,乘積為16進(jìn)制數(shù),運(yùn)算完后存放在進(jìn)制數(shù),運(yùn)算完

10、后存放在16位位寄存器寄存器acc15:0中。中。shiftaddcomp1initcount8遞增countacc右移復(fù)位acc初始化countreset=1reset=0如果acc0=1將mcnd加到acc輸出done=1count=8乘法狀態(tài)機(jī)的狀態(tài)圖乘法狀態(tài)機(jī)的狀態(tài)圖狀態(tài)機(jī)模型開始處于狀態(tài)機(jī)模型開始處于init狀態(tài),并且只要復(fù)位信號(hào)狀態(tài),并且只要復(fù)位信號(hào)reset為高電平,就停留在為高電平,就停留在該狀態(tài)。當(dāng)該狀態(tài)。當(dāng)reset為為0時(shí),累加器時(shí),累加器acc清零,計(jì)數(shù)器清零,計(jì)數(shù)器count被復(fù)位,被乘數(shù)被復(fù)位,被乘數(shù)mcnd和乘數(shù)和乘數(shù)mplr被加載到寄存器被加載到寄存器mcnd_

11、temp和和acc的低的低8位中,然后進(jìn)入位中,然后進(jìn)入add狀態(tài)。狀態(tài)。當(dāng)處于當(dāng)處于add狀態(tài)時(shí),只要當(dāng)乘數(shù)的最低位(狀態(tài)時(shí),只要當(dāng)乘數(shù)的最低位(acc0)為)為1時(shí),將被乘數(shù)加到部時(shí),將被乘數(shù)加到部分積(分積(acc的高八位)中,然后進(jìn)入到的高八位)中,然后進(jìn)入到shift狀態(tài)中。狀態(tài)中。在在shift狀態(tài)時(shí),將部分積(狀態(tài)時(shí),將部分積(acc)右移一位,并將計(jì)數(shù)器()右移一位,并將計(jì)數(shù)器(count)加)加1,如,如果計(jì)數(shù)器值為果計(jì)數(shù)器值為8,則進(jìn)入,則進(jìn)入compl狀態(tài);如果計(jì)數(shù)器值小于狀態(tài);如果計(jì)數(shù)器值小于8,則返回到,則返回到add狀態(tài)狀態(tài)進(jìn)行下一輪移位相加直到計(jì)數(shù)器值變?yōu)檫M(jìn)行下一

12、輪移位相加直到計(jì)數(shù)器值變?yōu)?。compl狀態(tài)表示運(yùn)算完成,將輸出使能信號(hào)狀態(tài)表示運(yùn)算完成,將輸出使能信號(hào)done置為高,此時(shí)置為高,此時(shí)acc內(nèi)存放的內(nèi)存放的即為乘法器運(yùn)算的結(jié)果,然后返回即為乘法器運(yùn)算的結(jié)果,然后返回init狀態(tài)。狀態(tài)。shiftaddcomp1initcount8遞增countacc右移復(fù)位acc初始化countreset=1reset=0如果acc0=1將mcnd加到acc輸出done=1count=8乘法器狀態(tài)機(jī)Verilog程序module multi8(mplr,mcnd,clk,reset,done,acc,count, mul_state,next_state)

13、; output done; output 15:0 acc; output 3:0 count; output 1:0 mul_state,next_state; input 7:0 mplr,mcnd; input clk,reset; reg 15:0 acc; reg 1:0 cs,ns; reg7:0 mcnd_temp; reg3:0 count; reg done;/定義狀態(tài)編碼為格雷碼parameter 1:0 init=2b00,add=2b01,shift=2b11,compl=2b10;assign mul_state=cs;/方便查看狀態(tài)機(jī)狀態(tài)轉(zhuǎn)換過程assign ne

14、xt_state=ns;always (negedge clk,posedge reset) if(reset) cs=init; else cs=ns;乘法器狀態(tài)機(jī)Verilog程序/次態(tài)計(jì)算always(cs)begincase(cs) init:ns=add; add:ns=shift; /當(dāng)count由07變化剛好移動(dòng)8次,完成8為乘法運(yùn)算 shift:if(count=4b0111)ns=compl; else ns=add; compl:ns=init; endcaseend/產(chǎn)生輸出信號(hào)always(negedge clk) case(cs) init:begin acc15:8=8b0000_0000; acc7:0=mplr; done=1b0; mcnd_temp7:0=mcnd; count=3b000; end/判斷乘數(shù)最高位是否為1,/則將被乘數(shù)加到部分積中add:if(acc0=1b1) acc=acc+mcnd_temp,8b0000_

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論