HDLBits (130) — 旅鼠 3
本題鏈接:
https://hdlbits.01xz.net/wiki/Lemmings3

除了走路和摔倒之外,旅鼠有時會被告知做一些有用的事情,比如挖掘(當(dāng) dig=1 時它開始挖掘)。 如果旅鼠當(dāng)前在地面上行走(ground=1 并且沒有下落),它可以挖掘,并且會繼續(xù)挖掘直到它到達(dá)另一邊的盡頭(ground=0)。 到那時,由于沒有地面,它會掉下來(aaah!),然后一旦再次撞到地面,就繼續(xù)沿原來的方向行走。 與墜落一樣,挖掘時被撞到時沒有效果,并且在墜落或沒有地面時被告知挖掘被忽略。
(換而言之,一只行走的旅鼠可以跌倒、挖掘或切換方向。如果滿足這些條件中的一個以上,則跌倒的優(yōu)先級高于挖掘,挖掘的優(yōu)先級高于切換方向。)
?擴(kuò)展你的有限狀態(tài)機(jī)來模擬這種行為。

另見:Lemmings4

題目
提示:


答案

輸出波形


有限狀態(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