HDLBits (149) — 問題2b 獨(dú)熱編碼有限狀態(tài)機(jī)方程
本題鏈接:
https://hdlbits.01xz.net/wiki/Exams/2012_q2b
這個(gè)問題的狀態(tài)圖如下圖所示

假設(shè)在狀態(tài)分配 y[5:0] = 000001(A), 000010(B), 000100(C), 001000(D), 010000(E), 100000(F) 中使用獨(dú)熱編碼代碼
為信號 Y1 寫一個(gè)邏輯表達(dá)式,它是狀態(tài)觸發(fā)器 y[1] 的輸入。
為信號 Y3 寫一個(gè)邏輯表達(dá)式,它是狀態(tài)觸發(fā)器 y[3] 的輸入。
(通過假設(shè)獨(dú)熱編碼的檢查推導(dǎo)出邏輯方程。?testbench?將使用非獨(dú)熱編碼輸入進(jìn)行測試,以確保你不會嘗試做更復(fù)雜的事情)。

題目
提示:
單熱狀態(tài)轉(zhuǎn)換邏輯的邏輯方程可以通過查看狀態(tài)轉(zhuǎn)換圖的邊緣來導(dǎo)出。

答案

獨(dú)熱編碼即 One-Hot 編碼,又稱一位有效編碼,其方法是使用N位狀態(tài)寄存器來對N個(gè)狀態(tài)進(jìn)行編碼,每個(gè)狀態(tài)都由他獨(dú)立的寄存器位,并且在任意時(shí)候,其中只有一位有效。
有限狀態(tài)機(jī)(Finite-State Machine,F(xiàn)SM),簡稱狀態(tài)機(jī),是表示有限個(gè)狀態(tài)以及在這些狀態(tài)之間的轉(zhuǎn)移和動(dòng)作等行為的數(shù)學(xué)模型。狀態(tài)機(jī)不僅是一種電路的描述工具,而且也是一種思想方法,在電路設(shè)計(jì)的系統(tǒng)級和?RTL 級有著廣泛的應(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ī)。
參考內(nèi)容:
6.3 Verilog 狀態(tài)機(jī)?| 菜鳥教程:
https://www.runoob.com/w3cnote/verilog-fsm.html