秦 沖,鄧道杰,朱耀國
(航空工業(yè)西安航空計(jì)算技術(shù)研究所,陜西 西安 710065)
AXI4(Advanced eXtensible Interface 4,高級可擴(kuò)展接口4)總線是由XILINX公司和ARM公司共同制定的新一代用于SOC(System on Chip)片上系統(tǒng)內(nèi)IP(Intellectual Property)互聯(lián)的總線規(guī)范,是第四版AMBA(Advanced Microcontroller Bus Architecture,高級微控制器總線架構(gòu))規(guī)范中定義的七個(gè)總線/接口之一[1]。
AXI4總線協(xié)議是基于burst猝發(fā)式傳輸?shù)臋C(jī)制,傳輸過程中采用獨(dú)立的數(shù)據(jù)、地址通道,并且支持非對齊的數(shù)據(jù)傳輸??偩€的數(shù)據(jù)傳輸方式是基于分離的地址/控制與數(shù)據(jù)多通道傳輸,典型讀傳輸過程的時(shí)序如圖1所示[2]。
典型寫傳輸過程的時(shí)序關(guān)系如圖2所示。
AXI4-Lite接口是AXI4接口的子集,是一種AXI4接口的簡化版,該接口允許構(gòu)建簡單的元件接口,接口規(guī)模小,所有讀寫傳輸?shù)拟Оl(fā)長度均為1(即僅支持單地址但數(shù)據(jù)的訪問傳輸方式),所有傳輸訪問數(shù)據(jù)的大小和數(shù)據(jù)總線的寬度均相同[3]。
目標(biāo)模塊接口支持16位局部總線數(shù)據(jù)線訪問方式(需要上位機(jī)將一次32位主機(jī)訪問分為兩次16位總線訪問),其接口讀/寫訪問時(shí)序圖如圖3和圖4所示,基本配置要求:(1)讀寫建立和保持時(shí)間至少2個(gè)周期;(2)寫訪問選通時(shí)間至少3個(gè)周期;(3)讀訪問有效時(shí)間至少9個(gè)周期;(4)讀寫訪問必須先讀寫低16位數(shù)據(jù),后讀寫高16位數(shù)據(jù)。
在充分分析AXI4-Lite接口協(xié)議時(shí)序關(guān)系,以及目標(biāo)模塊局部總線接口時(shí)序關(guān)系的基礎(chǔ)上,使用VHDL硬件描述語言完成總線接口轉(zhuǎn)換邏輯的設(shè)計(jì)工作。
由于目標(biāo)模塊接口總線訪問只能單次讀或單次寫訪問,因此設(shè)計(jì)1個(gè)訪問工作狀態(tài)機(jī)完成AXI4-Lite總線到目標(biāo)模塊接口的訪問功能,該狀態(tài)機(jī)包含4個(gè)狀態(tài):空閑狀態(tài)(sm_idle)、讀狀態(tài)(sm_read)、寫狀態(tài)(sm_write)、響應(yīng)狀態(tài)(sm_resp),狀態(tài)機(jī)如圖5所示,其中讀優(yōu)先級高于寫。
圖1 典型讀傳輸過程時(shí)序圖
圖2 寫傳輸過程時(shí)序圖
圖3 接口讀時(shí)序圖
圖4 接口寫時(shí)序圖
讀訪問功能過程具體如下。(1)初始狀態(tài)為空閑狀態(tài),當(dāng)接收到總線arvalid信號有效時(shí),狀態(tài)轉(zhuǎn)換到讀狀態(tài),同時(shí)鎖存地址。(2)在讀狀態(tài)進(jìn)行32周期計(jì)數(shù),周期內(nèi)生成2次讀信號;前16個(gè)周期輸出地址最低位為0,高位地址為鎖存地址,同時(shí)將上傳的數(shù)據(jù)寫入總線低16位;后16個(gè)周期輸出地址最低位為1,高位地址為鎖存地址,同時(shí)將上傳的數(shù)據(jù)寫入總線高16位;第31個(gè)周期配置arready、rvalid有效;當(dāng)狀態(tài)機(jī)檢測到arready信號有效,則狀態(tài)轉(zhuǎn)換到響應(yīng)狀態(tài)。(3)響應(yīng)狀態(tài)內(nèi)等待總線rready有效時(shí),表明目標(biāo)接口已完成讀訪問數(shù)據(jù)傳輸,狀態(tài)轉(zhuǎn)換為空閑狀態(tài),總線讀周期結(jié)束。
圖5 主機(jī)訪問工作狀態(tài)機(jī)
寫訪問功能過程具體如下。(1)初始狀態(tài)為空閑狀態(tài),當(dāng)接收到總線awvalid和wvalid信號有效時(shí),狀態(tài)轉(zhuǎn)換到寫狀態(tài),鎖存地址。(2)在寫狀態(tài)進(jìn)行16周期計(jì)數(shù),周期內(nèi)生成2次寫信號;前8個(gè)時(shí)鐘周期輸出地址最低位為0,高位地址為鎖存地址,同時(shí)輸出總線數(shù)據(jù)低16位;后8個(gè)時(shí)鐘周期輸出地址最低位為1,高位地址為鎖存地址,同時(shí)輸出總線數(shù)據(jù)高16位;第15個(gè)周期配置awready、wready、bvalid有效;當(dāng)狀態(tài)機(jī)檢測到awready有效,則狀態(tài)轉(zhuǎn)換到響應(yīng)狀態(tài)。(3)響應(yīng)狀態(tài)內(nèi)等待總線bready有效,表明目標(biāo)接口已完成寫訪問數(shù)據(jù)傳輸,狀態(tài)轉(zhuǎn)換為空閑狀態(tài),總線寫訪問周期結(jié)束。
通過功能仿真測試,對設(shè)計(jì)的總線接口轉(zhuǎn)換邏輯進(jìn)行功能驗(yàn)證。在Modelsim6.5仿真環(huán)境下,采用Verilog硬件描述語言編寫測試用例,用來仿真驗(yàn)證所設(shè)計(jì)的接口轉(zhuǎn)換邏輯能否實(shí)現(xiàn)總線訪問轉(zhuǎn)換功能。
AXI4-Lite總線讀訪問仿真結(jié)果如圖6所示。
AXI4-Lite總線寫訪問仿真結(jié)果如圖7所示。
圖6 總線讀訪問仿真結(jié)果
圖7 總線寫訪問仿真結(jié)果
通過圖6和圖7仿真結(jié)果可知,設(shè)計(jì)可以完成AXI4-Lite總線到目標(biāo)模塊接口的訪問。
本文設(shè)計(jì)了一種AXI4總線接口到非AXI4接口轉(zhuǎn)換的邏輯,并通過功能仿真對該邏輯設(shè)計(jì)進(jìn)行了驗(yàn)證。仿真結(jié)果結(jié)果表明,該方法設(shè)計(jì)簡單,功能有效,可以滿足設(shè)計(jì)需要。