FPGA研發(fā)之道—總線(xiàn)
如果設計中有多個(gè)模塊,每個(gè)模塊內部有許多寄存器或者存儲塊需要配置或者提供讀出那么實(shí)現方式有多種,主要如下:
本文引用地址:http://dyxdggzs.com/article/261790.htm實(shí)現方式一:可以在模塊頂部將所有寄存器引出,提供統一的模塊進(jìn)行配置和讀出。這種方式簡(jiǎn)單是簡(jiǎn)單,但是頂層連接工作量較大,并且如果配置個(gè)數較多,導致頂層中寄存器的數目也會(huì )較多。
實(shí)現方式二:通過(guò)總線(xiàn)進(jìn)行連接,為每個(gè)模塊分配一個(gè)地址范圍。這樣寄存器等擴展就可以在模塊內部進(jìn)行擴展,而不用再頂層進(jìn)行過(guò)多的頂層互聯(lián)。如下圖所示:

那如果進(jìn)行總線(xiàn)的選擇,那么有一種極為簡(jiǎn)單的總線(xiàn)推薦被使用,那就是AVALON-MM的總線(xiàn)
ALTERA提出兩種總線(xiàn)類(lèi)型,分別是AVALON-MM,
AVALON-ST。分別用于連接memeory 和數據流的傳送
MM不是你想的意思,其英文為memory map。實(shí)現內存映射是其主要目的。主要信號包括如下表所示:

AVALON因此可以說(shuō)是最簡(jiǎn)單實(shí)用的總線(xiàn)形態(tài)了。對于其操作來(lái)說(shuō),總線(xiàn)為同步類(lèi)型的總線(xiàn),寫(xiě)信號只需要在寫(xiě)使能有效時(shí),同時(shí)提供寫(xiě)數據即可,而讀數據等待信號無(wú)效時(shí),讀出數據有效。
同樣數據類(lèi)型讀數據(readdata)和寫(xiě)數據(writedata)的寬度可以根據設計的需要靈活配置為(8,16,32----256---1024)BIT等值。即可以支持非常大的位寬,但普通應用,只需要(8,16,32,64)BIT等即可滿(mǎn)足應用。
那假設總線(xiàn)寬度32,基本上主流的數據總線(xiàn)的寬度。如果需要更細粒度的劃分,確定讀寫(xiě)某個(gè)字節有效,那么byteenable信號也是必須的。其需要4bit來(lái)標示32bit(4個(gè)byte)中那個(gè)有效,每一BIT表示一個(gè)字節,因此如果要完全表示所有的字節有效,因此字節有效信號的寬度為(數據總線(xiàn)的寬度/8)。AVALON還可以有burst的操作。主設備可以通過(guò)burstcount設備確定brust的長(cháng)度,為2的n-1次方。
對于普通的應用,通過(guò)上述表格中的基本操作即可滿(mǎn)足需求,這也正是AVALON-mm總線(xiàn)的優(yōu)勢。此外模塊按此標準提供連接接口,各種模塊可以?huà)煸贜IOSII的片上系統上。
如果模塊之間為點(diǎn)對點(diǎn)的連接,同時(shí)傳遞大數據量的操作,那么的AVALON-mm總線(xiàn)就不太適合,因此AVALON_streaming總線(xiàn)就適合這種應用場(chǎng)景。
AVALON_streaming總線(xiàn)本質(zhì)上是一種同步并行總線(xiàn),即在同步時(shí)鐘狀態(tài)下,使能有效代表傳遞數據有效。其基本信號如下表所示:


從上圖中,可以看出各信號在數據傳輸中的作用,對于從設備獲取數據的處理,就是VALID有效時(shí),數據有效的采樣操作,非常簡(jiǎn)單方便,易于處理。如果從設備設定ready永為1,則表示沒(méi)有反壓的機制,則主設備,可根據自身收包情況一直向從設備發(fā)送數據包。此外還有其他輔助信號,可以根據設計需要進(jìn)行添加。
使用總線(xiàn)使模塊標準化,便于代碼的移植和設計復用。同時(shí)標準總線(xiàn)的設定和統一定義也利于項目團隊代碼的標準化,便于理解和傳播。
下文將介紹兩種其他應用較廣的總線(xiàn)形態(tài),AHB(AMBA)如果說(shuō)在PC時(shí)代,壟斷PC江湖的是WINTEL(微軟和英特爾),那么在移動(dòng)互聯(lián)網(wǎng)時(shí)代,最具有這個(gè)潛質(zhì)的就是谷歌的andriod操作系統和ARM芯片?;贏(yíng)RM公司授權的各型ARM處理器,基本上在各型嵌入式終端設備占據了壟斷地位。“背靠大樹(shù)好乘涼”,因此,用于作為ARM處理做片上系統互聯(lián)的AMBA總線(xiàn)標準亦成為業(yè)界應用最廣泛的標準。
AMBA總線(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)行互補。

如上圖所示
?。篈HB總線(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))。
fpga相關(guān)文章:fpga是什么
分頻器相關(guān)文章:分頻器原理
評論