資源描述:
《avalon總線與自定義外設(shè)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫(kù)。
1、Avalon總線Avalon?總線是一種將片上處理器和外設(shè)連接成片上可編程系統(tǒng)(SOPC)的一種簡(jiǎn)單總線結(jié)構(gòu)。Avalon總線是一種接口方式,它規(guī)定了主從設(shè)備之間的接口方式及其通信時(shí)序。Avalon端口:由一組Avalon信號(hào)組成的用于Avalon總線模塊和外設(shè)之間進(jìn)行數(shù)據(jù)傳輸?shù)男盘?hào)接口。主端口是主外設(shè)用于在Avalon總線上發(fā)起傳輸?shù)囊唤M信號(hào),從端口是外設(shè)用于接收來自另一個(gè)Avalon外設(shè)主端口的總線傳輸?shù)囊唤M信號(hào)。Avalon總線模塊:是SOPC設(shè)計(jì)中外設(shè)之間通信的主要信道,由各類控制、數(shù)據(jù)和地址信號(hào)以及仲裁邏輯組成將構(gòu)成系統(tǒng)模塊的外設(shè)連接起來
2、,組成更大的系統(tǒng)。Avalon信號(hào)類型:任何一個(gè)連接到Avalon總線模塊的外設(shè)都只保留該外設(shè)內(nèi)部邏輯與Avalon總線模塊連接所需要的信號(hào)。一個(gè)外設(shè)可以保留較少信號(hào)實(shí)現(xiàn)簡(jiǎn)單傳輸,也可以保留較多信號(hào)實(shí)現(xiàn)復(fù)雜傳輸。Avalon信號(hào)時(shí)序:Avalon總線是一個(gè)全同步總線,每個(gè)Avalon端口都與Avalon模塊的時(shí)鐘同步,所有數(shù)據(jù)的傳輸也都同步于這個(gè)時(shí)鐘。對(duì)于同步設(shè)計(jì),Avalon外設(shè)必須只對(duì)時(shí)鐘上升沿時(shí)刻保持穩(wěn)定的信號(hào)作出響應(yīng),并產(chǎn)生穩(wěn)定的輸出信號(hào)。Avalon總線規(guī)范定義了avalon支持的下列總線傳輸特性:固定或可變的等待周期(僅限于從端口);帶
3、固定延遲或可變延遲的流水線傳輸特性;建立時(shí)間和保持時(shí)間(僅限于從端口);突發(fā)數(shù)據(jù)傳輸;流控制;三態(tài)。Avalon基本傳輸:對(duì)于從端口基本傳輸:(1)無等待周期的基本從端口讀傳輸只適用于完全異步的從外設(shè),從外設(shè)必須在被選中或者地址變化時(shí)立即向Avalon總線模塊提供數(shù)據(jù)。鎖存輸入或輸出端口的同步外設(shè)不能用無等待周期的基本從端口讀傳輸。(2)理想情況下,基本從端口傳輸?shù)淖畲髷?shù)據(jù)吞吐量是每個(gè)總線時(shí)鐘周期傳送一個(gè)數(shù)據(jù)單元,插入n個(gè)等待周期后,變?yōu)槊縩個(gè)周期傳輸一個(gè)數(shù)據(jù)單元。具有單個(gè)等待周期的讀傳輸一般用于片上的同步外設(shè),使外設(shè)具有至少一個(gè)完整總線周期向Av
4、alon模塊提供返回?cái)?shù)據(jù)。(3)具有可變等待周期的讀傳輸要求從端口使用waitrequest輸出信號(hào);在第一個(gè)周期內(nèi)置waitrequest有效,avalon總線模塊被掛起,從端口置waitrequest無效后的第一個(gè)總線時(shí)鐘上升沿開始捕獲數(shù)據(jù);數(shù)據(jù)可以在置waitrequest無效的那個(gè)周期給定。若使用可變周期的從端口既要讀傳輸又要寫傳輸,則必須使用可變的等待周期。若從端口使用可變等待周期,就不能具有建立時(shí)間和保持時(shí)間,因?yàn)橥庠O(shè)可以在片內(nèi)同步產(chǎn)生waitrequest信號(hào)。(4)一些片外的異步外設(shè),在read信號(hào)來之前,Address和chips
5、elect信號(hào)需要穩(wěn)定一段時(shí)間,這段時(shí)間稱為建立時(shí)間。讀傳輸和寫傳輸?shù)慕r(shí)間相同。建立時(shí)間不能和可變等待周期共存。寫傳輸還需要保持時(shí)間,在write信號(hào)失效后,address、byteenable、writedata、chipselect、信號(hào)需要保持一段時(shí)間。讀傳輸所需周期=n周期建立時(shí)間+m周期等待時(shí)間+1周期捕獲數(shù)據(jù)時(shí)間寫傳輸所需周期=n周期建立時(shí)間+m周期等待時(shí)間+p周期保持時(shí)間+1周期捕獲數(shù)據(jù)時(shí)間對(duì)于基本主端口傳輸:在發(fā)起傳輸之前置所有信號(hào)有效,等待直到avalon總線模塊使waitrequest無效,才繼續(xù)數(shù)據(jù)傳輸。若要讀取的數(shù)據(jù)未準(zhǔn)
6、備好,Avalon模塊置等待請(qǐng)求使主端口暫停直到數(shù)據(jù)準(zhǔn)備好,因此主端口所帶的等待周期一定是可變的,不存在帶建立時(shí)間和保持時(shí)間的主端口傳輸。無等待周期的基本主端口傳輸通常只適用目標(biāo)從外設(shè)是異步的且無延遲。Avalon流水線傳輸模式只存在流水線讀傳輸模式,不存在流水線寫傳輸模式。流水線傳輸分為地址階段和數(shù)據(jù)階段,主端口在地址階段提供地址來發(fā)起一次傳輸,從端口在數(shù)據(jù)階段提交數(shù)據(jù)完成傳輸。流水線延遲是指從地址階段(捕獲地址所需的時(shí)鐘周期數(shù))結(jié)束到數(shù)據(jù)階段結(jié)束所需要的時(shí)間,即數(shù)據(jù)的持續(xù)時(shí)間。地址階段的持續(xù)時(shí)間決定一個(gè)端口的吞吐量,數(shù)據(jù)階段的持續(xù)時(shí)間只反映第一
7、個(gè)有效數(shù)據(jù)單元返回所需要的時(shí)間。地址階段期間,從端口可以使用建立時(shí)間和等待周期,等待周期結(jié)束后的第一個(gè)時(shí)鐘上升沿,地址階段結(jié)束,從端口必須在地址階段的最后一個(gè)時(shí)鐘上升沿捕獲地址信號(hào),在地址階段不返回有效數(shù)據(jù);在數(shù)據(jù)階段,外設(shè)經(jīng)過n個(gè)總線時(shí)鐘周期的固定延遲來處理address信號(hào),并產(chǎn)生有效返回?cái)?shù)據(jù)。從端口必須保證獲得address之后的第n個(gè)總線時(shí)鐘上升沿提供有效readdata。(n為數(shù)據(jù)階段長(zhǎng)度)具有可變延遲的流水線讀傳輸需要readdatavalid信號(hào),標(biāo)示從端口何時(shí)提供有效數(shù)據(jù)到avalon總線模塊。具有可變延遲的流水線從端口必須在捕獲a
8、ddress之后的至少一個(gè)時(shí)鐘周期再返回readdata。帶流水線傳輸?shù)膹亩丝诘南拗疲海?)具有可變延遲的流水線從端口不能