FPGA研發(fā)之道(19)- “背靠大樹(shù)好乘涼”--總線(xiàn)(下)
如果說(shuō)在PC時(shí)代,壟斷PC江湖的是WINTEL(微軟和英特爾),那么在移動(dòng)互聯(lián)網(wǎng)時(shí)代,最具有這個(gè)潛質(zhì)的就是谷歌的andriod操作系統和ARM芯片?;?a class="contentlabel" href="http://dyxdggzs.com/news/listbylabel/label/ARM">ARM公司授權的各型ARM處理器,基本上在各型嵌入式終端設備占據了壟斷地位?!氨晨看髽?shù)好乘涼”,因此,用于作為ARM處理做片上系統互聯(lián)的AMBA總線(xiàn)標準亦成為業(yè)界應用最廣泛的標準。
本文引用地址:http://dyxdggzs.com/article/265802.htmAMBA總線(xiàn)事實(shí)上為三個(gè)總線(xiàn)標準的合集,分別是AHB、ASB、APB。ASB已逐漸被AHB所取代,現在使用最廣泛的為AHB和APB總線(xiàn),以及最新的擴展AXI總線(xiàn)。實(shí)際上,現今系統設計中,經(jīng)常會(huì )借鑒AHB或APB總線(xiàn)標準,用于設計各種IP和片內模塊之間的互聯(lián)。首先來(lái)說(shuō)AHB和APB總線(xiàn),一家公司為什么會(huì )退出有兩種類(lèi)型總線(xiàn),這是因為AHB一般認為其具備更高的性能和總線(xiàn)吞吐能力,而APB為低速總線(xiàn),用于連接低速外設。兩種總線(xiàn)互補,能夠在性能和功耗方面進(jìn)行互補。

如上圖所示 :AHB總線(xiàn)與APB總線(xiàn)在一個(gè)嵌入式系統中的應用場(chǎng)景。 分別用于連接低速設備和高速設備。下表列舉其一些主要的差別。
作為單次傳輸來(lái)說(shuō),AHB與APB的主要區別在A(yíng)HB周期不固定,操作完成標示由從設備返回hready標示,而APB周期固定。作為burst傳輸來(lái)說(shuō),AHB支持增量和回環(huán)兩種方式的突發(fā)。舉例說(shuō),增量就是挨個(gè)地址自加,如總線(xiàn)寬度為32,地址每次自加4(字節)。而回環(huán),比如當前地址為0xA4,而回環(huán)突發(fā)操作位0xA4, 0xA8, 0xAC, 0xA0。這種突發(fā)方式對于一些cache讀寫(xiě)內存是非常有用的,這樣可以把0xA0-0xA15十六個(gè)內存地址一次性讀出。如果設計一條這樣的cache line,地址0xA0-0xA15其高位地址一致,便于匹配,這樣這16個(gè)字節可以通過(guò)一次突發(fā)就能全部填滿(mǎn)。(即回環(huán)這種設計與處理器的cache結構是相關(guān)的,現在的cache line有逐漸擴大的趨勢,一般64字節也較為常見(jiàn))。
由于支持多個(gè)主設備和多個(gè)從設備進(jìn)行交互,那么對于多個(gè)主設備之間就存在競爭。(從設備之間存在競爭否?從設備之間是通過(guò)地址區分的,被動(dòng)接受主設備的訪(fǎng)問(wèn),不會(huì )存儲競爭的問(wèn)題。)因此如何解決競爭,那就需要仲裁,即主設備誰(shuí)需要訪(fǎng)問(wèn)總線(xiàn),則發(fā)起HBUSREQ,而仲裁器收到HBUSREQ,返回給相應主設備HGRANT。此時(shí)該設備才能訪(fǎng)問(wèn)總線(xiàn)。除此之外AHB還有其他一些信號,用于輔助整個(gè)系統的傳輸,感興趣的同志,可以看一下AMBA的總線(xiàn)規范。值得一提的是,作為一個(gè)總線(xiàn)規范,其提供了全集的解決方案,而作為實(shí)現部分,只需要在滿(mǎn)足規范的前提下,實(shí)現必要的功能即可,例如AHB總線(xiàn)中規定,其突發(fā)最大可1K字節,但是作為一個(gè)從設備,不一定需要支持這么大的操作,即實(shí)現功能可在總線(xiàn)框架內進(jìn)行裁剪,選擇實(shí)現支持的類(lèi)型即可。
在FPGA內部設計中,經(jīng)常有多個(gè)主設備訪(fǎng)問(wèn)同一從設備的例子,例如內部多個(gè)模塊都需要訪(fǎng)問(wèn)外部存儲器,其實(shí)現方式有多種,通過(guò)AHB的連接架構,可以實(shí)現一個(gè)標準、可擴展的接口單元,用于訪(fǎng)問(wèn)外部存儲器。并且可以作為IP使用。AHB從設備只需要根據需要,支持某些burst傳輸即可。

隨著(zhù)SOC(片上系統的發(fā)展),對于高帶寬、低延時(shí)的總線(xiàn)需求更加迫切,ARM公司適時(shí)退出AXI(AMBA3.0)作為擴展。


上圖分別是AXI接口的讀寫(xiě)操作,分別可以看出,對于A(yíng)XI總線(xiàn)來(lái)說(shuō),其有5組獨立的總線(xiàn),分別是寫(xiě)地址,寫(xiě)數據,寫(xiě)響應,讀地址,讀數據信號。地址和數據信號分開(kāi),每組都有自己的控制信號。
每個(gè)通道中間沒(méi)有時(shí)序關(guān)聯(lián),如何進(jìn)行操作的?舉例來(lái)說(shuō)明,例如讀數據操作,實(shí)際上,主設備向從設備中寫(xiě)了一個(gè)讀的命令,包括讀地址,burst大小,方式等。收到后從設備按照相應的命令讀取相應大小的數據,傳回主設備,其操作可以簡(jiǎn)化的看做兩個(gè)緩沖區類(lèi)型的操作,主設備將讀命令寫(xiě)入從設備的命令緩沖區,從設備取出后,根據命令將相應的數據返回給主設備的接收緩沖區中。這種操作的好處顯而易見(jiàn),能夠最大限度的減少總線(xiàn)的開(kāi)銷(xiāo),因此其讀與讀操作之間獨立,不用等待讀回,就可以發(fā)送下一次的讀信號。寫(xiě)操作的流程亦然。
對FPGA設計來(lái)說(shuō),例如xilinx的接口IP(DDR例化時(shí)的接口),都已支持AXI的接口。FPGA工程師熟悉相應的總線(xiàn)接口信號和特點(diǎn),對于技術(shù)方案選擇,IP使用和驗證,都是非常重要的。盡量在設計中選擇標準總線(xiàn)接口,對于設計復用,模塊共享來(lái)說(shuō),則是必由之路。而模塊(IP)復用的益處隨著(zhù)設計不斷增大將會(huì )不斷顯現。
PS:如要學(xué)習上述三種總線(xiàn),推薦AMBA的手冊,百度/谷歌各大搜索引擎均提供免費下載鏈接。
fpga相關(guān)文章:fpga是什么
pa相關(guān)文章:pa是什么
評論