HDLBits (142) — 問題3a 有限狀態(tài)機(jī)
本題鏈接:
https://hdlbits.01xz.net/wiki/Exams/2014_q3fsm
設(shè)計(jì)一個(gè)輸入 s 和 w 的有限狀態(tài)機(jī)。 假設(shè)有限狀態(tài)機(jī)以稱為 A 的復(fù)位狀態(tài)開始,如下圖所示。 只要 s = 0,有限狀態(tài)機(jī)就保持在狀態(tài) A,當(dāng) s = 1 時(shí),它移動(dòng)到狀態(tài) B。一旦處于狀態(tài) B,有限狀態(tài)機(jī)在接下來的三個(gè)時(shí)鐘周期內(nèi)檢查輸入 w 的值。 如果 w = 1 時(shí)在恰好兩個(gè)時(shí)鐘周期中,則有限狀態(tài)機(jī)必須在下一個(gè)時(shí)鐘周期中將輸出 z 設(shè)置為 1。 否則 z 必須為 0。有限狀態(tài)機(jī)在接下來的三個(gè)時(shí)鐘周期內(nèi)繼續(xù)檢查 w,依此類推。 下面的時(shí)序圖說明了不同 w 值所需的 z 值。
在設(shè)計(jì)時(shí)使用盡可能少的狀態(tài)。 請(qǐng)注意,輸入 s 僅在狀態(tài) A 中使用,因此只需考慮輸入 w。



題目

答案

有限狀態(tài)機(jī)(Finite-State Machine,F(xiàn)SM),簡稱狀態(tài)機(jī),是表示有限個(gè)狀態(tài)以及在這些狀態(tài)之間的轉(zhuǎn)移和動(dòng)作等行為的數(shù)學(xué)模型。狀態(tài)機(jī)不僅是一種電路的描述工具,而且也是一種思想方法,在電路設(shè)計(jì)的系統(tǒng)級(jí)和 RTL 級(jí)有著廣泛的應(yīng)用。
Verilog 中狀態(tài)機(jī)主要用于同步時(shí)序邏輯的設(shè)計(jì),能夠在有限個(gè)狀態(tài)之間按一定要求和規(guī)律切換時(shí)序電路的狀態(tài)。狀態(tài)的切換方向不但取決于各個(gè)輸入值,還取決于當(dāng)前所在狀態(tài)。狀態(tài)機(jī)可分為 2 類:Moore?狀態(tài)機(jī)和?Mealy?狀態(tài)機(jī)。
參考內(nèi)容:
6.3 Verilog 狀態(tài)機(jī)?| 菜鳥教程:
https://www.runoob.com/w3cnote/verilog-fsm.html