HDLBits (151) — 問題2b 另一個有限狀態(tài)機(jī)
本題鏈接:
https://hdlbits.01xz.net/wiki/Exams/2013_q2bfsm
思考一個用于控制某種電機(jī)的有限狀態(tài)機(jī)。? 有限狀態(tài)機(jī)有來自電機(jī)的輸入 x 和 y,并產(chǎn)生控制電機(jī)的輸出 f 和 g。 還有一個稱為 clk 的時鐘輸入和一個稱為 resetn 的復(fù)位輸入。
有限狀態(tài)機(jī)必須按如下方式工作。 只要復(fù)位輸入有效,有限狀態(tài)機(jī)就保持在稱為狀態(tài) A 的起始狀態(tài)。當(dāng)復(fù)位信號無效時,在下一個時鐘沿之后,有限狀態(tài)機(jī)必須在一個時鐘周期內(nèi)將輸出 f 設(shè)置為 1? . 然后,有限狀態(tài)機(jī)必須一直監(jiān)控 x 的輸入。 當(dāng) x 在三個連續(xù)的時鐘周期中值為 1、0、1 時,應(yīng)在下一個時鐘周期將 g 設(shè)置為 1。 在保持 g = 1 的同時,有限狀態(tài)機(jī)必須一直監(jiān)控輸入?y?。 如果 y 在最多兩個時鐘周期內(nèi)為 1,則有限狀態(tài)機(jī)應(yīng)永久保持 g = 1(即一直保持到復(fù)位)。 但如果 y 在兩個時鐘周期內(nèi)未變?yōu)?1,則有限狀態(tài)機(jī)應(yīng)永久設(shè)置 g = 0(直到復(fù)位)。
(最初的考試問題只要求提供狀態(tài)圖。但在這里需要實現(xiàn)有限狀態(tài)機(jī)。)

題目
提示:
有限狀態(tài)機(jī)直到 f 為 1 的周期之后才開始監(jiān)視 x 輸入。

答案

有限狀態(tài)機(jī)(Finite-State Machine,F(xiàn)SM),簡稱狀態(tài)機(jī),是表示有限個狀態(tài)以及在這些狀態(tài)之間的轉(zhuǎn)移和動作等行為的數(shù)學(xué)模型。狀態(tài)機(jī)不僅是一種電路的描述工具,而且也是一種思想方法,在電路設(shè)計的系統(tǒng)級和 RTL 級有著廣泛的應(yīng)用。
Verilog 中狀態(tài)機(jī)主要用于同步時序邏輯的設(shè)計,能夠在有限個狀態(tài)之間按一定要求和規(guī)律切換時序電路的狀態(tài)。狀態(tài)的切換方向不但取決于各個輸入值,還取決于當(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