編程軟件 verilog狀態(tài)機(jī)怎么用的?
verilog狀態(tài)機(jī)怎么用的?我更喜歡使用狀態(tài)機(jī)。狀態(tài)機(jī)的描述方法更接近上層,類似于軟件,更接近人們的思維方式。代碼寫(xiě)起來(lái)也很酷。在文檔中繪制狀態(tài)轉(zhuǎn)換,并寫(xiě)出當(dāng)前狀態(tài)和次狀態(tài)的所有跳轉(zhuǎn)條件。下面的事情
verilog狀態(tài)機(jī)怎么用的?
我更喜歡使用狀態(tài)機(jī)。狀態(tài)機(jī)的描述方法更接近上層,類似于軟件,更接近人們的思維方式。代碼寫(xiě)起來(lái)也很酷。在文檔中繪制狀態(tài)轉(zhuǎn)換,并寫(xiě)出當(dāng)前狀態(tài)和次狀態(tài)的所有跳轉(zhuǎn)條件。下面的事情基本上是體力勞動(dòng)。代碼一般是一個(gè)狀態(tài)機(jī)(FSM)的當(dāng)前狀態(tài)(FSM)加上一個(gè)計(jì)數(shù)器(FSM)再加上各種輸入,兩級(jí)三級(jí)寫(xiě)入即可。狀態(tài)機(jī)的缺點(diǎn)是性能低下。一般來(lái)說(shuō),一個(gè)州做一件事,但表現(xiàn)很差。在追求高性能的場(chǎng)景中,通常不使用它。在高性能場(chǎng)景中,通常使用管道設(shè)計(jì)。我覺(jué)得狀態(tài)機(jī)能寫(xiě)的電路都是簡(jiǎn)單的電路。真正的困難是管道。R
所謂“狀態(tài)機(jī)思維”寫(xiě)I2C異步通信程序,關(guān)鍵是每次I2C中斷時(shí),都會(huì)有狀態(tài)信息發(fā)出,并在中斷回調(diào)函數(shù)中對(duì)狀態(tài)進(jìn)行排序,從而形成“自然控制序列流”。
開(kāi)始時(shí),狀態(tài)返回到零,中斷打開(kāi),狀態(tài)自然引導(dǎo),直到狀態(tài)結(jié)束、中斷關(guān)閉或重新啟動(dòng)。
這樣就形成了“異步通信”。兩次中斷之間的間隔是系統(tǒng)處于休眠狀態(tài)或控制權(quán)移交給其他任務(wù)。
這種異步通信比同步通信效率更高。
如下圖所示。如果你看不清楚,你可以在網(wǎng)上搜索。