PCI總線(xiàn)從設備接口的CPLD實(shí)現
2.1 狀態(tài)機
狀態(tài)機是整個(gè)PCI從設備接口設計的控制核心,它控制著(zhù)PCI總線(xiàn)交易時(shí)序和控制信號的產(chǎn)生,文中結合PCI規范的要求,使用Verilog HDL語(yǔ)言、采用One—hot編碼方式設計了全同步狀態(tài)機,狀態(tài)機由表3所列的8個(gè)狀態(tài)組成,狀態(tài)機狀態(tài)轉移圖如圖2所示。本文引用地址:http://dyxdggzs.com/article/190766.htm
PCI目標狀態(tài)機狀態(tài)轉移有以下幾種情形:
(1)Idle→B_busy→Idle,地址譯碼設備未被選中,則處于B_busy總線(xiàn)忙狀態(tài)等待總線(xiàn)交易結束,直到FRAME#失效當前總線(xiàn)交易結束才返回Idle。
(2)Idle→B_busy→Wait→Backoff→Turn_ar→Idle,設備未能在16個(gè)時(shí)鐘周期內準備好第一個(gè)傳輸數據,超時(shí)重試(RETRY)斷開(kāi)連接,總線(xiàn)停留在Backoff等待總線(xiàn)撤消FRAME#,然后總線(xiàn)釋放返回空閑態(tài)。
(3)Idle→B_busy→Wait→(R_wait)→L_data→(Backoff)→Turn_ar→Idle,從設備同時(shí)有效Ready和Term信號,表明從設備不支持突發(fā)傳輸或者沒(méi)有更多的數據存儲空間進(jìn)行突發(fā)傳輸,只能進(jìn)行最后一個(gè)數據交易。如果是讀交易,則插入讀等待狀態(tài)R_wait。
若訪(fǎng)問(wèn)為突發(fā)訪(fǎng)問(wèn),當惟一的數據期完成以后,總線(xiàn)停留在Backoff狀態(tài)等待主設備無(wú)效FRAME#,然后交易結束。
(4)Idle→B_busy→Wait→(R_wait)→Data→(L_data)→(Backoff)→Turn_ar→Idle,突發(fā)數據交易,讀交易則插入讀等待狀態(tài)R_wait。若從設備提出終止,則插入L_data和Backoff狀態(tài)與主設備斷開(kāi)連接;若是主設備提出終止則正常的結束總線(xiàn)交易。
在設計中,配置訪(fǎng)問(wèn)不支持突發(fā)傳輸,總線(xiàn)時(shí)序和情形(3)一致;而內存訪(fǎng)問(wèn)支持突發(fā)傳輸,情形(3)和(4)的時(shí)序均會(huì )出現。用戶(hù)應用可以通過(guò)Ready和Term信號不同的輸入組合來(lái)控制狀態(tài)機的狀態(tài)轉移,如表4所示。但是在本設計中的順序要么是先等待,然后正常數據交易、正常結束或者提出斷開(kāi)連接;要么是先等待,然后重試直接斷開(kāi)連接,只有這兩種順序,用戶(hù)應用不能在正常數據交易期中再插入等待狀態(tài),這是不允許的。
評論