1. 程式人生 > >關於一段式、兩段式、三段式狀態機

關於一段式、兩段式、三段式狀態機

關於一段式、兩段式、三段式狀態機

 

       FPGA工程師無時無刻不在接觸狀態機,那麼狀態機的編寫到底用幾段式呢,這個問題會一直困擾FPGA的初學者,而問題的答案似乎都很古老,傳統的建議是用二段式或者三段式狀態機。

       首先解釋一下為什麼傳統建議使用二段式或者三段式狀態機,因為以前的綜合工具還不夠強大,如果採用一段式編寫狀態機,組合電路和時序電路在一段程式碼塊裡,不利於電路的優化;而兩段式、三段式狀態機將組合電路、時序電路分開,便於電路的優化。

       當然,隨著工具的進步,現在採用幾段式編寫狀態機已經沒有那麼大的影響,反而一段式狀態機能夠有效避免毛刺和競爭的出現,更適合初學者或者除錯初期使用。在編寫兩段式、三段式狀態機的時候,應該注意毛刺和競爭的產生,在可能的情況下將輸出暫存器化。