新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > FPGA研發(fā)之道—總線

FPGA研發(fā)之道—總線

作者: 時間:2014-08-15 來源:網(wǎng)絡(luò) 收藏

  如果設(shè)計中有多個模塊,每個模塊內(nèi)部有許多寄存器或者存儲塊需要配置或者提供讀出那么實現(xiàn)方式有多種,主要如下:

本文引用地址:http://www.butianyuan.cn/article/261790.htm

  實現(xiàn)方式一:可以在模塊頂部將所有寄存器引出,提供統(tǒng)一的模塊進(jìn)行配置和讀出。這種方式簡單是簡單,但是頂層連接工作量較大,并且如果配置個數(shù)較多,導(dǎo)致頂層中寄存器的數(shù)目也會較多。

  實現(xiàn)方式二:通過總線進(jìn)行連接,為每個模塊分配一個地址范圍。這樣寄存器等擴展就可以在模塊內(nèi)部進(jìn)行擴展,而不用再頂層進(jìn)行過多的頂層互聯(lián)。如下圖所示:

  

 

  那如果進(jìn)行總線的選擇,那么有一種極為簡單的總線推薦被使用,那就是的總線

  ALTERA提出兩種總線類型,分別是

  。分別用于連接memeory 和數(shù)據(jù)流的傳送

  MM不是你想的意思,其英文為memory map。實現(xiàn)內(nèi)存映射是其主要目的。主要信號包括如下表所示:

  

 

  AVALON因此可以說是最簡單實用的總線形態(tài)了。對于其操作來說,總線為同步類型的總線,寫信號只需要在寫使能有效時,同時提供寫數(shù)據(jù)即可,而讀數(shù)據(jù)等待信號無效時,讀出數(shù)據(jù)有效。

  同樣數(shù)據(jù)類型讀數(shù)據(jù)(readdata)和寫數(shù)據(jù)(writedata)的寬度可以根據(jù)設(shè)計的需要靈活配置為(8,16,32----256---1024)BIT等值。即可以支持非常大的位寬,但普通應(yīng)用,只需要(8,16,32,64)BIT等即可滿足應(yīng)用。

  那假設(shè)總線寬度32,基本上主流的數(shù)據(jù)總線的寬度。如果需要更細(xì)粒度的劃分,確定讀寫某個字節(jié)有效,那么byteenable信號也是必須的。其需要4bit來標(biāo)示32bit(4個byte)中那個有效,每一BIT表示一個字節(jié),因此如果要完全表示所有的字節(jié)有效,因此字節(jié)有效信號的寬度為(數(shù)據(jù)總線的寬度/8)。AVALON還可以有burst的操作。主設(shè)備可以通過burstcount設(shè)備確定brust的長度,為2的n-1次方。

  對于普通的應(yīng)用,通過上述表格中的基本操作即可滿足需求,這也正是AVALON-mm總線的優(yōu)勢。此外模塊按此標(biāo)準(zhǔn)提供連接接口,各種模塊可以掛在NIOSII的片上系統(tǒng)上。

  如果模塊之間為點對點的連接,同時傳遞大數(shù)據(jù)量的操作,那么的AVALON-mm總線就不太適合,因此AVALON_streaming總線就適合這種應(yīng)用場景。

  AVALON_streaming總線本質(zhì)上是一種同步并行總線,即在同步時鐘狀態(tài)下,使能有效代表傳遞數(shù)據(jù)有效。其基本信號如下表所示:

  

 

  

 

  從上圖中,可以看出各信號在數(shù)據(jù)傳輸中的作用,對于從設(shè)備獲取數(shù)據(jù)的處理,就是VALID有效時,數(shù)據(jù)有效的采樣操作,非常簡單方便,易于處理。如果從設(shè)備設(shè)定ready永為1,則表示沒有反壓的機制,則主設(shè)備,可根據(jù)自身收包情況一直向從設(shè)備發(fā)送數(shù)據(jù)包。此外還有其他輔助信號,可以根據(jù)設(shè)計需要進(jìn)行添加。

  使用總線使模塊標(biāo)準(zhǔn)化,便于代碼的移植和設(shè)計復(fù)用。同時標(biāo)準(zhǔn)總線的設(shè)定和統(tǒng)一定義也利于項目團隊代碼的標(biāo)準(zhǔn)化,便于理解和傳播。

  下文將介紹兩種其他應(yīng)用較廣的總線形態(tài),AHB(AMBA)如果說在PC時代,壟斷PC江湖的是WINTEL(微軟和英特爾),那么在移動互聯(lián)網(wǎng)時代,最具有這個潛質(zhì)的就是谷歌的andriod操作系統(tǒng)和ARM芯片。基于ARM公司授權(quán)的各型ARM處理器,基本上在各型嵌入式終端設(shè)備占據(jù)了壟斷地位。“背靠大樹好乘涼”,因此,用于作為ARM處理做片上系統(tǒng)互聯(lián)的AMBA總線標(biāo)準(zhǔn)亦成為業(yè)界應(yīng)用最廣泛的標(biāo)準(zhǔn)。

  AMBA總線事實上為三個總線標(biāo)準(zhǔn)的合集,分別是AHB、ASB、APB。ASB已逐漸被AHB所取代,現(xiàn)在使用最廣泛的為AHB和APB總線,以及最新的擴展AXI總線。實際上,現(xiàn)今系統(tǒng)設(shè)計中,經(jīng)常會借鑒AHB或APB總線標(biāo)準(zhǔn),用于設(shè)計各種IP和片內(nèi)模塊之間的互聯(lián)。首先來說AHB和APB總線,一家公司為什么會退出有兩種類型總線,這是因為AHB一般認(rèn)為其具備更高的性能和總線吞吐能力,而APB為低速總線,用于連接低速外設(shè)。兩種總線互補,能夠在性能和功耗方面進(jìn)行互補。

  

 

  如上圖所示

 ?。篈HB總線與APB總線在一個嵌入式系統(tǒng)中的應(yīng)用場景。

  分別用于連接低速設(shè)備和高速設(shè)備。下表列舉其一些主要的差別。

  

 

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

fpga相關(guān)文章:fpga是什么


分頻器相關(guān)文章:分頻器原理

上一頁 1 2 下一頁

關(guān)鍵詞: FPGA AVALON-MM AVALON-ST

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉