24小時聯系電話:18217114652、13661815404
中文
行業資訊
比較二進制,灰度和一鍵編碼
有限狀態機(FSM)是幾乎每個數字系統中非常常見的部分。這就是為什么綜合工具通常會檢查您的代碼以檢測FSM并執行可能會修改狀態編碼的優化。無論您是否仔細選擇并指定了在源代碼中實現狀態的值都沒有關系,綜合工具可以將這些值替換為甚至可能具有與原始編碼不同的位長的其他值。
狀態編碼:灰色vs.二進制vs.一鍵
用于FSM狀態的三種最受歡迎的編碼是二進制,格雷和單發。
二進制編碼
二進制編碼是在將值順序分配給狀態時可以直觀使用的簡單方法。這樣,您將使用盡可能少的位來編碼狀態。
一鍵編碼的示例。
灰色編碼
格雷碼由一個序列組成,在一個序列中,一個值與下一個值之間只有一位發生變化。除了還使用最少的位數之外,如果狀態序列得到最佳遵循,則此編碼還可將動態功耗降至最低。
格雷碼輪。
一鍵編碼
最后,單次熱編碼包括使用一個代表每個狀態的位,以便在任何時間點,一個狀態將被編碼為代表當前狀態的位為1,并被編碼為所有其他位的0。起初,由于使用的位數和無效狀態的過多,這似乎不太有效。但是,單熱編碼非常適合簡化觸發器的激勵邏輯,因為無需解碼狀態。這些位是 狀態。
一鍵編碼的示例。
哪種編碼最好?
這是一個棘手的問題,主要是因為每種編碼都有其優點和缺點,因此可以歸結為取決于許多因素的優化問題。
如果一個非常簡單的系統在各種編碼方式下產生非常相似的結果,則原始編碼是最佳選擇。
如果FSM在一條路徑(如計數器)中循環通過其狀態,則格雷碼是一個很好的選擇。
如果FSM具有任意狀態轉換集或預期在高頻下運行,則可能要采用單熱編碼。
現在,所有這些主張只是有根據的猜測,而找到最佳狀態分配是一個復雜的問題。