SOC總線即插即用的實現(xiàn)
OCP-IP跟AMBA總線的通信通過設(shè)計2個狀態(tài)機來實現(xiàn),1個用于接收AMBA總線上的流水?dāng)?shù)據(jù),1個用于發(fā)送接收的數(shù)據(jù)并以O(shè)CP標(biāo)準(zhǔn)的方式發(fā)送。接收數(shù)據(jù)的狀態(tài)機編碼如下:
H_CTRL_PHASE1用于存儲第1級流水指令,H_CTRL_PHASE2用于存儲第2級流水指令,其狀態(tài)轉(zhuǎn)移圖如圖5所示。當(dāng)AMBA總線上發(fā)出第1個讀寫指令,狀態(tài)機進入H_CTRL_PHASE1狀態(tài),并將第1個讀寫指令轉(zhuǎn)換成OCP命令。因為AMBA總線是基于流水的操作,所以第2條指令的發(fā)出不需要等第1條指令執(zhí)行結(jié)束。這時候,狀態(tài)機進入H_CTRL_PHASE2狀態(tài),并將此指令存儲起來,等OCP命令執(zhí)行結(jié)束立即將此存儲的指令轉(zhuǎn)換成OCP命令。這時如果AMBA總線上再次發(fā)出第3條指令,則狀態(tài)機進入H_CTRL_PHASE1狀態(tài),并存儲此指令。
發(fā)送接收到的數(shù)據(jù)的狀態(tài)機編碼如下:
狀態(tài)轉(zhuǎn)移圖如圖6所示。當(dāng)接收數(shù)據(jù)的狀態(tài)機接收到AMBA總線上的命令時,狀態(tài)機讓OCP接口進入第1個讀寫操作狀態(tài),即READl狀態(tài)或者WRITE1 狀態(tài)。如果AMBA總線上有持續(xù)的流水操作命令,狀態(tài)機進入READ2狀態(tài)或者WRITE2狀態(tài),即在AMBA流水操作的條件下,以1結(jié)尾的狀態(tài)的下一個狀態(tài)一定是以2結(jié)尾的狀態(tài),反之以2結(jié)尾的狀態(tài)的下一個狀態(tài)一定是以1結(jié)尾的狀態(tài)。
3 OCP-IP標(biāo)準(zhǔn)封裝軟件設(shè)計
OCP是一種IP的標(biāo)準(zhǔn),但不僅僅是IP的接口和數(shù)據(jù)的交換方式,還規(guī)定了IP的配置、端口等信息,即所謂的OCP配置文件。讀取OCP配置文件中的內(nèi)容,就可以知道此IP對應(yīng)的OCP接口的性能,從而對總線上的接口進行配置,進而實現(xiàn)IP的即插即用。雖然IP的功能是多樣的,總線的數(shù)據(jù)交互方式也是多樣的,但OCP接口的時序是固定的。這樣就可以通過設(shè)計軟件提取IP的端口信息,并自動生成相應(yīng)的OCP接口模塊。該封裝軟件運行流程如圖7所示。用戶的 IP可以直接掛在該SOC平臺上進行驗證,同時也可以直接集成到其他帶有OCP接口的SoC系統(tǒng)中去,加快IP的驗證和系統(tǒng)的設(shè)計。
封裝軟件采用MFC(微軟基礎(chǔ)類庫)來編寫。通過設(shè)計用戶界面,用戶只要輸入IP的時鐘、地址、數(shù)據(jù)、讀寫控制信號等,就可以自動生成1個OCP的接口,以及標(biāo)準(zhǔn)的配置文件,從而實現(xiàn)IP的即插即用以及IP的統(tǒng)一管理。
4 結(jié)語
OCP是免費的基于點對點傳輸?shù)腎P核的標(biāo)準(zhǔn)協(xié)議,可重配置以及可擴展性很強,可以實現(xiàn)真正意義上的IP核即插即用,減少SoC系統(tǒng)設(shè)計的時間。
電子血壓計相關(guān)文章:電子血壓計原理
評論