HDLBits (127) — 設(shè)計(jì)一個(gè) Moore 型有限狀態(tài)機(jī)
本題鏈接:
https://hdlbits.01xz.net/wiki/Exams/ece241_2013_q4
一個(gè)大型水庫(kù)會(huì)為幾個(gè)用戶提供服務(wù)。 為了保持足夠高的水位,三個(gè)傳感器以 5 英寸的間隔垂直放置。 當(dāng)水位高于最高傳感器 (S3) 時(shí),輸入流量應(yīng)為零。 當(dāng)液位低于最低傳感器 (Si) 時(shí),流速應(yīng)為最大(標(biāo)稱流量閥和補(bǔ)充流量閥均打開)。 水位在上下兩個(gè)傳感器之間時(shí)的流速由兩個(gè)因素決定:現(xiàn)在的水位和上次傳感器變化之前的水位。 每個(gè)水位都有一個(gè)與之相關(guān)的標(biāo)稱流速,如下表所示。 如果傳感器變化表明之前的液位低于當(dāng)前液位,則應(yīng)采用標(biāo)稱流速。 如果之前的液位高于當(dāng)前液位,則應(yīng)通過打開補(bǔ)充流量閥(由 AFR 控制)來(lái)增加流量。
蓄水池控制器的?Moore 型模型狀態(tài)圖已經(jīng)繪制好禮。?它清楚地指示了每個(gè)狀態(tài)的所有狀態(tài)轉(zhuǎn)換和輸出。? FSM 的輸入分別是 Si、Sz 和 Ss; 輸出分別是?FR1、FR2、FR3 和 AFR。

這里還包括一個(gè)高電平有效同步復(fù)位,它將狀態(tài)機(jī)復(fù)位到相當(dāng)于水位長(zhǎng)時(shí)間處于低位的狀態(tài)(沒有傳感器斷言,并且所有四個(gè)輸出都斷言)。

題目

答案

輸出波形


有限狀態(tài)機(jī)(Finite-State Machine,F(xiàn)SM),簡(jiǎn)稱狀態(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ī)。
Moore 型狀態(tài)機(jī)
Moore 型狀態(tài)機(jī)的輸出只與當(dāng)前狀態(tài)有關(guān),與當(dāng)前輸入無(wú)關(guān)。
輸出會(huì)在一個(gè)完整的時(shí)鐘周期內(nèi)保持穩(wěn)定,即使此時(shí)輸入信號(hào)有變化,輸出也不會(huì)變化。輸入對(duì)輸出的影響要到下一個(gè)時(shí)鐘周期才能反映出來(lái)。這也是 Moore 型狀態(tài)機(jī)的一個(gè)重要特點(diǎn):輸入與輸出是隔離開來(lái)的。

參考內(nèi)容:
6.3 Verilog 狀態(tài)機(jī)?| 菜鳥教程:
https://www.runoob.com/w3cnote/verilog-fsm.html