FPGA研發之道(19)- “背靠大樹好乘涼”--總線(下)

 如果說在PC時代,壟斷PC江湖的是WINTEL(微軟和英特爾),那麼在移動互聯網時代,最具有這個潛質的就是谷歌的andriod操作系統和ARM芯片。基於ARM公司授權的各型ARM處理器,基本上在各型嵌入式終端設備佔據了壟斷地位。“背靠大樹好乘涼”,因此,用於作爲ARM處理做片上系統互聯的AMBA總線標準亦成爲業界應用最廣泛的標準。

AMBA總線事實上爲三個總線標準的合集,分別是AHB、ASB、APB。ASB已逐漸被AHB所取代,現在使用最廣泛的爲AHB和APB總線,以及最新的擴展AXI總線。實際上,現今系統設計中,經常會借鑑AHB或APB總線標準,用於設計各種IP和片內模塊之間的互聯。首先來說AHB和APB總線,一家公司爲什麼會退出有兩種類型總線,這是因爲AHB一般認爲其具備更高的性能和總線吞吐能力,而APB爲低速總線,用於連接低速外設。兩種總線互補,能夠在性能和功耗方面進行互補。


  如上圖所示 :AHB總線與APB總線在一個嵌入式系統中的應用場景。 分別用於連接低速設備和高速設備。下表列舉其一些主要的差別。

AHB

APB

多個主設備,多個從設備

一個主設備(總線橋),多個從設備

讀寫週期不固定,由從設備返回hready信號標示操作完成。

讀寫週期固定,兩個週期完成

支持突發傳輸,傳輸類型由主設備

不支持突發傳輸

信號較多且複雜。

信號簡單。

作爲單次傳輸來說,AHB與APB的主要區別在AHB週期不固定,操作完成標示由從設備返回hready標示,而APB週期固定。作爲burst傳輸來說,AHB支持增量和迴環兩種方式的突發。舉例說,增量就是挨個地址自加,如總線寬度爲32,地址每次自加4(字節)。而回環,比如當前地址爲0xA4,而回環突發操作位0xA4, 0xA8, 0xAC, 0xA0。這種突發方式對於一些cache讀寫內存是非常有用的,這樣可以把0xA0-0xA15十六個內存地址一次性讀出。如果設計一條這樣的cache line,地址0xA0-0xA15其高位地址一致,便於匹配,這樣這16個字節可以通過一次突發就能全部填滿。(即迴環這種設計與處理器的cache結構是相關的,現在的cache line有逐漸擴大的趨勢,一般64字節也較爲常見)。

由於支持多個主設備和多個從設備進行交互,那麼對於多個主設備之間就存在競爭。(從設備之間存在競爭否?從設備之間是通過地址區分的,被動接受主設備的訪問,不會存儲競爭的問題。)因此如何解決競爭,那就需要仲裁,即主設備誰需要訪問總線,則發起HBUSREQ,而仲裁器收到HBUSREQ,返回給相應主設備HGRANT。此時該設備才能訪問總線。除此之外AHB還有其他一些信號,用於輔助整個系統的傳輸,感興趣的同志,可以看一下AMBA的總線規範。值得一提的是,作爲一個總線規範,其提供了全集的解決方案,而作爲實現部分,只需要在滿足規範的前提下,實現必要的功能即可,例如AHB總線中規定,其突發最大可1K字節,但是作爲一個從設備,不一定需要支持這麼大的操作,即實現功能可在總線框架內進行裁剪,選擇實現支持的類型即可。

在FPGA內部設計中,經常有多個主設備訪問同一從設備的例子,例如內部多個模塊都需要訪問外部存儲器,其實現方式有多種,通過AHB的連接架構,可以實現一個標準、可擴展的接口單元,用於訪問外部存儲器。並且可以作爲IP使用。AHB從設備只需要根據需要,支持某些burst傳輸即可。


    隨着SOC(片上系統的發展),對於高帶寬、低延時的總線需求更加迫切,ARM公司適時退出AXI(AMBA3.0)作爲擴展。


上圖分別是AXI接口的讀寫操作,分別可以看出,對於AXI總線來說,其有5組獨立的總線,分別是寫地址,寫數據,寫響應,讀地址,讀數據信號。地址和數據信號分開,每組都有自己的控制信號。

每個通道中間沒有時序關聯,如何進行操作的?舉例來說明,例如讀數據操作,實際上,主設備向從設備中寫了一個讀的命令,包括讀地址,burst大小,方式等。收到後從設備按照相應的命令讀取相應大小的數據,傳回主設備,其操作可以簡化的看做兩個緩衝區類型的操作,主設備將讀命令寫入從設備的命令緩衝區,從設備取出後,根據命令將相應的數據返回給主設備的接收緩衝區中。這種操作的好處顯而易見,能夠最大限度的減少總線的開銷,因此其讀與讀操作之間獨立,不用等待讀回,就可以發送下一次的讀信號。寫操作的流程亦然。

對FPGA設計來說,例如xilinx的接口IP(DDR例化時的接口),都已支持AXI的接口。FPGA工程師熟悉相應的總線接口信號和特點,對於技術方案選擇,IP使用和驗證,都是非常重要的。儘量在設計中選擇標準總線接口,對於設計複用,模塊共享來說,則是必由之路。而模塊(IP)複用的益處隨着設計不斷增大將會不斷顯現。

PS:如要學習上述三種總線,推薦AMBA的手冊,百度/谷歌各大搜索引擎均提供免費下載鏈接。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章