




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 Avalon 總線(xiàn)規(guī)范概 要 Avalon 總線(xiàn)是一種將片上處理器和外設(shè)連接成片上可編程系統(tǒng)(SOPC)的一種簡(jiǎn)單總線(xiàn)結(jié)構(gòu)。Avalon總線(xiàn)是一種接口方式,它規(guī)定了主從設(shè)備之間的接口方式及其通信時(shí)序。Avalon 總線(xiàn)的設(shè)計(jì)目的在于: 簡(jiǎn)便:提供了簡(jiǎn)單易學(xué)的協(xié)議; 優(yōu)化總線(xiàn)邏輯的資源利用:節(jié)約了可編程器件(PLD)內(nèi)部的邏輯單元(LE); 同步操作:將PLD 上的其他用戶(hù)邏輯很好的集成在一起,從而避免了復(fù)雜的時(shí)序分析;基本的Avalon 總線(xiàn)事務(wù)可以在主從設(shè)備之間傳送一個(gè)字節(jié),半字或字(8,16 或32 位)。當(dāng)一次事務(wù)處理完成,總線(xiàn)可以迅速的在下一個(gè)時(shí)鐘到來(lái)的時(shí)候在相同的主從設(shè)備
2、之間或其他的主從設(shè)備間開(kāi)始新的事務(wù)。Avalon 總線(xiàn)也支持一些高級(jí)功能,如“延遲型(latency-aware)外設(shè)”,“流(streaming)外設(shè)”及多總線(xiàn)主設(shè)備。這些高級(jí)的功能使其允許在一個(gè)總線(xiàn)事務(wù)中進(jìn)行外設(shè)間的多數(shù)據(jù)單元的傳輸。Avalon 總線(xiàn)支持多個(gè)總線(xiàn)主設(shè)備。多主設(shè)備的結(jié)構(gòu)為SOPC 系統(tǒng)及高帶寬外設(shè)提供了很大程度上的穩(wěn)定性。例如,一個(gè)主外設(shè)可以進(jìn)行直接存儲(chǔ)器訪(fǎng)問(wèn)(DMA),而不需要處理器在數(shù)據(jù)傳輸路徑上從外設(shè)將數(shù)據(jù)讀入存儲(chǔ)器。Avalon 總線(xiàn)上,主設(shè)備和從設(shè)備之間的相互作用是基于一種被稱(chēng)為“從設(shè)備(slave-side)仲裁”的技術(shù)。從設(shè)備仲裁決定了當(dāng)多主設(shè)備在同一時(shí)刻嘗試
3、連接同一個(gè)從設(shè)備的時(shí)候,哪個(gè)主設(shè)備獲得從設(shè)備控制權(quán)。從設(shè)備仲裁具有兩個(gè)優(yōu)勢(shì):1仲裁細(xì)節(jié)內(nèi)嵌于A(yíng)valon 總線(xiàn)內(nèi)部。所以,主設(shè)備和從設(shè)備的接口具有一致性,不考慮總線(xiàn)上的主設(shè)備和從設(shè)備的數(shù)量。在每一個(gè)和Avalon 總線(xiàn)相連接的主設(shè)備看來(lái),它都是總線(xiàn)上唯一的主設(shè)備。2 多個(gè)主設(shè)備可以同時(shí)完成總線(xiàn)事務(wù),就像他們并不是在同一個(gè)總線(xiàn)周期連接到同一個(gè)從設(shè)備一樣。Avalon 總線(xiàn)的設(shè)計(jì)是為了配合片上可編程系統(tǒng)(SOPC)的。它是一種由PLD 內(nèi)部邏輯和布線(xiàn)資源的主動(dòng)片上總線(xiàn)結(jié)構(gòu)。Avalon 結(jié)構(gòu)的一些原則如下:1 與外設(shè)的接口同步于A(yíng)valon 時(shí)鐘。所以,沒(méi)有復(fù)雜的,異步的握手/應(yīng)答模式。Avalo
4、n 總線(xiàn)(及整個(gè)系統(tǒng))的性能可以通過(guò)使用標(biāo)準(zhǔn)的同步時(shí)序分析技術(shù)來(lái)實(shí)現(xiàn)測(cè)量。2 所有的信號(hào)都是有效“低”和“高”,這樣便于總線(xiàn)操作的立即轉(zhuǎn)換。位于A(yíng)valon 內(nèi)部的多路復(fù)用器(不是三態(tài)緩沖器)來(lái)決定哪個(gè)信號(hào)驅(qū)動(dòng)哪個(gè)外設(shè)。3 地址,數(shù)據(jù)和控制信號(hào)使用分離的,專(zhuān)用端口,這樣簡(jiǎn)化了外設(shè)的設(shè)計(jì)。外設(shè)不需要對(duì)地址和數(shù)據(jù)的總線(xiàn)周期進(jìn)行解碼,也不需要在非使能的時(shí)候禁止輸出 功 能 簡(jiǎn) 介 Avalon 也包括很多的功能和約定來(lái)支持SOPC Builder 軟件自動(dòng)產(chǎn)生的系統(tǒng)總線(xiàn)和外設(shè):高于4G 的地址空間存儲(chǔ)器和外設(shè)可以被映射為32 位地址空間中的任何地址。同步接口所有的
5、Avalon 信號(hào)都被Avalon 總線(xiàn)時(shí)鐘同步。這樣簡(jiǎn)化了Avalon 總線(xiàn)的相關(guān)時(shí)序行為并便于高速外設(shè)的集成。分離的地址,數(shù)據(jù)和控制線(xiàn)路分離的,專(zhuān)用的地址和數(shù)據(jù)路徑更便于與用戶(hù)邏輯相連接。外設(shè)不需要對(duì)數(shù)據(jù)和地址周期進(jìn)行譯碼。內(nèi)置地址譯碼器Avalon 總線(xiàn)自動(dòng)的為所有外設(shè)產(chǎn)生片選(Chip Select)信號(hào),大大的簡(jiǎn)化了Avalon 外設(shè)的設(shè)計(jì)。 多主設(shè)備總線(xiàn)結(jié)構(gòu)在A(yíng)valon 總線(xiàn)上可以存在多個(gè)主外設(shè)。Avalon 總線(xiàn)自動(dòng)產(chǎn)生仲裁邏輯。基于向?qū)降呐渲梅奖闶褂玫膱D形化向?qū)б龑?dǎo)用戶(hù)完成對(duì)Avalon 總線(xiàn)的配置(增加外設(shè),確定主/從關(guān)系,定義存儲(chǔ)器映射
6、)。 Avalon 總線(xiàn)結(jié)構(gòu)的自動(dòng)產(chǎn)生是由用戶(hù)在向?qū)Ы缑娴妮斎雭?lái)決定的。動(dòng)態(tài)總線(xiàn)容量Avalon 總線(xiàn)自動(dòng)處理數(shù)據(jù)位寬不匹配的外設(shè)間傳送數(shù)據(jù)的細(xì)節(jié),便于在多種不同寬度的設(shè)備間接口。名 詞 及 概 念 許多與SOPC 相關(guān)的名詞和概念都完全是新的,他們和傳統(tǒng)的片外總線(xiàn)結(jié)構(gòu)有著本質(zhì)的不同。設(shè)計(jì)者需要懂得這點(diǎn),以便可以理解Avalon 總線(xiàn)規(guī)范。下面的名次及概念構(gòu)成了一個(gè)理論化的框架,而Avalon總線(xiàn)規(guī)范就是建立在這一框架的基礎(chǔ)上的。它們貫穿于整個(gè)文檔??偩€(xiàn)周期 總線(xiàn)周期被定義為Avalon 主時(shí)鐘的相鄰上升沿之間的時(shí)間間隔,它是總線(xiàn)時(shí)鐘周期的基本單元??偩€(xiàn)信號(hào)時(shí)
7、序參照于總線(xiàn)周期時(shí)鐘。總線(xiàn)傳輸 Avalon 總線(xiàn)的一次傳輸是對(duì)數(shù)據(jù)的一次讀/寫(xiě)操作,它可能持續(xù)一個(gè)或多個(gè)總線(xiàn)周期。Avalon 總線(xiàn)所支持的傳輸位寬為:一個(gè)字節(jié)(8 位),半個(gè)字(16 位)或一個(gè)字(32 位)。流傳輸流傳輸為“流主設(shè)備”和“流從設(shè)備”之間的連續(xù)性數(shù)據(jù)傳輸建立一個(gè)開(kāi)放式的管道。具有延遲的讀傳輸:某些同步外設(shè)在開(kāi)始第一次傳輸?shù)臅r(shí)候需要延遲一些時(shí)鐘周期,但在之后的傳輸中便可以在每一個(gè)時(shí)鐘周期都返回?cái)?shù)據(jù)。具有延遲的讀傳輸增加了對(duì)這種同步設(shè)備的總線(xiàn)利用率。 帶有延遲的讀傳輸有些同步設(shè)備在剛剛開(kāi)始傳輸?shù)臅r(shí)候,需要延遲幾個(gè)時(shí)鐘周期才能夠完成其第一次讀數(shù)據(jù)
8、的過(guò)程,而在之后的傳輸過(guò)程中就可以每一個(gè)周期返回一個(gè)數(shù)據(jù)。帶有延遲的讀傳輸可以增加這些同步設(shè)備的帶寬利用率。延遲性傳輸允許一個(gè)主設(shè)備發(fā)出讀請(qǐng)求后,轉(zhuǎn)而執(zhí)行另一個(gè)無(wú)關(guān)任務(wù),過(guò)一段時(shí)間再接收數(shù)據(jù)。盡管之前的數(shù)據(jù)還沒(méi)有接受到,這個(gè)無(wú)關(guān)的任務(wù)也可以發(fā)出另一次讀請(qǐng)求。這有利于進(jìn)行連續(xù)標(biāo)準(zhǔn)地址的存取的指令存取操作和DMA 傳輸。這樣,CPU 和DMA 主設(shè)備可以預(yù)讀取其需要的數(shù)據(jù),所以這使得同步存儲(chǔ)器保持活躍狀態(tài),并減少了平均存儲(chǔ)延時(shí)。 SOPC Builder 軟件及Avalon 總線(xiàn)的產(chǎn)生SOPC Builder 是Altera 開(kāi)發(fā)的一款系統(tǒng)生成和集成工具。SOPC Builder 所產(chǎn)生
9、的片上電路系統(tǒng)模塊包括Avalon 總線(xiàn)、主外設(shè)和從外設(shè)。SOPC Builder 提供了圖形化的用戶(hù)接口,應(yīng)用這種接口可以實(shí)現(xiàn)向系統(tǒng)模塊中添加主、從外設(shè),配置外設(shè)及配置Avalon 總線(xiàn)將外設(shè)連接起來(lái)。這樣,SOPC Builder 自動(dòng)的創(chuàng)建并連接HDL 模塊,便可以實(shí)現(xiàn)用戶(hù)PLD 設(shè)計(jì)的每一個(gè)部分。 系統(tǒng)模塊 考慮在可編程芯片上實(shí)現(xiàn)用戶(hù)自定義系統(tǒng)的結(jié)構(gòu),其中一部分是由SOPC Builder 自動(dòng)產(chǎn)生的。在A(yíng)ltera PLD 上實(shí)現(xiàn)的完整系統(tǒng)如圖1 所示。出于本文的目的,系統(tǒng)模塊的一些部分是由SOPC Builder 自動(dòng)產(chǎn)生的。系統(tǒng)模塊應(yīng)該包括最少一個(gè)Avalon
10、 主外設(shè)和一個(gè)Avalon 從外設(shè),例如UART,定時(shí)器或者PIO。系統(tǒng)模塊的外部邏輯可以包含用戶(hù)Avalon 外設(shè)及其他的和系統(tǒng)模塊不相關(guān)的用戶(hù)邏輯。系統(tǒng)模塊必須與設(shè)計(jì)者的PLD 設(shè)計(jì)連接起來(lái) 。系統(tǒng)模塊的端口依賴(lài)于其所包括的外設(shè)及在SOPCBuilder 中進(jìn)行的設(shè)置,并隨其變化。這些端口包括直接到Avalon 總線(xiàn)的接口及在系統(tǒng)模塊中的用戶(hù)自定義的和外設(shè)相連的接口。Avalon 總線(xiàn)模塊 圖1. Altera PLD 上集成用戶(hù)邏輯的系統(tǒng)模塊 Avalon 總線(xiàn)模塊是任何一個(gè)系統(tǒng)模塊的“脊梁”。它是SOPC 設(shè)計(jì)中外設(shè)通信的主要路徑。Avalon 總線(xiàn)模塊是所有的控制
11、、數(shù)據(jù)、地址信號(hào)及控制邏輯的總和,是其將外設(shè)連接起來(lái)并構(gòu)成了系統(tǒng)模塊。Avalon總線(xiàn)模塊實(shí)現(xiàn)了可配置的總線(xiàn)結(jié)構(gòu),其可以為設(shè)計(jì)者外設(shè)之間的相互連接而改變。Avalon 總線(xiàn)模塊是由SOPC Builder 自動(dòng)產(chǎn)生的,所以設(shè)計(jì)師并不用親自將總線(xiàn)和外設(shè)連接起來(lái)。Avalon總線(xiàn)模塊基本上不會(huì)作為分離的單元而單獨(dú)使用,因?yàn)橄到y(tǒng)設(shè)計(jì)者總是利用SOPC Builder 將處理器和其他Avalon 外設(shè)自動(dòng)地集成于一個(gè)系統(tǒng)模塊之中。設(shè)計(jì)者對(duì)Avalon 總線(xiàn)的注意力通常限于與用戶(hù)Avalon外設(shè)相連接地具體的端口上。Avalon 總線(xiàn)模塊(一條Avalon 總線(xiàn))是一個(gè)主動(dòng)的邏輯單元,它取代了PCB 板
12、上的被動(dòng)的,金屬總線(xiàn)。(見(jiàn)圖2)這就是說(shuō),Avalon 總線(xiàn)模塊的端口可以被看作是所有連接到被動(dòng)總線(xiàn)的引腳連接。本手冊(cè)只是定義了包含于A(yíng)valon 總線(xiàn)模塊接口中的端口,邏輯行為和信號(hào)順序,而沒(méi)有提及物理總線(xiàn)的電氣或物理的性能。 圖2 .Avalon 總線(xiàn)模塊框圖范例系統(tǒng) Avalon 總線(xiàn)模塊為連接到總線(xiàn)的Avalon 外設(shè)提供了以下的服務(wù): 數(shù)據(jù)通道多路轉(zhuǎn)換Avalon 總線(xiàn)模塊的多路復(fù)用器從被選擇的從外設(shè)向相關(guān)主外設(shè)傳輸數(shù)據(jù)。 地址譯碼地址譯碼邏輯為每一個(gè)外設(shè)提供片選信號(hào)。這樣,單獨(dú)的外設(shè)不需要對(duì)地址線(xiàn)譯碼以產(chǎn)生片選信號(hào),從而簡(jiǎn)化了
13、外設(shè)的設(shè)計(jì)。 產(chǎn)生等待狀態(tài)(Wait-State)等待狀態(tài)的產(chǎn)生拓展了一個(gè)或多個(gè)周期的總線(xiàn)傳輸,這有利于滿(mǎn)足某些特殊的同步外設(shè)的需要。當(dāng)從外設(shè)無(wú)法在一個(gè)時(shí)鐘周期內(nèi)應(yīng)答的時(shí)候,產(chǎn)生的等待狀態(tài)可以使主外設(shè)進(jìn)入等待狀態(tài)。在讀使能及寫(xiě)使能信號(hào)需要一定的建立時(shí)間/保持時(shí)間要求的時(shí)候也可以產(chǎn)生等待狀態(tài)。圖2 .Avalon 總線(xiàn)模塊框圖范例系統(tǒng) 動(dòng)態(tài)總線(xiàn)寬度動(dòng)態(tài)總線(xiàn)寬度隱藏了窄帶寬外設(shè)與較寬的Avalon 總線(xiàn)(或者Avalon 總線(xiàn)與更高帶寬的外設(shè))相接口的細(xì)節(jié)問(wèn)題。舉例來(lái)說(shuō),一個(gè)32 位的主設(shè)備從一個(gè)16 位的存儲(chǔ)器中讀數(shù)據(jù)的時(shí)候,動(dòng)態(tài)總線(xiàn)寬度可以自動(dòng)的對(duì)16 位的存儲(chǔ)器進(jìn)行兩次讀操作,從而傳輸32
14、位的數(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 總線(xiàn)模塊根據(jù)相應(yīng)的中斷請(qǐng)求號(hào)(IRQ)來(lái)判定中斷請(qǐng)求。 延遲傳輸(Latent Transfer)能力在主、從設(shè)備之間進(jìn)行帶有延遲傳輸?shù)倪壿嫲贏(yíng)valon總線(xiàn)模塊的內(nèi)部。 流式讀寫(xiě)(Streaming Read and Write)能力在主、從設(shè)備之間進(jìn)行流傳輸使能的邏輯包含于A(yíng)valon 總線(xiàn)模塊的內(nèi)部。Avalon 外設(shè)連接于A(yíng)valon 總線(xiàn)的Avalon 外設(shè)是邏輯器件無(wú)論片上還是片外的它們進(jìn)
15、行著某種系統(tǒng)級(jí)的任務(wù),并通過(guò)Avalon 總線(xiàn)與其他的系統(tǒng)部件相通信。外設(shè)是模塊化的系統(tǒng)部件,依賴(lài)于系統(tǒng)的需要,可以在設(shè)計(jì)的時(shí)候增加或者移除。Avalon 外設(shè)可以是存儲(chǔ)器、處理器,也可以是傳統(tǒng)的外設(shè)器件,如UART,PIO,定時(shí)器或總線(xiàn)橋。任何的用戶(hù)邏輯都可以成為Avalon 外設(shè),只要它滿(mǎn)足本文所述的提供與Avalon 總線(xiàn)接口的地址、數(shù)據(jù)及控制信號(hào)接口。連接于A(yíng)valon 總線(xiàn)的外設(shè)將被分配專(zhuān)用的端口。除了連接于A(yíng)valon 總線(xiàn)的地址、數(shù)據(jù)及控制端口之外用戶(hù)也可以自行定制端口。這些于用戶(hù)邏輯相連接的信號(hào)擴(kuò)展了系統(tǒng)模塊的應(yīng)用。Avalon 外設(shè)要么是主外設(shè),要么是從外設(shè)。主外設(shè)可以于A(yíng)v
16、alon 上開(kāi)啟總線(xiàn)傳輸,其至少有一個(gè)連接于A(yíng)valon 總線(xiàn)模塊的主端口。主外設(shè)也可以有一個(gè)從端口其允許此設(shè)備接受其他連接于A(yíng)valon 總線(xiàn)的主設(shè)備開(kāi)啟的總線(xiàn)傳輸。而從設(shè)備只能響應(yīng)Avalon 總線(xiàn)傳輸,而不能夠開(kāi)啟總線(xiàn)傳輸。像存儲(chǔ)器,UART 這樣的從設(shè)備,通常只有與Avalon總線(xiàn)模塊相連接的一個(gè)從端口。在SOPC 環(huán)境中,區(qū)分以下Avalon 總線(xiàn)主設(shè)備/從設(shè)備的外設(shè)類(lèi)型是十分重要的。系統(tǒng)模塊內(nèi)部外設(shè)如果SOPC Builder 在外設(shè)庫(kù)中找到了一個(gè)外設(shè),或者設(shè)計(jì)者指定了一個(gè)用戶(hù)外設(shè)的設(shè)計(jì)文件,SOPCBuilder 將自動(dòng)的將此外設(shè)與Avalon 總線(xiàn)模塊相連接。這種外設(shè)是指系統(tǒng)模
17、塊之內(nèi)的外設(shè),也就是被認(rèn)為是系統(tǒng)模塊的一個(gè)部分。與Avalon 總線(xiàn)相連接的地址、數(shù)據(jù)及控制端口是向用戶(hù)隱藏的。外設(shè)中任何附加的非Avalon 端口將作為系統(tǒng)模塊的端口顯示于外。這些端口可能與物理管腳直接相連或者可能與片上的其他模塊相連。系統(tǒng)模塊外部外設(shè)Avalon 總線(xiàn)外設(shè)也可以存在于系統(tǒng)模塊之外。設(shè)計(jì)者選擇將模塊置于系統(tǒng)模塊之外可能有以下幾個(gè)原因: 外設(shè)在物理上位于PLD 器件之外 外設(shè)需要某些粘連邏輯(glue logic)使其與Avalon 總線(xiàn)信號(hào)連接 在系統(tǒng)模塊產(chǎn)生的時(shí)候,外設(shè)的設(shè)計(jì)還沒(méi)有完成在這些情況下,相應(yīng)的Avalon 總線(xiàn)模塊信號(hào)作為系統(tǒng)模塊的端口現(xiàn)于外部(及指定的外設(shè))。
18、主端口(Master Port)主端口是主外設(shè)上用于開(kāi)啟Avalon 總線(xiàn)傳輸?shù)囊幌盗卸丝诘募?。主端口于A(yíng)valon 總線(xiàn)模塊直接相連。實(shí)際上,一個(gè)主外設(shè)可能有一個(gè)或多個(gè)主端口及一個(gè)從端口。這些主端口及從端口的相互依賴(lài)關(guān)系是由對(duì)外設(shè)進(jìn)行設(shè)計(jì)時(shí)決定的。但是,這些主、從端口上的單獨(dú)的總線(xiàn)傳輸應(yīng)該總是遵循本文所述。本文中所提及的所有主設(shè)備傳輸都是指單獨(dú)的主端口的Avalon 總線(xiàn)傳輸。從端口(Slave Port)從端口是指在位于某一外設(shè)上的,從另一外設(shè)主端口接受Avalon 總線(xiàn)傳輸?shù)囊幌盗卸丝诘募稀亩丝谝仓苯优cAvalon 總線(xiàn)模塊相連接。主外設(shè)也可以有一個(gè)從端口,通過(guò)這個(gè)從端口可以使其接
19、受Avalon 總線(xiàn)上其他主設(shè)備的傳輸。本文所提及的所有從設(shè)備傳輸都是指單獨(dú)的從端口的Avalon 總線(xiàn)傳輸。主-從端口對(duì)(Master-Slave Pair)“主從端口對(duì)”是指通過(guò)Avalon 總線(xiàn)模塊相連接的一個(gè)主端口和一個(gè)從端口構(gòu)成的組合。從結(jié)構(gòu)上講,這些主、從端口與Avalon 總線(xiàn)模塊上的相應(yīng)端口相連接。主端口的控制及數(shù)據(jù)信號(hào)可以有效的通過(guò)Avalon 總線(xiàn)模塊與從端口相互作用。主、從端口之間的連接(這就構(gòu)成了主-從端口對(duì))是在SOPCBuilder 中所確定的。PTF 文件、SOPC Builder 參數(shù)及開(kāi)關(guān)Avalon 總線(xiàn)及外設(shè)的配置可以利用基于向?qū)У腟OPC Builder
20、 圖形用戶(hù)接口(GUI)來(lái)完成。通過(guò)這個(gè)GUI,用戶(hù)可以設(shè)定不同的參數(shù)和開(kāi)關(guān),然后據(jù)此產(chǎn)生系統(tǒng)的PTF 文件。PTF 文件是一個(gè)文本化的文件,它定義了: 定義Avalon 總線(xiàn)模塊結(jié)構(gòu)、功能的參數(shù) 定義每個(gè)外設(shè)定義結(jié)構(gòu)、功能的參數(shù) 每個(gè)外設(shè)的主、從角色 外設(shè)端口(如讀使能、寫(xiě)使能、寫(xiě)數(shù)據(jù)等) 通往多主端口的從端口的仲裁機(jī)制然后,PTF 文件通過(guò)HDL 產(chǎn)生器創(chuàng)建了系統(tǒng)模塊的寄存器傳輸級(jí)(RTL)描述。更多的關(guān)于系統(tǒng)PTF 文件的信息請(qǐng)查看“SOPC Builder 數(shù)據(jù)文檔”(SOPC Builder DataSheet)和 “SOPC Builder PTF 文件參考手冊(cè)”(SOPC Bui
21、lder PTF File Reference Manual) 1.3Avalon 總線(xiàn)傳輸 Avalon總線(xiàn)規(guī)范定義了主端口和從端口之間通過(guò)Avalon總線(xiàn)模塊傳輸數(shù)據(jù)所需要的信號(hào)和時(shí)序。構(gòu)成Avalon總線(xiàn)模塊和外設(shè)之間接口的信號(hào)隨著傳輸模式的不同而不同。首先,主傳輸與從傳輸?shù)慕涌诓煌?,使用主端口與從端口的信號(hào)定義不同。此外,通過(guò)系統(tǒng)PTF文件的設(shè)置,所需信號(hào)的確切類(lèi)型與數(shù)量也是可變的。Avalon總線(xiàn)規(guī)范提供了各種選項(xiàng)來(lái)剪裁總線(xiàn)信號(hào)和時(shí)序,以滿(mǎn)足不同類(lèi)型外設(shè)的需要。Avalon總線(xiàn)基本傳輸模式在一個(gè)主從端口對(duì)之間每次只傳送一個(gè)單元的數(shù)據(jù)??梢酝ㄟ^(guò)插入等待周期來(lái)延長(zhǎng)一次總線(xiàn)傳輸?shù)?/p>
22、時(shí)間,以滿(mǎn)足低速外設(shè)的需要。流傳輸模式以及支持并發(fā)多主端口傳輸?shù)哪芰M(mǎn)足高帶寬外設(shè)的需要。所有Avalon從傳輸?shù)男盘?hào)時(shí)序都源自從端口的基本傳輸模式。同樣,主端口的基本傳輸模式是所有Avalon主傳輸?shù)幕A(chǔ)。 主端口接口與從端口接口當(dāng)討論Avalon總線(xiàn)傳輸時(shí),必須注意討論的是總線(xiàn)的哪一邊,是主端口接口還是從端口接口。由主端口輸出的信號(hào)與輸入到目標(biāo)外設(shè)的從端口的對(duì)應(yīng)信號(hào)可能會(huì)有較大的差別。從端口的信號(hào)活動(dòng)總是主外設(shè)發(fā)起總線(xiàn)傳輸?shù)慕Y(jié)果。但是,實(shí)際的從端口輸入信號(hào)并非直接來(lái)自主端口。Avalon總線(xiàn)模塊傳遞來(lái)自主端口的信號(hào),并對(duì)信號(hào)進(jìn)行裁剪,以滿(mǎn)足從外設(shè)的需要。由于以上原因,對(duì)Avalo
23、n總線(xiàn)傳輸?shù)慕榻B將分為主傳輸類(lèi)型和從傳輸類(lèi)型兩個(gè)部分。大多數(shù)用戶(hù)只關(guān)心從傳輸,因?yàn)樗麄冊(cè)O(shè)計(jì)的用戶(hù)自定義外設(shè)一般都是從外設(shè)。邊時(shí),用戶(hù)只需考慮Avalon總線(xiàn)模塊和用戶(hù)自定義外設(shè)之間的信號(hào)。只有當(dāng)用戶(hù)創(chuàng)建主外設(shè)時(shí)才涉及到主傳輸。 Avalon總線(xiàn)時(shí)序Avalon總線(xiàn)是一個(gè)同步總線(xiàn)接口,由一個(gè)Avalon總線(xiàn)主時(shí)鐘定時(shí),所有總線(xiàn)傳輸?shù)男盘?hào)都與Avalon總線(xiàn)時(shí)鐘同步。同步總線(xiàn)接口并不意味著所有的Avalon總線(xiàn)信號(hào)都是鎖存的。比如,Avalon的chips
24、elect信號(hào)便是由組合邏輯產(chǎn)生的,其輸入是同步于A(yíng)valon總線(xiàn)時(shí)鐘的寄存器的輸出。因此,外設(shè)不能使用Avalon信號(hào)的邊沿,因?yàn)锳valon信號(hào)在達(dá)到穩(wěn)定前會(huì)變化多次人。就像所有同步設(shè)計(jì)一樣,Avalon總線(xiàn)外設(shè)只能在時(shí)鐘上升沿對(duì)穩(wěn)定的信號(hào)作出響應(yīng),且必須在時(shí)鐘上升沿輸出穩(wěn)定的信號(hào)。Avalon總線(xiàn)模塊也可以連接異步外設(shè),例如片外異步存儲(chǔ)器。但設(shè)計(jì)時(shí)需要考慮一些額外因素:由于A(yíng)valon總線(xiàn)模塊的同步操作,Avalon信號(hào)只以Avalon總線(xiàn)時(shí)鐘周期為間隔變化。此外,如果異步外設(shè)的輸出直接連接到Avalon總線(xiàn)模塊,用戶(hù)必須保證輸出信號(hào)在時(shí)鐘上升之前達(dá)到穩(wěn)定。Avalon總線(xiàn)規(guī)范并不定義在
25、時(shí)鐘上升沿之間信號(hào)是如何變化的。信號(hào)的變化由Avalon總線(xiàn)時(shí)鐘觸發(fā),信號(hào)只要在捕獲時(shí)鐘上升沿之前達(dá)到穩(wěn)定就可以了,因此,總線(xiàn)規(guī)范中的Avalon總線(xiàn)時(shí)序圖中不會(huì)描繪精確的時(shí)間信息。類(lèi)似地,Avalon總線(xiàn)沒(méi)有規(guī)定固有的最高性能。系統(tǒng)模塊在特定的器件上綜合布線(xiàn)之后,用戶(hù)必須對(duì)系統(tǒng)模塊進(jìn)行標(biāo)準(zhǔn)的時(shí)序分析,以確定Avalon總線(xiàn)傳輸達(dá)到的最高速度。 Avalon總線(xiàn)信號(hào)由于A(yíng)valon總線(xiàn)是一個(gè)由HDL文件綜合而來(lái),所以在連接Avalon總線(xiàn)模塊和Avalon外設(shè)時(shí)需
26、要一些特別的考慮。對(duì)于傳統(tǒng)的片外總線(xiàn)結(jié)構(gòu),所有外設(shè)都共享一組固定的.預(yù)先設(shè)計(jì)的金屬線(xiàn)路,而Avalon總線(xiàn)與此不同:SOPCBuilder必須準(zhǔn)確地了解每個(gè)外設(shè)提供了哪些Avalon端口,以便連接外設(shè)與Avalon總線(xiàn)模塊。它還需要了解每個(gè)端口的名稱(chēng)和類(lèi)型,這些信息定義在系統(tǒng)PTF文件中。Avalon總線(xiàn)規(guī)范不要求Avalon外設(shè)必須包含哪些信號(hào)。它只定義了外設(shè)可以包含的各種信號(hào)類(lèi)型(例如地址.數(shù)據(jù).時(shí)鐘等)。外設(shè)的每一個(gè)信號(hào)都要指定一個(gè)有效的Avalon信號(hào)類(lèi)型,以確定該信號(hào)的作用,一個(gè)信號(hào)也可以是用戶(hù)自定義的。在這種情況下,SOPC Builder不將該端口與Avalon總線(xiàn)模塊連接。Av
27、alon信號(hào)類(lèi)型首先分為主端口信號(hào)和從端口信號(hào)兩類(lèi)。因而,外設(shè)使用的信號(hào)類(lèi)型生產(chǎn)生產(chǎn)首先由端口的主從角色決定。每個(gè)狡立的主端口或從端口使用的信號(hào)類(lèi)型由外設(shè)的設(shè)計(jì)決定。例如,設(shè)計(jì)一個(gè)只有輸出的PIO從外設(shè)只需要定義用于寫(xiě)的信號(hào),而不需要定義用于讀的信號(hào)。盡管中斷請(qǐng)求輸出是從端口允許的信號(hào)類(lèi)型,但也不是必須使用。Avalon總線(xiàn)規(guī)范不規(guī)定Avalon外設(shè)信號(hào)的命名規(guī)則。不同信號(hào)類(lèi)型的作用是預(yù)先定義的,而信號(hào)的名稱(chēng)則是由外設(shè)決定。信號(hào)可以按照它的信號(hào)類(lèi)型來(lái)命名,也可以遵照系統(tǒng)級(jí)的命名規(guī)范采用不同的名稱(chēng)。下面章節(jié)中討論的Avalon總線(xiàn)傳輸時(shí)會(huì)涉及到一些Avalon信號(hào),例如readdata信號(hào)和ir
28、q信號(hào)。在這里信號(hào)類(lèi)型的名稱(chēng)作為信號(hào)名稱(chēng),但外設(shè)信號(hào)的實(shí)際名稱(chēng)可以與此不同。作為一個(gè)例子,表1.1列舉了部分Avalon從端口可用的信號(hào)類(lèi)型。信號(hào)的方向是從外設(shè)的角度定義的。例如時(shí)鐘信號(hào)clk(方向?yàn)閕n)對(duì)于從外設(shè)來(lái)說(shuō)是輸入信號(hào),而對(duì)于A(yíng)valon總線(xiàn)模塊來(lái)說(shuō)是輸入信號(hào)。表1.1.部分Avalon從端口信號(hào)信號(hào)類(lèi)型寬度方向必需Description Clk 1 in no系統(tǒng)模塊和Avalon總線(xiàn)模塊的全局時(shí)鐘信號(hào)。所有總線(xiàn)傳輸傳輸都同步于clk。只有異步從端口才能省略clk.address1 - 32inno來(lái)自Avalon總
29、線(xiàn)模塊的地址線(xiàn) Reset 1 in no從端口的讀請(qǐng)求信號(hào)。當(dāng)從端口不輸出數(shù)據(jù)時(shí)不需要該信號(hào)。若使用了該信號(hào),readdata信號(hào)也必須使用 readdata 1 32 out no讀傳輸中輸出到Avalon總線(xiàn)的數(shù)據(jù)線(xiàn)。當(dāng)從端口不輸出數(shù)據(jù)時(shí)不需要該信號(hào)。若使用了該信號(hào),read信號(hào)也必須使用 write 1 in no從端口的寫(xiě)請(qǐng)求信號(hào)。當(dāng)從端口不接收數(shù)據(jù)時(shí)不需要該信號(hào)。若使用了該信號(hào),writedata信號(hào)也必須使用 wri
30、tedata 1 32 in no寫(xiě)傳輸中來(lái)自Avalon總線(xiàn)的數(shù)據(jù)線(xiàn)。當(dāng)從端口不接收數(shù)據(jù)時(shí)不需要該信號(hào)。若使用了該信號(hào),write信號(hào)也必須使用irq1outno中斷請(qǐng)求。當(dāng)從外設(shè)需要外設(shè)服務(wù)時(shí)可觸發(fā)irq 表1.1中例舉的信號(hào)類(lèi)型都是高電平有效。Avalon總線(xiàn)還提供了各個(gè)信號(hào)類(lèi)型的反向形式。在PTF聲明中,在信號(hào)類(lèi)型名稱(chēng)加”_n”,便可將對(duì)應(yīng)的端口聲明為低電平有效。這對(duì)許多使用低電平有效的片外外設(shè)非常有用。 并發(fā)多主端口的Avalon總線(xiàn)需要考慮的事項(xiàng)Avalon總線(xiàn)允許多個(gè)端口連接到Avalon總線(xiàn)模塊。而且實(shí)現(xiàn)Avalon總線(xiàn)的并發(fā)多主端口功能
31、時(shí),Avalon總線(xiàn)模塊不需要額外的特殊信號(hào)。當(dāng)多個(gè)主外設(shè)試圖同時(shí)訪(fǎng)問(wèn)同一個(gè)外設(shè)時(shí),Avalon總線(xiàn)模塊內(nèi)部的從端口仲裁邏輯會(huì)被用來(lái)解決沖突。仲裁機(jī)制對(duì)于A(yíng)valon總線(xiàn)外設(shè)完全是透明的。因而,不論是否使用了仲裁,應(yīng)用于主端口和從端口的Avalon總線(xiàn)傳輸協(xié)議是相同的。換句話(huà)說(shuō),從端口不會(huì)意識(shí)到有多個(gè)主外設(shè)同時(shí)請(qǐng)求總線(xiàn)傳輸。類(lèi)似地,被仲裁邏輯強(qiáng)制等待的主外設(shè)也不會(huì)意識(shí)到另一個(gè)獲勝的主外設(shè)的存在。主端口只是簡(jiǎn)單地發(fā)現(xiàn)它的等待請(qǐng)求信號(hào)被置為有效,并一直等待,直到目標(biāo)外設(shè)準(zhǔn)備好處理總線(xiàn)傳輸。將仲裁的細(xì)節(jié)隱藏在A(yíng)valon總線(xiàn)模塊內(nèi)部極大簡(jiǎn)化了外設(shè)的設(shè)計(jì),任何Avalon外設(shè)在單主端口和多主端口結(jié)構(gòu)中
32、都可以使用。 1.4Avalon從端口傳輸 從傳輸?shù)腁valon總線(xiàn)信號(hào)表2列舉了外設(shè)的從端口與Avalon總線(xiàn)間接口的信號(hào)類(lèi)型。信號(hào)的方向是以外設(shè)的角度定義的。外設(shè)提供的信號(hào)由外設(shè)的設(shè)計(jì)和PTF文件中的信號(hào)定義決定,不需要提供全部的信號(hào)類(lèi)型。 表2 Avalon從端口信號(hào) Signal TypeWidthDirectionRequiredDescriptionclk1inno系統(tǒng)模塊和Avalon總線(xiàn)模塊的全局時(shí)鐘信號(hào)。所有總線(xiàn)傳輸都同步于clk。只有異步從端口才能省略clkreset1inno全局復(fù)位信號(hào)。如何使用取決于外設(shè)chipselect1inyes從端
33、口的片選信號(hào)。當(dāng)chipselect信號(hào)無(wú)效時(shí),從端口必須忽略所有的Avalon信號(hào)輸入address1 - 32inno來(lái)自Avalon總線(xiàn)模塊的地址線(xiàn)begintransfer1inno在每個(gè)新的Avalon總線(xiàn)傳輸?shù)牡谝粋€(gè)總線(xiàn)周期期間有效。如何使用該信號(hào)取決于外設(shè)byteenable0, 2, 4inno字節(jié)使能信號(hào),在訪(fǎng)問(wèn)寬度超過(guò)8位的存儲(chǔ)器時(shí)選擇特定的字節(jié)段,如何使用該信號(hào)取決于外設(shè)read1inno從端口讀請(qǐng)求信號(hào)。當(dāng)從端口不輸出數(shù)據(jù)時(shí)不需要該信號(hào)。若使用了該信號(hào),readdata信號(hào)也必須使用readdata1 32outno讀傳輸中輸出到Avalon總線(xiàn)的數(shù)據(jù)線(xiàn)。當(dāng)從端口不輸出
34、數(shù)據(jù)時(shí)不需要該信號(hào)。若使用了該信號(hào),read信號(hào)也必須使用 write1inno從端口的寫(xiě)請(qǐng)求信號(hào)。當(dāng)從端口不接收數(shù)據(jù)時(shí)不需要該信號(hào)。若使用了該信號(hào),writedata信號(hào)也必須使用writedata1 32inno寫(xiě)傳輸中來(lái)自Avalon總線(xiàn)的數(shù)據(jù)線(xiàn)。當(dāng)從端口不接收數(shù)據(jù)時(shí)不需要該信號(hào)。若使用了該信號(hào),write信號(hào)也必須使用readdatavalid1outno讀取數(shù)據(jù)有效信號(hào),僅用于具有可變讀延遲的從端口。用于標(biāo)記從端口發(fā)出有效數(shù)據(jù)時(shí)的時(shí)鐘上升沿waitrequest1outno等待請(qǐng)求信號(hào),當(dāng)從端口不能立即響應(yīng)時(shí)暫停Avalon總線(xiàn)模塊readyfordata1outno流傳輸
35、模式信號(hào)。表示流模式從端口可以接收數(shù)據(jù)dataavailable1outno流傳輸模式信號(hào)。表示流模式從端口擁有有效數(shù)據(jù)endofpacket1outno流傳輸模式信號(hào)。用于向主端口報(bào)告” 包結(jié)束”狀態(tài)。如何使用取決于外設(shè)irq1outno中斷請(qǐng)求。當(dāng)從外設(shè)需要外設(shè)服務(wù)時(shí)可觸發(fā)irqresetrequest1outno復(fù)位請(qǐng)求信號(hào),該信號(hào)使得一個(gè)外設(shè)可以復(fù)位整個(gè)系統(tǒng)模塊 上述信號(hào)如果不加說(shuō)明都是高電平有效,此外,Avalon總線(xiàn)也提供上述信號(hào)的低電平有效版本,在信號(hào)名稱(chēng)后加”_n”表示低電平有效,如:read信號(hào)為高電平有效,而read_n為低電平有效。 Avalon總線(xiàn)上
36、的從端口讀傳輸 .1基本從端口傳輸模式基本從端口傳輸模式是所有Avalon從端口傳輸?shù)幕A(chǔ)。所有其它的從端口傳輸使用的信號(hào)都包含了基本從端口傳輸?shù)男盘?hào),并擴(kuò)展了基本從端口操作時(shí)序?;緩亩丝趥鬏斢葾valon總線(xiàn)模塊發(fā)起,然后從端口向Avalon總線(xiàn)模塊傳輸一個(gè)單元的數(shù)據(jù)?;緩亩丝谧x傳輸沒(méi)有延遲。例4.1顯示了一個(gè)基本從端口讀傳輸?shù)睦?。在A(yíng)valon基本讀傳輸中,總線(xiàn)傳輸開(kāi)始于一個(gè)時(shí)鐘上升沿,并在下一個(gè)時(shí)鐘上升沿結(jié)束,不插入等待周期。由于傳輸在一個(gè)時(shí)鐘周期內(nèi)完成,目標(biāo)外設(shè)必須能夠立即.異步向Avalon總線(xiàn)模塊輸出相應(yīng)地址的內(nèi)容。在clk的第一個(gè)上升沿,Avalon總線(xiàn)向目標(biāo)外設(shè)
37、傳遞address、byteenable_n和read_n信號(hào)。Avalon總線(xiàn)模塊內(nèi)部對(duì)address進(jìn)行譯碼,產(chǎn)生片選并驅(qū)動(dòng)從端口的chipselect信號(hào)。一旦chipselect信號(hào)有效,從端口在數(shù)據(jù)有效時(shí)應(yīng)立即驅(qū)動(dòng)readdata輸出。最后,Avalon總線(xiàn)模塊在下一個(gè)時(shí)鐘上升沿捕獲readdata。 例4.1基本從端口讀傳輸 時(shí)序說(shuō)明:(A) 第一個(gè)總線(xiàn)周期開(kāi)始于clk上升沿;(B)
38、Address和read_n信號(hào)有效;(C) Avalon總線(xiàn)對(duì)address譯碼,輸出有效的chipselect;(D) 片選有效后,從端口在第一個(gè)總線(xiàn)周期內(nèi)必須返回有效數(shù)據(jù);(E) Avalon總線(xiàn)在下一個(gè)clk上升沿捕獲readdata,讀傳輸?shù)酱私Y(jié)束。另一個(gè)總線(xiàn)傳輸可以在下一個(gè)總線(xiàn)周期開(kāi)始。無(wú)等待周期的基本讀傳輸只適用于完全異步的外設(shè)。目標(biāo)外設(shè)必須在外設(shè)被選中或地址變化時(shí)立即向Avalon總線(xiàn)提供數(shù)據(jù)。為使傳輸正常工作,readda
39、ta的輸出必須在一下個(gè)時(shí)鐘上升沿有效且穩(wěn)定。鎖存輸入或輸出端口的同步外設(shè)不能使用無(wú)等待周期的基本從端口讀傳輸。大部分片上外設(shè)都采用同步接口,因此至少需要一個(gè)時(shí)鐘周期來(lái)捕獲數(shù)據(jù)。在讀傳輸中,需要至少一個(gè)等待周期,除非該外設(shè)是具有延遲的。外設(shè)的從端口還可以使用字節(jié)使能信號(hào)byteenable_n,對(duì)byteenable_n的解釋是由外設(shè)決定的。在最簡(jiǎn)單的情況下,從端口可以忽略byteenable_n,每當(dāng)read_n有效時(shí)總是驅(qū)動(dòng)所有的字節(jié)段。Avalon總線(xiàn)模塊在每次讀傳輸中捕獲readdata的全部位寬度。如果在讀傳輸中某個(gè)字節(jié)未使能,其返回到Avalon總線(xiàn)模塊的值是不確定的。當(dāng)chipse
40、lect無(wú)效時(shí),從端口必須忽略所有其它輸入信號(hào),其輸出信號(hào)沒(méi)有必要置為高阻。此外,chipselect的上升沿或read_n的下降沿不能用作讀傳輸開(kāi)始的標(biāo)志,因?yàn)檫@些邊沿的穩(wěn)定性是沒(méi)有保證的。.2具有固定等待周期的從端口讀傳輸具有固定等待周期從端口傳輸使用的信號(hào)與基本讀傳輸使用的相同,不同點(diǎn)只是信號(hào)的時(shí)序。具有等待周期的從端口讀傳輸適用于不能在一個(gè)時(shí)鐘周期內(nèi)提供數(shù)據(jù)的外設(shè)。例如,若指定了一個(gè)等待周期,Avalon總線(xiàn)模塊在提供了有效的地址和控制信號(hào)后,會(huì)等待一個(gè)時(shí)鐘周期再捕獲外設(shè)的數(shù)據(jù)。Avalon總線(xiàn)模塊在每次讀傳輸時(shí)都會(huì)等待固定數(shù)量的總線(xiàn)周期。例4.2顯示了具有單個(gè)等待周期的從端口讀傳輸?shù)?/p>
41、時(shí)序。Avalon總線(xiàn)模塊在第一個(gè)總線(xiàn)周期提供address、byteenable、read_n和chipselect信號(hào)。由于具有等待周期,外設(shè)不必在第一個(gè)總線(xiàn)內(nèi)提供readdata。第一個(gè)總線(xiàn)周期是第一個(gè)(也是唯一一個(gè))等待周期。從端口可以隨時(shí)捕獲地址和控制信號(hào),片上的同步外設(shè)通常在第二個(gè)總線(xiàn)周期開(kāi)始(等待周期結(jié)束)時(shí)的clk上升沿捕獲地址和控制信號(hào)。在第二個(gè)總線(xiàn)周期間,目標(biāo)外設(shè)向Avalon總線(xiàn)模塊提供readdata。在第三個(gè)也是最后一個(gè)時(shí)鐘上升沿,Avalon總線(xiàn)模塊由從端口捕獲readdata。在第三個(gè)也是最后一個(gè)時(shí)鐘上升沿,Avalon總線(xiàn)模塊由從端口模塊readdata并結(jié)束總
42、線(xiàn)傳輸。時(shí)序說(shuō)明:(A)第一個(gè)總線(xiàn)周期開(kāi)始于clk上升沿;(B)Address和read_n信號(hào)有效;(C)Avalon總線(xiàn)對(duì)address譯碼,輸出有效的chipselect;(D)clk上升沿標(biāo)志著第一個(gè)且是唯一的一個(gè)等待周期結(jié)束。如果從端口是同步的,它可以在clk上升沿捕獲address、read_n、和chipselect;(E) 從端口在第二個(gè)總線(xiàn)周期內(nèi)返回有效數(shù)據(jù);(F)Avalon總線(xiàn)在下一個(gè)clk上升沿捕獲readdata,讀傳輸?shù)酱私Y(jié)束。另一個(gè)總線(xiàn)傳輸可以在下一個(gè)總線(xiàn)周期開(kāi)始。 例4.2具有一個(gè)固定等待周期的從端口讀傳輸 具有單個(gè)等待周期的讀傳輸經(jīng)常用于同
43、步的片上外設(shè)。在合理的PLD設(shè)計(jì)中,模塊間的接口應(yīng)當(dāng)通過(guò)寄存器同步。加入了一個(gè)等待周期后,外設(shè)可以在chipselect有效后的下一個(gè)clk上升沿捕獲address、byteenable、read_n和chipselect,這使得目標(biāo)外設(shè)具有至少一個(gè)完整的總線(xiàn)周期來(lái)向Avalon總線(xiàn)模塊提供返回?cái)?shù)據(jù)。例4.3顯示了具有多個(gè)等待周期的從端口讀傳輸。它和例4.2幾乎是一樣的,只是Avalon總線(xiàn)在由外設(shè)獲取readdata之前等待多于一個(gè)總線(xiàn)周期。 .3 具有外設(shè)控制等待周期的從端口讀傳輸外設(shè)控制的等待周期使得目標(biāo)外
44、設(shè)能夠根據(jù)提供數(shù)據(jù)的需要將Avalon總線(xiàn)模塊的讀操作暫停任意多個(gè)總線(xiàn)周期。在這種傳輸模塊下,外設(shè)向Avalon總線(xiàn)模塊提供數(shù)據(jù)所需的時(shí)間是不固定的。例4.4顯示了這種情況,外設(shè)控制等待周期的讀傳輸模式使用了waitrequest信號(hào)。它是一個(gè)從端口的輸出信號(hào)。當(dāng)從端口的read_n信號(hào)有效后,從端口若要延長(zhǎng)讀傳輸,它必須在第一個(gè)總線(xiàn)周期內(nèi)返回waitrequest。當(dāng)waitrquest有效后,Avalon總線(xiàn)模塊便暫停工作,不再捕獲readdata。Avalon總線(xiàn)模塊在waitrequest失效后的下一個(gè)clk上升沿捕獲readdata。Avalon總線(xiàn)模塊沒(méi)有超時(shí)機(jī)制來(lái)限制從端口暫???/p>
45、線(xiàn)的時(shí)間。當(dāng)Avalon總線(xiàn)模塊暫停后,系統(tǒng)模塊內(nèi)的某個(gè)主外設(shè)也被暫停,并等待著由目標(biāo)從外設(shè)返回需要的數(shù)據(jù)。一個(gè)從端口能夠?qū)⒅鞫丝谟谰玫亍皰炱稹薄R虼?,外設(shè)必須保證不會(huì)使waitrequest無(wú)限期地保持有效。時(shí)序說(shuō)明:(A)第一個(gè)總線(xiàn)周期開(kāi)始于clk上升沿;(B)Address和read_n信號(hào)有效;(C)Avalon總線(xiàn)對(duì)address譯碼,輸出有效的chipselect;(D)從端口在下一個(gè)clk上升沿之前置waitrequest有效(E) Avalon總線(xiàn)模塊在clk上升沿讀取waitrequest。這時(shí)waitrequest有效,因而在該時(shí)鐘上升沿不捕獲readdata;(F-G)w
46、aitrequest一直保持有效,可以占用任意多個(gè)總線(xiàn)周期;(H)從端口提供了有效的readdata;(I) 從端口置waitrequest無(wú)效;(J) Avalon總線(xiàn)在下一個(gè)clk上升沿捕獲readdata,讀傳輸?shù)酱私Y(jié)束。另一次總線(xiàn)傳輸可以開(kāi)始于下一個(gè)總線(xiàn)周期。 若一個(gè)從端口采用了外設(shè)控制等待周期的讀傳輸模式,對(duì)該端口的其它傳輸模式會(huì)有一些限制,比如不能再使用建立時(shí)間和保持時(shí)間。這些限制只影響從端口,不影響連接到Avalon總線(xiàn)模塊上的其它外設(shè)。在大多數(shù)情況下,產(chǎn)生waitrequest信號(hào)的外設(shè)是片上同步外設(shè),不需要考慮建立時(shí)間和等待時(shí)間。 .4具有建立時(shí)間的從端口讀傳輸Av
47、alon總線(xiàn)模塊按照用戶(hù)設(shè)計(jì)或者外設(shè)默認(rèn),能夠自動(dòng)滿(mǎn)足各個(gè)從端口信號(hào)的建立時(shí)間要求,發(fā)起讀傳輸?shù)闹魍庠O(shè)不必考慮各個(gè)信號(hào)對(duì)建立時(shí)間與保持時(shí)間的要求。具有建立時(shí)間的從端口讀傳輸使用的信號(hào)與基本讀傳輸使用的相同,不同點(diǎn)只是信號(hào)的時(shí)序。這種傳輸方式通常用于一些片外外設(shè),它們要求在讀使能信號(hào)有效前address和 Chipselect信號(hào)需要穩(wěn)定一段時(shí)間。一個(gè)非零的建立時(shí)間N意味著address、byteenable_n和chipselect信號(hào)提供給從端口之后,在read_n有效之前有N個(gè)總線(xiàn)周期的延遲。要注意chipselect不受建立時(shí)間的影響,若外設(shè)對(duì)于read_n和chipselect都要求有
48、建立時(shí)間,用戶(hù)必須在接口中手工添加適當(dāng)?shù)倪壿嫞ㄒ粋€(gè)與門(mén))。完成總線(xiàn)傳輸所需的總線(xiàn)周期的總數(shù)取決于建立時(shí)間和等待周期的總線(xiàn)周期。例如,若一個(gè)外設(shè)具有參數(shù)setup_Time=”2”和Read_Wait_States=”3”,安將花費(fèi)6個(gè)總線(xiàn)周期來(lái)完成傳輸:2個(gè)總線(xiàn)周期的建立時(shí)間,3個(gè)總線(xiàn)周期的等待周期,1個(gè)總線(xiàn)周期用來(lái)捕獲數(shù)據(jù)。例4.5顯示了具有一個(gè)總線(xiàn)周期的建立時(shí)間和一個(gè)固定等待周期的從端口讀傳輸。時(shí)序說(shuō)明:(A)第一個(gè)總線(xiàn)周期開(kāi)始于clk上升沿;(B)Address和byteenable_n有效,read_n信號(hào)仍保持無(wú)效;(C)Avalon總線(xiàn)對(duì)address譯碼,輸出有效的chipsel
49、ect;(D)clk上升沿標(biāo)志著建立時(shí)間總線(xiàn)周期結(jié)束,并開(kāi)始總線(xiàn)等待周期;(E) Avalon總線(xiàn)模塊置read_n有效;(F)clk上升沿標(biāo)志著總線(xiàn)等待周期結(jié)束;(H) Avalon總線(xiàn)在下一個(gè)clk上升沿捕獲readdata,讀傳輸?shù)酱私Y(jié)束。另一次總線(xiàn)傳輸可以開(kāi)始于下一個(gè)總線(xiàn)周期。如果一個(gè)外設(shè)能夠同時(shí)支持讀和寫(xiě)總線(xiàn)傳輸,并且指定了建立時(shí)間,那么讀傳輸和寫(xiě)傳輸具有同樣的建立時(shí)間。例4.5具有建立時(shí)間的從端口讀傳輸 在A(yíng)valo
50、n總線(xiàn)上的從端口寫(xiě)傳輸 .1 基本從端口寫(xiě)傳輸和從端口讀傳輸類(lèi)似,基本從端口寫(xiě)傳輸是所有Avalon從端口寫(xiě)傳輸?shù)幕A(chǔ)。所有其它的從端口寫(xiě)傳輸模式使用的信號(hào)都包含了基本從端口寫(xiě)傳輸?shù)男盘?hào),并擴(kuò)展了基本從端口寫(xiě)時(shí)序?;緩亩丝趯?xiě)傳輸由Avalon總線(xiàn)模塊發(fā)起,由Avalon總線(xiàn)模塊向從端口傳輸一個(gè)單元的數(shù)據(jù)?;緩亩丝趯?xiě)傳輸沒(méi)有延遲。例4.6顯示了基本從端口寫(xiě)傳輸,沒(méi)有等待周期、建立時(shí)間和保持時(shí)間。Avalon總線(xiàn)模塊提供address、writedata、byteenable_n和write_n信號(hào),然后設(shè)置ch
51、ipselect有效。從端口在下一個(gè)時(shí)鐘上升沿捕獲地址、數(shù)據(jù)和控制信號(hào),寫(xiě)傳輸立即結(jié)束。整個(gè)傳輸過(guò)程僅花費(fèi)一個(gè)總線(xiàn)周期。從外設(shè)可以在傳輸結(jié)束后再花費(fèi)一些總線(xiàn)周期來(lái)實(shí)際處理寫(xiě)入的數(shù)據(jù)。如果外設(shè)不能在每個(gè)總線(xiàn)周期都接受數(shù)據(jù),則需要加入等待周期。 例4.6基本從端口寫(xiě)傳輸時(shí)序說(shuō)明:(A) 寫(xiě)傳輸開(kāi)始于clk上升沿;(B) Writedata、address、byteenable_n、write_n信號(hào)有效;(C)
52、 Avalon總線(xiàn)模塊對(duì)address譯碼,并向從端口設(shè)置有效的chipselect;(D) 從端口在下一個(gè)clk上升沿捕獲writedata、address、byteenable_n、write_n和chipselect,寫(xiě)傳輸?shù)酱私Y(jié)束。另一次讀或?qū)憘鬏斂梢蚤_(kāi)始于下一個(gè)總線(xiàn)周期?;緦?xiě)傳輸只適合于同步外設(shè),包括許多片上外設(shè),例如PIO和定時(shí)器等?;緦?xiě)傳輸?shù)臅r(shí)序不適合于異步外設(shè),因?yàn)榘╳rite_n和chipselect在內(nèi)的所有輸出信號(hào)同時(shí)失效,這會(huì)在片外存儲(chǔ)器等異步外設(shè)中造成競(jìng)爭(zhēng)
53、冒險(xiǎn)現(xiàn)象。對(duì)于這樣的外設(shè),用戶(hù)可以設(shè)定信號(hào)的保持時(shí)間,這將在后面的章節(jié)中討論。當(dāng)writedata比一個(gè)字節(jié)寬時(shí),字節(jié)使能信號(hào)byteenable_n可以寫(xiě)入特定的字節(jié)段。Byteenable_n是一組信號(hào)線(xiàn),其中每一次對(duì)應(yīng)于writedata的一個(gè)字節(jié)段。Byteenable_n通常用于片外的16位或32位字尋址的存儲(chǔ)器設(shè)備。當(dāng)寫(xiě)入單個(gè)字節(jié)數(shù)據(jù)時(shí),address僅指定相應(yīng)的字或半字地址,而byteenable_n精確地指定要寫(xiě)入哪個(gè)字節(jié)。表4.3是使用byteenable_n的一些例子,其中假定從端口是一個(gè)32位的外部存儲(chǔ)器。 表4.332位從端口字節(jié)使能的使用byteenable
54、_n3:0寫(xiě)行為0000Write full 32-bits1100Write lower 2 bytes0011Write upper 2 bytes1110Write byte 0 only1011Write byte 2 only .2具有固定等待周期的從端口寫(xiě)傳輸具有固定等待周期的從端口寫(xiě)傳輸使用的信號(hào)與基本寫(xiě)傳輸使用的相同,不同點(diǎn)只是信號(hào)的時(shí)序:Avalon總線(xiàn)模塊在每次總線(xiàn)傳輸時(shí)都會(huì)插入固定數(shù)量的等待周期。具有等待周期的從端口寫(xiě)傳輸通常用于不能在一個(gè)總線(xiàn)周期內(nèi)從Avalon總線(xiàn)模塊捕獲數(shù)據(jù)的外設(shè)。在邊種情況下Avalon總線(xiàn)模塊在第一個(gè)總線(xiàn)周期中提供address、wri
55、tedata、byteenable、write_n和chipselect信號(hào)。這和基本寫(xiě)傳輸開(kāi)始時(shí)一樣。在等待期間,這些信號(hào)保持穩(wěn)定。在固定數(shù)量的等待周期后從端口捕獲來(lái)自Avalon總線(xiàn)模塊的數(shù)據(jù)。此后傳輸結(jié)束,Avalon總線(xiàn)模塊同時(shí)使所有信號(hào)失效。例4.7顯示了具有一個(gè)等待周期的從端口寫(xiě)傳輸實(shí)例。 時(shí)序說(shuō)明:(A) 寫(xiě)傳輸開(kāi)始于clk上升沿;(B) Writedata、address、byteenable_n、write_n信號(hào)有效;(C) Avalon總線(xiàn)模塊對(duì)address譯碼,并向從端口設(shè)置有效的chipselect;(D) 在第一個(gè)(也是唯一一個(gè))總線(xiàn)等待周期在該clk上
56、升沿結(jié)束。所有來(lái)自Avalon總線(xiàn)模塊的信號(hào)保持不變;(E)從端口在該clk上升沿或之前捕獲writedata、address、byteenable_n、write_n和chipselect,寫(xiě)傳輸?shù)酱私Y(jié)束。另一次讀或?qū)憘鬏斂梢蚤_(kāi)始于下一個(gè)總線(xiàn)周期。 .2 具有外設(shè)控制等待周期的從端口寫(xiě)傳輸外設(shè)控制等待周期使用目標(biāo)外設(shè)能夠根據(jù)需要將Avalon總線(xiàn)模塊暫停任意多個(gè)總線(xiàn)周期。某些外設(shè)讀取數(shù)據(jù)時(shí)所需的總線(xiàn)周期是不固定的。因?yàn)槊看蝹鬏敹伎赡苡龅讲煌臈l件。這種傳輸模式對(duì)于這些外設(shè)非常適用。外設(shè)控制等待周期的
57、傳輸模式使用了waitrequest信號(hào),它是一個(gè)從端口的輸出信號(hào)。Avalon總線(xiàn)模塊在第一個(gè)總線(xiàn)周期中提供address、writedata、byteenable_n、write_n、和chipselect信號(hào),這和基本寫(xiě)傳輸開(kāi)始時(shí)一樣。從端口若需要額外的時(shí)間來(lái)捕獲數(shù)據(jù),它必須在下一個(gè)時(shí)鐘上升沿之前設(shè)置waitrequest有效。當(dāng)waitequest有效后,Avalon總線(xiàn)模塊便暫停工作,使得address、writedata、byteenable_n、write_n和chipselect信號(hào)保持穩(wěn)定。在從端口設(shè)置waitrequest無(wú)效后,總線(xiàn)傳輸在下一個(gè)時(shí)鐘上升沿結(jié)束。Avalon
58、總線(xiàn)模塊沒(méi)有超時(shí)機(jī)制來(lái)限制從端口強(qiáng)制總線(xiàn)暫停的時(shí)間。當(dāng)Avalon總線(xiàn)模塊被暫停后,系統(tǒng)模塊內(nèi)的某個(gè)主外設(shè)也被暫停,并等待著從端口讀取寫(xiě)入的數(shù)據(jù)。這樣就使得一個(gè)從外設(shè)能夠?qū)⒅魍庠O(shè)永久地“掛起”。因此,外設(shè)必須保證不會(huì)使waitrequest無(wú)限期地保持有效。例4.8顯示了一個(gè)具有外設(shè)控制等待周期的從端口寫(xiě)傳輸?shù)膶?shí)例。時(shí)序說(shuō)明:(A) 寫(xiě)傳輸開(kāi)始于clk上升沿;(B) Address、writedata、byteenable_n、和write_n信號(hào)有效
59、;(C) Avalon總線(xiàn)模塊對(duì)address譯碼,然后置chipselect有效;(D) 從端口在下一個(gè)clk上升沿之前置waitrequest有效;(E) Avalon總線(xiàn)模塊在該clk上升沿讀取waitrequest。如果waitrequest有效,這個(gè)總線(xiàn)周期就成為一個(gè)等待周期,address、writedata、byteenable_n和write_n信號(hào)保持不變;(F-
60、G)waitrequest一直保持有效,這可以占用任意多個(gè)總線(xiàn)周期;(H)從端口最終捕獲了writedata;(I) 從端口置waitrequest無(wú)效;(J)寫(xiě)傳輸在下一個(gè)clk上升沿結(jié)束。另一次總線(xiàn)傳輸可以開(kāi)始于下一個(gè)總線(xiàn)周期。若一個(gè)從端口采用了外設(shè)控制等待周期的寫(xiě)傳輸模式,對(duì)該端口的其它傳輸模式會(huì)有一些限制,比如不能再使用建立時(shí)間和保持時(shí)間。這些限制只影響該從端口,不影響連接到Avalon總線(xiàn)模塊上的其它外設(shè)。在大多數(shù)情況下,產(chǎn)生waitrequest信號(hào)的外設(shè)是片上的同步外設(shè),不需要考慮建立時(shí)間和等待時(shí)間。例4.8具有外設(shè)控制等待周期的從端口寫(xiě)傳輸.4具有建立時(shí)間和保持時(shí)間的從端口寫(xiě)傳輸Avalon總線(xiàn)模塊按照用戶(hù)設(shè)定或者外設(shè)默認(rèn),能夠自動(dòng)滿(mǎn)足各個(gè)從端口信號(hào)的建立時(shí)間要求,發(fā)起讀傳輸?shù)闹魍庠O(shè)不必考慮各個(gè)信號(hào)對(duì)建立時(shí)間與保持時(shí)間的要求。具有建立時(shí)間的從端口寫(xiě)傳輸使用的信號(hào)與基本使用的
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 林木采伐轉(zhuǎn)讓協(xié)議書(shū)
- 法人風(fēng)險(xiǎn)轉(zhuǎn)移協(xié)議書(shū)
- 松類(lèi)盆景買(mǎi)賣(mài)協(xié)議書(shū)
- 柴油購(gòu)買(mǎi)居間協(xié)議書(shū)
- 水利修復(fù)施工協(xié)議書(shū)
- 舊房拆除復(fù)墾協(xié)議書(shū)
- 消費(fèi)幫扶框架協(xié)議書(shū)
- 模范夫妻條約協(xié)議書(shū)
- 舊衣回收保密協(xié)議書(shū)
- 活動(dòng)餐桌承包協(xié)議書(shū)
- 飲料生產(chǎn)公司應(yīng)急預(yù)案匯編參考范本
- 高效水泥助磨劑PPT課件(PPT 66頁(yè))
- 藍(lán)色大氣商務(wù)商業(yè)計(jì)劃書(shū)PPT模板
- 生物防治第三講
- 旁站監(jiān)理實(shí)施細(xì)則(完整版)
- 學(xué)業(yè)水平考試復(fù)習(xí)高中語(yǔ)文文言文課本翻譯
- 蘇教版二年級(jí)(下冊(cè))科學(xué)全冊(cè)單元測(cè)試卷含期中期末(有答案)
- 常用原料凈料率參照表
- 高低溫試驗(yàn)報(bào)告
- 第一章 混凝土拌合站組織機(jī)構(gòu)框圖及崗位職責(zé)
- 指南預(yù)應(yīng)力簡(jiǎn)支t形梁橋
評(píng)論
0/150
提交評(píng)論