《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于FPGA的AXI4總線時序設計與實現(xiàn)
基于FPGA的AXI4總線時序設計與實現(xiàn)
2015年電子技術應用第6期
馬 飛,劉 琦,包 斌
北京空間機電研究所,北京100094
摘要: 針對AXI4總線設備之間的高速數(shù)據(jù)傳輸需求,根據(jù)AXI4總線協(xié)議,設計實現(xiàn)了一種基于FPGA的AXI4總線讀寫時序控制方法。以FPGA為核心,采用VHDL語言,完成了滿足AXI4總線協(xié)議的讀猝發(fā)方式數(shù)據(jù)傳輸和寫猝發(fā)方式數(shù)據(jù)傳輸時序控制模塊的設計。利用FPGA內部嵌入式系統(tǒng)提供的高性能數(shù)據(jù)傳輸接口完成AXI4時序控制模塊的功能驗證。實際應用表明,依據(jù)提出的設計方法實現(xiàn)的讀寫時序控制模塊能夠滿足AXI4總線協(xié)議規(guī)定的時序關系,實現(xiàn)數(shù)據(jù)的高速正確傳輸,總線數(shù)據(jù)傳輸速率能夠達到1.09 GB/s。
中圖分類號: TP336
文獻標識碼: A
文章編號: 0258-7998(2015)06-0013-03
中文引用格式:馬飛,劉琦,包斌.基于FPGA的AXI4總線時序設計與實現(xiàn)[J].電子技術應用,2015,41(06):13-15+19.
Design and implementation of AXI 4 bus timing based on FPGA
Ma Fei,Liu Qi,Bao Bin
Beijing Institute of Space Mechanics & Electricity,Beijing 100094,China
Abstract: To fulfill the needs for high speed data transfers between AXI 4 bus devices,a FPGA based timing control method of data writing and reading for AXI 4 bus is provided. Timing control modules of data writing and reading in burst are designed according to the AXI 4 bus protocol. Functions of the design are validated in high performance interfaces of embedded system in FPGA. The application shows that the design provided in this paper provides an accurate timing that meets the AXI 4 bus protocol. Data transports between AXI 4 bus devices correctly in the speed of 1.09 GB/s.
Key words : AXI 4 bus;timing control;FPGA

    

0 引言

    高級微控制器總線結構(Advanced Microcontroller Bus Architecture,AMBA)是一種應用于片上系統(tǒng)的總線結構。AMBA總線協(xié)議是ARM公司制定的用于片上系統(tǒng)IP互聯(lián)與管理的一種規(guī)范,由于它是一個開放標準的協(xié)議,所以自從出現(xiàn)之后,其應用領域就超出了微控制器設備,已經廣泛應用于各種ASIC和片上系統(tǒng)器件中。高級可擴展接口4(Advanced eXtensible Interface 4,AXI4)總線規(guī)范是ARM公司與Xilinx公司共同制定的新一代用于片上系統(tǒng)內IP互聯(lián)的總線規(guī)范,是第4版AMBA規(guī)范定義的7個總線接口之一,用以滿足普遍情況下的元件接口要求,為互聯(lián)結構的實現(xiàn)提供了靈活性[1]。

    本文通過對AXI4總線協(xié)議的分析研究,在充分了解其工作原理與工作過程的基礎上,采用VHDL硬件描述語言實現(xiàn)了AXI4總線讀猝發(fā)方式數(shù)據(jù)傳輸和寫猝發(fā)方式數(shù)據(jù)傳輸時序控制模塊的設計與編寫,實現(xiàn)了FPGA邏輯與AXI4從設備之間的高速數(shù)據(jù)傳輸。

1 AXI4總線協(xié)議簡介

1.1 AXI4總線協(xié)議特性與優(yōu)勢

    AXI4總線協(xié)議規(guī)定的數(shù)據(jù)傳輸方式是猝發(fā)式的,使用首字節(jié)選通方式,在獨立的讀寫數(shù)據(jù)通道采用獨立的地址、控制和數(shù)據(jù)周期進行數(shù)據(jù)傳輸,支持非對齊方式的數(shù)據(jù)傳輸,能夠發(fā)出多個未解析的地址,從而完成無序的數(shù)據(jù)傳輸交易。

    AXI4總線協(xié)議的上述特性,使得其與其他總線協(xié)議相比較,具有比較明顯的優(yōu)勢。首先,AXI4總線協(xié)議簡化了不同領域IP的集成,將不同接口整合到一個接口中,簡化了用戶熟悉與開發(fā)的難度,從而提高了生產效率;其次,AXI4總線協(xié)議支持嵌入式、DSP以及FPGA各種電子設計領域的用戶使用,具有很大的靈活性;最后,由于第三方EDA廠商與IP開發(fā)廠商普遍接受并采用了AXI4總線協(xié)議標準,從而使得基于AXI4總線協(xié)議的目標平臺具有廣泛的IP可用性[1-4]

1.2 AXI4總線協(xié)議信號集與時序關系

    AXI4總線協(xié)議規(guī)定5個不同的通道,分別是讀地址通道(Read Address Channel,AR)、寫地址通道(Write Address Channel,AW)、讀數(shù)據(jù)通道(Read Data Channel,R)、寫數(shù)據(jù)通道(Write Data Channel,W)和寫響應通道(Write Response Channel,B)[5-6]。其中,讀、寫地址通道傳輸數(shù)據(jù)交互過程中需要的地址和控制信號;讀數(shù)據(jù)通道傳輸從從設備到主設備的讀數(shù)據(jù)以及相應讀信息;寫數(shù)據(jù)通道傳輸從主設備到從設備的寫數(shù)據(jù);寫響應通道用于標識從設備響應主設備的寫操作。主設備與從設備之間的數(shù)據(jù)傳輸分別用到從主設備到從設備的寫數(shù)據(jù)通道和從從設備到主設備的讀數(shù)據(jù)通道,從主設備到從設備的寫數(shù)據(jù)交易過程中,從設備會通過響應通道向主設備反饋寫操作是否完成。讀地址通道與寫地址通道都是從主設備到從設備。其讀通道結構如圖1所示,寫通道結構如圖2所示。

qrs1-t1.gif

qrs1-t2.gif

    AXI4協(xié)議的5個通道分別有各自的信號集合,各個通道在主設備與從設備之間進行數(shù)據(jù)交互的過程中,使用VALID信號與READY信號的握手機制,即信息源通過VALID信號表示該通道存在可用的有效數(shù)據(jù)或者控制信息;信息接收方使用READY信號表示該設備具備數(shù)據(jù)接收的條件[6-8]。每個通道的信號名稱都以該通道的標識字母開頭,例如,讀地址通道的VALID信號與READY信號分別為ARVALID與ARREADY,其他通道同理。

    讀猝發(fā)方式數(shù)據(jù)傳輸過程中的時序關系如圖3所示。其中,ACLK是全局時鐘信號,所有信號在時鐘上升沿采樣;ARADDR是讀地址信號,該信號給出讀猝發(fā)方式數(shù)據(jù)傳輸一次猝發(fā)操作的第一個傳輸?shù)刂?;ARVALID為讀地址有效信號,高電平表示讀地址可用;ARREADY為讀地址準備信號,該信號為高時表示從設備準備好接收地址和相關的控制信號;RDATA為讀數(shù)據(jù);RVALID為讀有效信號,該信號為高表示讀數(shù)據(jù)信號可用;RLAST為一次猝發(fā)操作中最后數(shù)據(jù)的指示信號,高電平表示一次猝發(fā)傳輸中最后一個傳輸數(shù)據(jù);RREADY為讀準備信號,該信號為高時表示主設備能夠接收讀取的數(shù)據(jù)。

qrs1-t3.gif

    寫猝發(fā)方式數(shù)據(jù)傳輸過程中的時序關系如圖4所示。其中,BVALID信號為高時表示一次寫猝發(fā)操作完成;BREADY為高表示主設備可以接收響應信息;其余信號功能與讀猝發(fā)方式類似,不再贅述。

qrs1-t4.gif

    需要注意的是,各通道內部的信號要嚴格滿足相應的時序關系,但是各個通道之間的信號之間是異步關系,沒有嚴格的時序要求。以圖4為例,WVALID信號與WDATA信號可以出現(xiàn)在AWVALID信號和AWADDR信號之前,但是WVALID信號與WDATA信號之間、AWVALID信號與AWADDR信號之間必須滿足圖4中的時序關系。通道之間的信號對應是通過ID信號實現(xiàn)的,具有相同ID的讀通道、寫通道和響應通道傳輸?shù)氖且淮吴Оl(fā)的數(shù)據(jù),從而能夠確保各個通道之間信號的異步性。

2 邏輯設計實現(xiàn)

    在充分分析AXI4總線協(xié)議的信號集合與時序關系的基礎上,使用VHDL語言完成讀猝發(fā)模塊和寫猝發(fā)模塊的邏輯設計。

    讀猝發(fā)模塊邏輯設計流程如圖5所示。模塊接收到讀操作開始信號后,通過對ARREADY信號與讀地址個數(shù)的檢測,判斷是否可以進行讀操作,從而生成讀地址信號ARADDR及其有效信號ARVALID;通過對RREADY信號以及RVALID信號的判斷實現(xiàn)讀地址與讀數(shù)據(jù)個數(shù)的計數(shù)操作,從而判斷已經讀出的地址及數(shù)據(jù)個數(shù);數(shù)據(jù)讀出后,通過寫RAM信號將數(shù)據(jù)寫入RAM中,從而完成對AXI4總線的讀猝發(fā)操作。

qrs1-t5.gif

    寫猝發(fā)模塊邏輯設計流程如圖6所示。模塊接收到寫操作開始信號后,通過對AWREADY信號與寫地址個數(shù)的檢測,判斷是否可以進行寫操作,從而生成寫地址信號AWADDR及其有效信號AWVALID;同時通過對WREADY信號以及寫數(shù)據(jù)個數(shù)的判斷,生成寫數(shù)據(jù)有效信號WVALID;待寫入AXI4總線的數(shù)據(jù)事先存儲在雙口RAM中,通過生成讀RAM的控制信號,從RAM中讀出數(shù)據(jù),與WVALID信號配合以后送給AXI4總線從設備,從而完成對AXI4總線的寫猝發(fā)操作。

qrs1-t6.gif

3 測試分析

    對AXI4總線時序猝發(fā)讀寫操作邏輯模塊的功能驗證主要通過功能仿真和實際電路測試實現(xiàn)。

    首先進行功能仿真測試,功能仿真測試在ModelSim 6.4仿真環(huán)境下進行,利用VHDL語言編寫測試用例,主要用來驗證讀寫模塊能否向從設備正確發(fā)出相關的信號。由于從設備反饋的信號不容易在測試用例中描述,所以從設備反饋的信號通過實際電路測試的方式完成。在實際電路中,利用ChipScope工具抓取從設備的反饋信號,同時與主設備發(fā)出的信號進行時序關系的對應,進而驗證信號的時序關系是否符合協(xié)議規(guī)定。

    讀猝發(fā)操作主要信號的波形如圖7所示,從波形中可見,讀地址通道與讀數(shù)據(jù)通道之間是異步關系,兩個通道通過ARID與RID兩組信號確定同一次猝發(fā)操作。讀地址通道主要信號波形放大后如圖8所示,設置的初始讀地址為0x10000000,每個猝發(fā)包含0x80個地址字節(jié),從圖中可見,讀猝發(fā)模塊能夠正確將地址信息發(fā)送給從設備。從從設備中讀出的數(shù)據(jù)寫入主設備的RAM中,寫RAM相關信號如圖9所示,測試過程中,首先將從設備從0x10000000地址開始以4 B為單位寫入初始數(shù)據(jù),初始數(shù)據(jù)從0開始,每4 B數(shù)據(jù)加1。從圖9中可見,讀出的8 B數(shù)據(jù)正好是相鄰4 B數(shù)據(jù)的拼接,即第一個數(shù)是0x0000000100000000,第二個數(shù)是0x0000000300000002,依此類推,從而能夠驗證數(shù)據(jù)能夠正確從從設備讀出到主設備。

qrs1-t7.gif

qrs1-t8.gif

qrs1-t9.gif

    寫猝發(fā)模塊的功能驗證通過如下方式實現(xiàn):利用寫猝發(fā)模塊向從設備的目的地址寫入8 B固定數(shù)0xaaaa55555555aaaa,從設備將寫操作之前的數(shù)據(jù)和寫操作之后的數(shù)據(jù)反饋給上位機,通過反饋的數(shù)據(jù)判斷是否正確從主設備寫入從設備。

    上位機反饋的測試結果如圖10所示,從設備的目的操作地址為0x10000000~0x10007fff,以4 B為一個操作單元。上電后首先讀取目的地址的數(shù)據(jù),其結果是隨機的無規(guī)律數(shù)據(jù);之后從設備將目的地址的數(shù)據(jù)進行初始化,寫入從0開始的遞增數(shù)據(jù),寫完后再讀取目的地址數(shù)據(jù),從而確認初始化數(shù)據(jù)已經正確寫入;之后完成寫猝發(fā)操作,將數(shù)據(jù)0xaaaa55555555aaaa寫入目的地址,寫操作完成后再讀取目的地址的數(shù)據(jù),已經從初始化的遞增數(shù)據(jù)變成了寫入的數(shù)據(jù)0x5555aaaa和0xaaaa5555,從而能夠驗證寫猝發(fā)模塊已經正確將數(shù)據(jù)寫入從設備。

qrs1-t10.gif

    寫猝發(fā)操作的信號波形如圖11所示,從圖中可見,寫地址通道、寫數(shù)據(jù)通道與寫響應通道之間的信號之間是異步關系,各通道內部信號有嚴格的同步時序關系,與AXI4協(xié)議規(guī)定的時序關系一致。

qrs1-t11.gif

    在開始數(shù)據(jù)傳輸時,主設備將一個測試信號置為高,數(shù)據(jù)傳輸結束后將該信號電平拉低,利用示波器測量該信號的高電平寬度,即可確定數(shù)據(jù)傳輸?shù)乃俾?。通過測試可知,32 KB數(shù)據(jù)傳輸完畢需要約30 μs,傳輸速率為1.09 GB/s。

    通過上述測試分析可知,本文設計實現(xiàn)的數(shù)據(jù)傳輸模塊滿足AXI4總線協(xié)議的時序要求,能夠正確實現(xiàn)AXI4總線主從設備之間的高速數(shù)據(jù)傳輸。

4 結論

    AXI4總線協(xié)議作為嵌入式系統(tǒng)內部的常用總線協(xié)議,得到第三方EDA廠商與IP開發(fā)廠商普遍接受與采用。為滿足AXI4總線主設備與從設備之間的數(shù)據(jù)傳輸要求,本文通過對AXI4總線信號集合以及總線時序的分析研究,設計并實現(xiàn)了滿足AXI4總線時序要求的讀寫控制模塊,采用VHDL語言完成模塊的編寫。通過ModelSim仿真軟件仿真驗證和電路板實際測試分析表明,本文設計實現(xiàn)的AXI4總線時序模塊符合總線規(guī)范,能夠滿足高速數(shù)據(jù)傳輸?shù)膶嶋H需求,測試結果表明,數(shù)據(jù)能夠在主從設備之間正確傳輸,傳輸速率能夠達到1.09 GB/s,具有較高的工程應用價值。

參考文獻

[1] 何賓.Xilinx All Programmable Zynq-7000 SoC設計指南[M].北京:清華大學出版社,2013.

[2] 蒲杰,李貴勇.基于AXI總線的DMA控制器的設計與實現(xiàn)[J].重慶郵電大學學報(自然科學版),2012,24(2):174-177.

[3] 張慶利,王進祥,葉以正,等.AMBA片內總線結構的設計[J].微處理機,2002(2):7-10.

[4] 周彩寶,劉應學.ARM體系以及AMBA總線分析[J].計算機工程,2003,29(5):147-149.

[5] 胡強.FPGA與通用處理器同步數(shù)據(jù)傳輸接口的設計[J].電子技術應用,2014,40(8):14-16.

[6] 張軍,馬琪.基于AMBA總線的DMA控制器設計[J].科技通報,2011,27(2):268-271.

[7] 唐平,鄭建宏.基于AHB總線的DMA控制器的實現(xiàn)與應用[J].電子測試,2009(11):64-67.

[8] 肖龍,萬旻,李濤.高速數(shù)字圖像數(shù)據(jù)傳輸?shù)难芯考皩崿F(xiàn)[J].航天返回與遙感,2009(30):50-55.

此內容為AET網(wǎng)站原創(chuàng),未經授權禁止轉載。
主站蜘蛛池模板: 亚洲天堂久久精品 | 亚洲毛片在线播放 | 久久久久久久久久久视频国内精品视频 | 日韩欧美国产另类 | 中文字幕亚洲在线 | 999久久久精品视频在线观看 | 成视频年人黄网站免费 | 最新国产三级久久 | 97久久精品午夜一区二区 | 国产日韩高清一区二区三区 | 久久一本一区二区三区 | 美女网站色免费 | 亚洲成人天堂 | 在线播放精品一区二区啪视频 | 欧美人成人亚洲专区中文字幕 | 国产精品久久久久久久午夜片 | 中国国语毛片免费观看视频 | 老司机黄色影院 | 欧美一级棒 | 免费中国一级啪啪片 | 亚洲欧美一区二区三区孕妇 | 男人的天堂久久香蕉国产 | 欧美亚洲视频在线观看 | 成年人三级网站 | 经典香港一级a毛片免费看 精品400部自拍视频在线播放 | 欧美性久久久久 | 精品国产一区二区三区成人 | 国产精品久久久久久久久久直 | 97超级碰碰碰碰在线视频 | 国产成人精品综合久久久 | 欧美激情精品久久久久 | 视频一区精品 | 九九视频免费在线观看 | 美女视频黄a视频美女大全 美女视频黄a视频免费全程 | 欧美一级淫片a免费播放口aaa | 成人久久伊人精品伊人 | 99精品免费久久久久久久久日本 | 国产一级久久免费特黄 | 日韩欧美在线视频 | 特级毛片8级毛片免费观看 特级毛片免费观看视频 | 在线观看人成网站深夜免费 |