玩轉(zhuǎn)Zynq連載3——AXI總線協(xié)議介紹1 更多資料共享 鏈接:https://share.weiyun.com/5s6bA0s ![]() AMBA AXI(Advanced eXtensibleInterface)協(xié)議是一種面向高性能、高帶寬系統(tǒng)設(shè)計的總線協(xié)議,能夠滿足各種高速系統(tǒng)的總線互聯(lián)。 AXI協(xié)議的主要特點有: ●獨立的地址、控制和數(shù)據(jù)接口 ●支持使用字節(jié)選通的不對齊數(shù)據(jù)的傳輸 ● 基于特定地址進行的突發(fā)傳輸 ●通過獨立的讀和寫通道實現(xiàn)低成本直接內(nèi)存訪問(DMA) ●支持無序數(shù)據(jù)傳輸 ●提供多級寄存器鎖存的支持,實現(xiàn)更好的時序收斂 AXI協(xié)議是Xilinx從6系列的FPGA開始引入的一個接口協(xié)議(AXI3)。在ZYNQ中繼續(xù)使用,版本是AXI4,ZYNQ內(nèi)部設(shè)備都有AXI接口。AXI4-Lite則是AXI4的一個簡化版本,實現(xiàn)AXI4運行起來的最少接口信號,對于傳輸控制要求不高的應用,方便實用。 AXI協(xié)議是基于突發(fā)傳輸?shù)。每一次傳輸,地址通道上有地址和控制信息,描述了被傳輸?shù)據(jù)的特性。數(shù)據(jù)將在主機和從機之間傳輸,數(shù)據(jù)傳輸?shù)姆较騽t是從寫數(shù)據(jù)通道到從機或從讀數(shù)據(jù)通道到主機。在寫傳輸中,主機到從機發(fā)送數(shù)據(jù)流。額外的寫響應通道,反饋從機信號的狀態(tài),完成寫傳輸。 AXI協(xié)議可以實現(xiàn)以下功能: ●在有效數(shù)據(jù)傳輸前提供地址信息 ●支持多個數(shù)據(jù)的傳輸 ●支持無序傳輸 如圖所示,顯示了一個讀傳輸如何使用讀地址和讀數(shù)據(jù)通道。 ![]() 如圖所示,顯示了一個寫傳輸如何使用寫地址、寫數(shù)據(jù)和寫響應通道。 ![]() AXI協(xié)議一共定義了5個獨立的通道,每一個通道都是由一組控制和響應信號組成的,使用雙向的有效(VALID)信號和準備好(READY)信號實現(xiàn)握手機制。 發(fā)送端使用有效信號來指示何時有效數(shù)據(jù)或者控制信息在通道中是有效的。接收端使用準備好信號來指示何時可以接收數(shù)據(jù)。讀數(shù)據(jù)通道和寫數(shù)據(jù)通道都包含一個結(jié)束(LAST)信號來指示何時一個傳輸中的最后一個數(shù)據(jù)出現(xiàn)。 讀和寫地址通道 每一個讀和寫傳輸都有獨立的地址通道。地址通道上有一個傳輸所需要的全部的地址和控制信息。AXI協(xié)議支持以下地址傳輸機制: ●1~16個可變數(shù)據(jù)個數(shù)的突發(fā)傳輸 ●8~1024bits可變數(shù)據(jù)位寬的突發(fā)傳輸 ●跳變、遞增和非遞增的突發(fā)傳輸 ●專用的或鎖定的傳輸控制 ●系統(tǒng)級的緩存、緩沖控制 ●安全的、專有的傳輸控制 讀數(shù)據(jù)通道 讀數(shù)據(jù)通道包含讀數(shù)據(jù)和從從機返回給主機的全部讀響應信息。讀數(shù)據(jù)通道包含: ● 讀數(shù)據(jù)總線,總線寬度可以是8、16、32、64、128、256、512或者1024bits ● 用于指示讀傳輸完成狀態(tài)的一個讀響應信號 寫數(shù)據(jù)通道 寫數(shù)據(jù)通道實現(xiàn)從主機到從機的寫數(shù)據(jù)。寫數(shù)據(jù)通道包含: ● 寫數(shù)據(jù)總線,總線寬度可以是8、16、32、64、128、256、512或者1024bits ●為每8bits數(shù)據(jù)提供一個有效標識位,標示數(shù)據(jù)總線的每個byte是否有效 寫數(shù)據(jù)通道信息會被接收端緩存,因此主機在進行寫傳輸時,無需確認上一次寫傳輸?shù)臓顟B(tài)。 寫響應通道 寫響應通道提供了一種讓從機對寫傳輸作出響應的機制。所有的寫傳輸都必須基于完成信號的狀態(tài)確認傳輸是否成功。每次突發(fā)傳輸都有一次傳輸完成的信號響應,注意完成信號只在一次突發(fā)傳輸完成后才產(chǎn)生,而不是為一次突發(fā)傳輸中的每個獨立的數(shù)據(jù)產(chǎn)生。 一個典型的系統(tǒng)包含數(shù)個主機和從機設(shè)備,這些設(shè)備通過互聯(lián)總線的形式連接在一起,如圖所示。 ![]() AXI協(xié)議提供單一接口定義的形式來描述這種互聯(lián): ●在主機與互聯(lián)總線之間 ●在從機與互聯(lián)總線之間 ●在主機與從機之間 大多數(shù)系統(tǒng)使用以下三種互聯(lián)方式中的一種: ●地址和數(shù)據(jù)總線共享 ●地址共享,有多個數(shù)據(jù)總線 ● 多層互聯(lián),即有多個地址和數(shù)據(jù)總線 在大多數(shù)系統(tǒng)中,對地址通道的帶寬的需求是明顯低于數(shù)據(jù)通道的帶寬的。此類系統(tǒng)能夠在系統(tǒng)性能與互聯(lián)復雜性之間達成很好的平衡,通過共享的地址總線與多個數(shù)據(jù)總線來達成平行數(shù)據(jù)傳輸。 每個AXI通道只會單向傳輸信息,無需在不同通道間固定關(guān)系。這一點很重要,因為這確保了在任意通道間插入寄存器成為可能,雖然這樣可能會產(chǎn)生一拍或多拍的時鐘延時,但這可以確保在時鐘延時和更高的時鐘頻率實現(xiàn)間做一些靈活的調(diào)整,以最大程度的實現(xiàn)系統(tǒng)的優(yōu)化。 也可以在互聯(lián)中的任何必要的地方插入寄存器,使用簡單的寄存器隔離關(guān)鍵的時序路徑,以實現(xiàn)處理器和高性能存儲器間的直接、快速的連接。 下面我們要對AXI協(xié)議的每個基本傳輸做一一介紹。每個傳輸實例都有VALID和READY信號的握手機制。不論是地址或者數(shù)據(jù)的傳輸都在VALID和READY信號為高電平的時候發(fā)生。 如圖所示,這是一個4個數(shù)據(jù)的突發(fā)讀操作。在這個實例中,主機發(fā)送地址信息,然后從機在一個時鐘周期之后接收到地址信息。地址信號出現(xiàn)在地址總線后,數(shù)據(jù)傳輸則在讀數(shù)據(jù)通道實現(xiàn)。從機保持RVALID信號為低電平,一直到讀數(shù)據(jù)總線RDATA是有效的,則拉高RVALID信號。對于突發(fā)傳輸?shù)淖詈笠粋讀數(shù)據(jù),從機通過RLAST信號的拉高,指示此時數(shù)據(jù)總線RDATA上傳輸?shù)氖亲詈笠粋讀數(shù)據(jù)。 ![]() 主機可以通過拉低RREADY信號來減慢從機送數(shù)據(jù)的速度。在RVALID為高電平時,從機會判斷此時RREADY信號是否也為高,若為高,表明此次傳輸?shù)腞DATA數(shù)據(jù)已經(jīng)被接收;若為低,則繼續(xù)保持RVALID為高,并且保持當前的讀數(shù)據(jù)RDATA不變,直到RREADY拉高為止,接著才會送下一個有效數(shù)據(jù)。 如圖所示,在從機接收第一個地址后(ARVALID和ARREADY都為高電平),主機可以接著發(fā)起第二個地址。讀數(shù)據(jù)通道送出的數(shù)據(jù)會遵循突發(fā)傳輸?shù)刂穼懭氲南群,即“先來后到”的原則。 ![]() 如圖所示,這是一次突發(fā)寫傳輸?shù)睦。寫操作開始于主機在寫地址通道發(fā)送一個地址和控制信息。然后主機在寫數(shù)據(jù)通道上發(fā)送所有的有效寫數(shù)據(jù)。在主機發(fā)送最后一個寫入數(shù)據(jù)時,WLAST信號變成高電平。當從機接收好所有的數(shù)據(jù)后,從機通過寫響應通道將信息反饋給主機,指示寫數(shù)據(jù)已經(jīng)被接收,寫傳輸完成。 ![]() 更多資料共享 鏈接:https://share.weiyun.com/5s6bA0s |