HDLBits (132) — 獨熱編碼有限狀態(tài)機
本題鏈接:
https://hdlbits.01xz.net/wiki/Fsm_onehot
給定以下具有 1 個輸入和 2 個輸出的狀態(tài)機:

假設此狀態(tài)機使用獨熱編碼,其中 state[0] 到 state[9] 分別對應于狀態(tài) S0 到 S9。 除非另有說明,否則輸出為零。
實現(xiàn)狀態(tài)機的狀態(tài)轉換邏輯和輸出邏輯部分(但不是狀態(tài)觸發(fā)器)。 您在 state[9:0] 中獲得當前狀態(tài),并且必須生成 next_state[9:0] 和兩個輸出。 根據(jù)獨熱編碼推導邏輯方程。? (測試臺將不使用獨熱編碼輸入進行測試,以確保您不會嘗試做更復雜的事情)。

題目
提示:
獨熱編碼轉換邏輯的邏輯方程可以通過查看狀態(tài)轉換圖的邊緣來得到。

答案

輸出波形


獨熱編碼即 One-Hot 編碼,又稱一位有效編碼,其方法是使用N位狀態(tài)寄存器來對N個狀態(tài)進行編碼,每個狀態(tài)都由他獨立的寄存器位,并且在任意時候,其中只有一位有效。
有限狀態(tài)機(Finite-State Machine,F(xiàn)SM),簡稱狀態(tài)機,是表示有限個狀態(tài)以及在這些狀態(tài)之間的轉移和動作等行為的數(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