HDLBits (131) — 旅鼠 4
本題鏈接:
https://hdlbits.01xz.net/wiki/Lemmings4
另見:Lemmings1、Lemmings2 和 Lemmings3

雖然旅鼠可以行走、跌落和挖掘,但旅鼠并非無懈可擊。 如果旅鼠跌落太久然后撞到地面,它可能會飛濺。 特別是,如果旅鼠跌落超過 20 個時鐘周期然后撞到地面,它會飛起并永遠(或直到有限狀態(tài)機重置)停止行走、跌落或挖掘(所有 4 個輸出變?yōu)?0)。 旅鼠在落地前可以墜落的距離沒有上限。 旅鼠只有在落地時才會飛起; 它們不會在半空中飛起。
擴展你的有限狀態(tài)機來模擬這種行為。
跌落20個周期是可以存活的:

跌落?21 個周期會導致飛起:


題目
提示:
使用有限狀態(tài)機控制跟蹤旅鼠下落時間的計數(shù)器


答案

輸出波形


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