秦 沖,鄧道杰,朱耀國
(航空工業西安航空計算技術研究所,陜西 西安 710065)
AXI4(Advanced eXtensible Interface 4,高級可擴展接口4)總線是由XILINX公司和ARM公司共同制定的新一代用于SOC(System on Chip)片上系統內IP(Intellectual Property)互聯的總線規范,是第四版AMBA(Advanced Microcontroller Bus Architecture,高級微控制器總線架構)規范中定義的七個總線/接口之一[1]。
AXI4總線協議是基于burst猝發式傳輸的機制,傳輸過程中采用獨立的數據、地址通道,并且支持非對齊的數據傳輸。總線的數據傳輸方式是基于分離的地址/控制與數據多通道傳輸,典型讀傳輸過程的時序如圖1所示[2]。
典型寫傳輸過程的時序關系如圖2所示。
AXI4-Lite接口是AXI4接口的子集,是一種AXI4接口的簡化版,該接口允許構建簡單的元件接口,接口規模小,所有讀寫傳輸的猝發長度均為1(即僅支持單地址但數據的訪問傳輸方式),所有傳輸訪問數據的大小和數據總線的寬度均相同[3]。
目標模塊接口支持16位局部總線數據線訪問方式(需要上位機將一次32位主機訪問分為兩次16位總線訪問),其接口讀/寫訪問時序圖如圖3和圖4所示,基本配置要求:(1)讀寫建立和保持時間至少2個周期;(2)寫訪問選通時間至少3個周期;(3)讀訪問有效時間至少9個周期;(4)讀寫訪問必須先讀寫低16位數據,后讀寫高16位數據。
在充分分析AXI4-Lite接口協議時序關系,以及目標模塊局部總線接口時序關系的基礎上,使用VHDL硬件描述語言完成總線接口轉換邏輯的設計工作。
由于目標模塊接口總線訪問只能單次讀或單次寫訪問,因此設計1個訪問工作狀態機完成AXI4-Lite總線到目標模塊接口的訪問功能,該狀態機包含4個狀態:空閑狀態(sm_idle)、讀狀態(sm_read)、寫狀態(sm_write)、響應狀態(sm_resp),狀態機如圖5所示,其中讀優先級高于寫。

圖1 典型讀傳輸過程時序圖

圖2 寫傳輸過程時序圖

圖3 接口讀時序圖

圖4 接口寫時序圖
讀訪問功能過程具體如下。(1)初始狀態為空閑狀態,當接收到總線arvalid信號有效時,狀態轉換到讀狀態,同時鎖存地址。(2)在讀狀態進行32周期計數,周期內生成2次讀信號;前16個周期輸出地址最低位為0,高位地址為鎖存地址,同時將上傳的數據寫入總線低16位;后16個周期輸出地址最低位為1,高位地址為鎖存地址,同時將上傳的數據寫入總線高16位;第31個周期配置arready、rvalid有效;當狀態機檢測到arready信號有效,則狀態轉換到響應狀態。(3)響應狀態內等待總線rready有效時,表明目標接口已完成讀訪問數據傳輸,狀態轉換為空閑狀態,總線讀周期結束。

圖5 主機訪問工作狀態機
寫訪問功能過程具體如下。(1)初始狀態為空閑狀態,當接收到總線awvalid和wvalid信號有效時,狀態轉換到寫狀態,鎖存地址。(2)在寫狀態進行16周期計數,周期內生成2次寫信號;前8個時鐘周期輸出地址最低位為0,高位地址為鎖存地址,同時輸出總線數據低16位;后8個時鐘周期輸出地址最低位為1,高位地址為鎖存地址,同時輸出總線數據高16位;第15個周期配置awready、wready、bvalid有效;當狀態機檢測到awready有效,則狀態轉換到響應狀態。(3)響應狀態內等待總線bready有效,表明目標接口已完成寫訪問數據傳輸,狀態轉換為空閑狀態,總線寫訪問周期結束。
通過功能仿真測試,對設計的總線接口轉換邏輯進行功能驗證。在Modelsim6.5仿真環境下,采用Verilog硬件描述語言編寫測試用例,用來仿真驗證所設計的接口轉換邏輯能否實現總線訪問轉換功能。
AXI4-Lite總線讀訪問仿真結果如圖6所示。
AXI4-Lite總線寫訪問仿真結果如圖7所示。

圖6 總線讀訪問仿真結果

圖7 總線寫訪問仿真結果
通過圖6和圖7仿真結果可知,設計可以完成AXI4-Lite總線到目標模塊接口的訪問。
本文設計了一種AXI4總線接口到非AXI4接口轉換的邏輯,并通過功能仿真對該邏輯設計進行了驗證。仿真結果結果表明,該方法設計簡單,功能有效,可以滿足設計需要。