FPGA研發(fā)之道—總線
由于支持多個主設(shè)備和多個從設(shè)備進(jìn)行交互,那么對于多個主設(shè)備之間就存在競爭。(從設(shè)備之間存在競爭否?從設(shè)備之間是通過地址區(qū)分的,被動接受主設(shè)備的訪問,不會存儲競爭的問題。)因此如何解決競爭,那就需要仲裁,即主設(shè)備誰需要訪問總線,則發(fā)起HBUSREQ,而仲裁器收到HBUSREQ,返回給相應(yīng)主設(shè)備HGRANT。此時該設(shè)備才能訪問總線。除此之外AHB還有其他一些信號,用于輔助整個系統(tǒng)的傳輸,感興趣的同志,可以看一下AMBA的總線規(guī)范。值得一提的是,作為一個總線規(guī)范,其提供了全集的解決方案,而作為實(shí)現(xiàn)部分,只需要在滿足規(guī)范的前提下,實(shí)現(xiàn)必要的功能即可,例如AHB總線中規(guī)定,其突發(fā)最大可1K字節(jié),但是作為一個從設(shè)備,不一定需要支持這么大的操作,即實(shí)現(xiàn)功能可在總線框架內(nèi)進(jìn)行裁剪,選擇實(shí)現(xiàn)支持的類型即可。
本文引用地址:http://m.butianyuan.cn/article/261790.htm在FPGA內(nèi)部設(shè)計(jì)中,經(jīng)常有多個主設(shè)備訪問同一從設(shè)備的例子,例如內(nèi)部多個模塊都需要訪問外部存儲器,其實(shí)現(xiàn)方式有多種,通過AHB的連接架構(gòu),可以實(shí)現(xiàn)一個標(biāo)準(zhǔn)、可擴(kuò)展的接口單元,用于訪問外部存儲器。并且可以作為IP使用。AHB從設(shè)備只需要根據(jù)需要,支持某些burst傳輸即可。
隨著SOC(片上系統(tǒng)的發(fā)展),對于高帶寬、低延時的總線需求更加迫切,ARM公司適時退出AXI(AMBA3.0)作為擴(kuò)展。
上圖分別是AXI接口的讀寫操作,分別可以看出,對于AXI總線來說,其有5組獨(dú)立的總線,分別是寫地址,寫數(shù)據(jù),寫響應(yīng),讀地址,讀數(shù)據(jù)信號。地址和數(shù)據(jù)信號分開,每組都有自己的控制信號。
每個通道中間沒有時序關(guān)聯(lián),如何進(jìn)行操作的?舉例來說明,例如讀數(shù)據(jù)操作,實(shí)際上,主設(shè)備向從設(shè)備中寫了一個讀的命令,包括讀地址,burst大小,方式等。收到后從設(shè)備按照相應(yīng)的命令讀取相應(yīng)大小的數(shù)據(jù),傳回主設(shè)備,其操作可以簡化的看做兩個緩沖區(qū)類型的操作,主設(shè)備將讀命令寫入從設(shè)備的命令緩沖區(qū),從設(shè)備取出后,根據(jù)命令將相應(yīng)的數(shù)據(jù)返回給主設(shè)備的接收緩沖區(qū)中。這種操作的好處顯而易見,能夠最大限度的減少總線的開銷,因此其讀與讀操作之間獨(dú)立,不用等待讀回,就可以發(fā)送下一次的讀信號。寫操作的流程亦然。
對FPGA設(shè)計(jì)來說,例如xilinx的接口IP(DDR例化時的接口),都已支持AXI的接口。FPGA工程師熟悉相應(yīng)的總線接口信號和特點(diǎn),對于技術(shù)方案選擇,IP使用和驗(yàn)證,都是非常重要的。盡量在設(shè)計(jì)中選擇標(biāo)準(zhǔn)總線接口,對于設(shè)計(jì)復(fù)用,模塊共享來說,則是必由之路。而模塊(IP)復(fù)用的益處隨著設(shè)計(jì)不斷增大將會不斷顯現(xiàn)。
fpga相關(guān)文章:fpga是什么
分頻器相關(guān)文章:分頻器原理
評論