編碼狀態機我在找到創造VHDL一個系統,它接收通過一個FTDI USB到串行設備後濾波的圖像。作爲其中的一部分,我相信我已經確定了我的CPLD應該處於的狀態,但是我從來沒有用VHDL創建複雜的狀態機,所以我在質疑我的方法是否正確。目前,我的狀態機的基本輪廓是這樣的:在VHDL
begin
process(clk, reset, USB_RXFN, USB_TXEN)
begin
case state is
when IDLE =>
when NEGOTIATING =>
when RECEIVING =>
when FILTERING =>
when TRANSMITTING =>
when OTHERS => -- this should never happen but go to IDLE
end process;
我的問題在這裏,每一個狀態機教程中,我已經能夠找到在每個上升沿改變狀態(或相似,但每一次時鐘)並且這個設備應該處於IDLE狀態,並且只有在USB_RXFN變低時才轉換到NEGOTIATING狀態,停留在RECEIVING狀態直到整個映像已經被轉移等等。
有沒有什麼根本上有缺陷的我的方法? CPLD不適合這個目的嗎?或者是否有可能保持一個以上的時鐘狀態,並且爲簡單起見,教程只是以這種方式編寫的?
看來我不能「接受」兩個答案,所以我選擇了第一個發佈的簡單優點的另一個答案,但是我要感謝您的貢獻。 – medivh 2011-05-11 18:08:46
@medivh - 沒問題:) – 2011-05-12 11:48:05