基于Nios系統(tǒng)的Avalon總線概述
掃描二維碼
隨時(shí)隨地手機(jī)看文章
Nios系統(tǒng)的所有外設(shè)都是通過(guò)Avalon總線與Nios CPU相接的,Avalon總線是一種協(xié)議較為簡(jiǎn)單的片內(nèi)總線,Nios通過(guò)Avalon總線與外界進(jìn)行數(shù)據(jù)交換。
Avalon總線接口分類
可分為兩類:Slave和Master。slave是一個(gè)從控接口,而master是一個(gè)主控接口。slave和master主要的區(qū)別是對(duì)于Avalon總線控制權(quán)的把握。master接口具有相接的Avalon總線控制權(quán),而slave接口是被動(dòng)的。常見(jiàn)的Avalon的傳輸結(jié)構(gòu)有:Avalon總線從讀(slave read),Avalon總線帶一個(gè)延遲狀態(tài)從讀,Avalon總線從寫(slave write),Avalon總線帶一個(gè)延遲狀態(tài)從寫。
Avalon總線的特點(diǎn)有
所有外設(shè)的接口與Avalon總線時(shí)鐘同步,不需要復(fù)雜的握手/應(yīng)答機(jī)制。這樣就簡(jiǎn)化了Avalon總 線的時(shí)序行為,而且便于集成高速外設(shè)。Avalon總線以及整個(gè)系統(tǒng)的性能可以采用標(biāo)準(zhǔn)的同步時(shí)序分析技術(shù)來(lái)評(píng)估。
所有的信號(hào)都是高電平或低電平有效,便于信號(hào)在總線中高速傳輸。在Avalon總線中,由數(shù)據(jù)選擇器(而不是三態(tài)緩沖器)決定哪個(gè)信號(hào)驅(qū)動(dòng)哪個(gè)外設(shè)。因此外設(shè)即使在未被選中時(shí)也不需要將輸出置為高阻態(tài)。
為了方便外設(shè)的設(shè)計(jì),地址、數(shù)據(jù)和控制信號(hào)使用分離的、專用的端口。外設(shè)不需要識(shí)別地址總線周期和數(shù)據(jù)總線周期,也不需要在未被選中時(shí)使輸出無(wú)效。分離的地址、數(shù)據(jù)和控制通道還簡(jiǎn)化了與片上用戶自定義邏輯的連接 。
其他特性和約定
Avalon總線還包括許多其他特性和約定,用以支持SOPC Builder軟件自動(dòng)生成系統(tǒng)、總線和外設(shè),包括:
最大4GB的地址空間——存儲(chǔ)器和外設(shè)可以映像到32位地址空間中的任意位置
內(nèi)置地址譯碼——Avalon總線自動(dòng)產(chǎn)生所有外設(shè)的片選信號(hào),極大地簡(jiǎn)化了基于Avalon總線的外設(shè)的設(shè)計(jì)工作
多主設(shè)備總線結(jié)構(gòu)——Avalon總線上可以包含多個(gè)主外設(shè),并自動(dòng)生成仲裁邏輯
采用向?qū)椭脩襞渲孟到y(tǒng)——SOPC Builder提供圖形化的向?qū)椭脩暨M(jìn)行總線配置(添加外設(shè)、指定主/從關(guān)系、定義地址映像等)。Avalon總線結(jié)構(gòu)將根據(jù)用戶在向?qū)е休斎氲膮?shù)自動(dòng)生成
動(dòng)態(tài)地址對(duì)齊——如果參與傳輸?shù)碾p方總線寬度不一致,Avalon總線自動(dòng)處理數(shù)據(jù)傳輸?shù)募?xì)節(jié),使得不同數(shù)據(jù)總線寬度的外設(shè)能夠方便地連接
Avalon 總線模塊為外設(shè)提供的服務(wù)
Avalon 總線模塊為連接到總線的Avalon 外設(shè)提供了以下的服務(wù):
數(shù)據(jù)通道多路轉(zhuǎn)換——Avalon 總線模塊的多路復(fù)用器從被選擇的從外設(shè)向相關(guān)主外設(shè)傳輸數(shù)據(jù)。
地址譯碼——地址譯碼邏輯為每一個(gè)外設(shè)提供片選信號(hào)。這樣,單獨(dú)的外設(shè)不需要對(duì)地址線譯碼以產(chǎn)生片選信號(hào),從而簡(jiǎn)化了外設(shè)的設(shè)計(jì)。
產(chǎn)生等待狀態(tài)(Wait-State)——等待狀態(tài)的產(chǎn)生拓展了一個(gè)或多個(gè)周期的總線傳輸,這有利于滿足某些特殊的同步外設(shè)的需要。當(dāng)從外設(shè)無(wú)法在一個(gè)時(shí)鐘周期內(nèi)應(yīng)答的時(shí)候,產(chǎn)生的等待狀態(tài)可以使主外設(shè)進(jìn)入等待狀態(tài)。在讀使能及寫使能信號(hào)需要一定的建立時(shí)間/保持時(shí)間要求的時(shí)候也可以產(chǎn)生等待狀態(tài)。
動(dòng)態(tài)總線寬度——動(dòng)態(tài)總線寬度隱藏了窄帶寬外設(shè)與較寬的Avalon 總線(或者Avalon 總線與更高帶寬的外設(shè))相接口的細(xì)節(jié)問(wèn)題。舉例來(lái)說(shuō),一個(gè)32 位的主設(shè)備從一個(gè)16 位的存儲(chǔ)器中讀數(shù)據(jù)的時(shí)候,動(dòng)態(tài)總線寬度可以自動(dòng)的對(duì)16 位的存儲(chǔ)器進(jìn)行兩次讀操作,從而傳輸32 位的數(shù)據(jù)。這便減少了主設(shè)備的邏輯及軟件的復(fù)雜程度,因?yàn)橹髟O(shè)備不需要關(guān)心外設(shè)的物理特性。
中斷優(yōu)先級(jí)(Interrupt-Priority)分配——當(dāng)一個(gè)或者多個(gè)從外設(shè)產(chǎn)生中斷的時(shí)候,Avalon 總線模塊根據(jù)相應(yīng)的中斷請(qǐng)求號(hào)(IRQ)來(lái)判定中斷請(qǐng)求。
延遲傳輸(Latent Transfer)能力——在主、從設(shè)備之間進(jìn)行帶有延遲傳輸?shù)倪壿嫲贏valon總線模塊的內(nèi)部。
流式讀寫(Streaming Read and Write)能力——在主、從設(shè)備之間進(jìn)行流傳輸使能的邏輯包含于Avalon 總線模塊的內(nèi)部。