Avalon 總線是一種將片上處理器和外設連接成片上可編程系統(SOPC)的一種簡單總線結構。Avalon總線是一種接口方式,它規定了主從設備之間的接口方式及其通信時序。
Avalon 總線的設計目的在于:
■ 簡便:提供了簡單易學的協議;
■ 優化總線邏輯的資源利用:節約了可編程器件(PLD)內部的邏輯單元(LE);
■ 同步操作:將PLD 上的其他用戶邏輯很好的集成在一起,從而避免了復雜的時序分析;
功 能 簡 介
Avalon 也包括很多的功能和約定來支持SOPC Builder 軟件自動產生的系統﹑總線和外設:
高于4G 的地址空間-存儲器和外設可以被映射為32 位地址空間中的任何地址。同步接口-所有的Avalon信號都被Avalon 總線時鐘同步。這樣簡化了Avalon 總線的相關時序行為并便于高速外設的集成。分離的地址,數據和控制線路-分離的,專用的地址和數據路徑更便于與用戶邏輯相連接。外設不需要對數據和地址周期進行譯碼。內置地址譯碼器-Avalon 總線自動的為所有外設產生片選(Chip Select)信號,大大的簡化了Avalon 外設的設計。
多主設備總線結構-在Avalon 總線上可以存在多個主外設。Avalon 總線自動產生仲裁邏輯。基于向導式的配置-方便使用的圖形化向導引導用戶完成對Avalon 總線的配置(增加外設,確定主/從關系,定義存儲器映射)。
Avalon 總線結構的自動產生是由用戶在向導界面的輸入來決定的。動態總線容量-Avalon 總線自動處理數據位寬不匹配的外設間傳送數據的細節,便于在多種不同寬度的設備間接口。
系統模塊
考慮在可編程芯片上實現用戶自定義系統的結構,其中一部分是由SOPC Builder 自動產生的。在Altera PLD 上實現的完整系統如圖1 所示。出于本文的目的,系統模塊的一些部分是由SOPC Builder 自動產生的。系統模塊應該包括最少一個Avalon 主外設和一個Avalon 從外設,例如UART,定時器或者PIO。系統模塊的外部邏輯可以包含用戶Avalon 外設及其他的和系統模塊不相關的用戶邏輯。系統模塊必須與設計者的PLD 設計連接起來 。系統模塊的端口依賴于其所包括的外設及在SOPCBuilder 中進行的設置,并隨其變化。這些端口包括直接到Avalon 總線的接口及在系統模塊中的用戶自定義的和外設相連的接口。
Avalon 總線模塊
圖1. Altera PLD 上集成用戶邏輯的系統模塊
Avalon 總線模塊是任何一個系統模塊的“脊梁”。它是SOPC 設計中外設通信的主要路徑。Avalon 總線模塊是所有的控制、數據、地址信號及控制邏輯的總和,是其將外設連接起來并構成了系統模塊。Avalon總線模塊實現了可配置的總線結構,其可以為設計者外設之間的相互連接而改變。Avalon 總線模塊是由SOPC Builder 自動產生的,所以設計師并不用親自將總線和外設連接起來。Avalon總線模塊基本上不會作為分離的單元而單獨使用,因為系統設計者總是利用SOPC Builder 將處理器和其他Avalon 外設自動地集成于一個系統模塊之中。設計者對Avalon 總線的注意力通常限于與用戶Avalon外設相連接地具體的端口上。
Avalon 總線模塊(一條Avalon 總線)是一個主動的邏輯單元,它取代了PCB 板上的被動的,金屬總線。(見圖2)這就是說,Avalon 總線模塊的端口可以被看作是所有連接到被動總線的引腳連接。本手冊只是定義了包含于Avalon 總線模塊接口中的端口,邏輯行為和信號順序,而沒有提及物理總線的電氣或物理的性能。
圖2 .Avalon 總線模塊框圖-范例系統
Avalon 總線模塊為連接到總線的Avalon 外設提供了以下的服務:
■ 數據通道多路轉換——Avalon 總線模塊的多路復用器從被選擇的從外設向相關主外設傳輸數據。
■ 地址譯碼——地址譯碼邏輯為每一個外設提供片選信號。這樣,單獨的外設不需要對地址線譯碼以產生片選信號,從而簡化了外設的設計。
■ 產生等待狀態(Wait-State)——等待狀態的產生拓展了一個或多個周期的總線傳輸,這有利于滿足某些特殊的同步外設的需要。當從外設無法在一個時鐘周期內應答的時候,產生的等待狀態可以使主外設進入等待狀態。在讀使能及寫使能信號需要一定的建立時間/保持時間要求的時候也可以產生等待狀態。
■ 動態總線寬度——動態總線寬度隱藏了窄帶寬外設與較寬的Avalon 總線(或者Avalon 總線與更高帶寬的外設)相接口的細節問題。舉例來說,一個32 位的主設備從一個16 位的存儲器中讀數據的時候,動態總線寬度可以自動的對16 位的存儲器進行兩次讀操作,從而傳輸32 位的數據。這便減少了主設備的邏輯及軟件的復雜程度,因為主設備不需要關心外設的物理特性。
■ 中斷優先級(Interrupt-Priority)分配——當一個或者多個從外設產生中斷的時候,Avalon 總線模塊根據相應的中斷請求號(IRQ)來判定中斷請求。
■ 延遲傳輸(Latent Transfer)能力——在主、從設備之間進行帶有延遲傳輸的邏輯包含于Avalon總線模塊的內部。
■ 流式讀寫(Streaming Read and Write)能力——在主、從設備之間進行流傳輸使能的邏輯包含于Avalon 總線模塊的內部。
Avalon 外設
連接于Avalon 總線的Avalon 外設是邏輯器件——無論片上還是片外的——它們進行著某種系統級的任務,并通過Avalon 總線與其他的系統部件相通信。外設是模塊化的系統部件,依賴于系統的需要,可以在設計的時候增加或者移除。Avalon 外設可以是存儲器、處理器,也可以是傳統的外設器件,如UART,PIO,定時器或總線橋。任何的用戶邏輯都可以成為Avalon 外設,只要它滿足本文所述的提供與Avalon 總線接口的地址、數據及控制信號接口。連接于Avalon 總線的外設將被分配專用的端口。除了連接于Avalon 總線的地址、數據及控制端口之外用戶也可以自行定制端口。這些于用戶邏輯相連接的信號擴展了系統模塊的應用。Avalon 外設要么是主外設,要么是從外設。主外設可以于Avalon 上開啟總線傳輸,其至少有一個連接于Avalon 總線模塊的主端口。主外設也可以有一個從端口其允許此設備接受其他連接于Avalon 總線的主設備開啟的總線傳輸。而從設備只能響應Avalon 總線傳輸,而不能夠開啟總線傳輸。像存儲器,UART 這樣的從設備,通常只有與Avalon總線模塊相連接的一個從端口。在SOPC 環境中,,區分以下Avalon 總線主設備/從設備的外設類型是十分重要的。
系統模塊內部外設
如果SOPC Builder 在外設庫中找到了一個外設,或者設計者指定了一個用戶外設的設計文件,SOPC Builder 將自動的將此外設與Avalon 總線模塊相連接。這種外設是指系統模塊之內的外設,也就是被認為是系統模塊的一個部分。與Avalon 總線相連接的地址、數據及控制端口是向用戶隱藏的。外設中任何附加的非Avalon 端口將作為系統模塊的端口顯示于外。這些端口可能與物理管腳直接相連或者可能與片上的其他模塊相連。
系統模塊外部外設
Avalon 總線外設也可以存在于系統模塊之外。設計者選擇將模塊置于系統模塊之外可
能有以下幾個原因:
■ 外設在物理上位于PLD 器件之外
■ 外設需要某些粘連邏輯(glue logic)使其與Avalon 總線信號連接
■ 在系統模塊產生的時候,外設的設計還沒有完成
在這些情況下,相應的Avalon 總線模塊信號作為系統模塊的端口現于外部(及指定的外設)。
主端口(Master Port)
主端口是主外設上用于開啟Avalon 總線傳輸的一系列端口的集合。主端口于Avalon 總線模塊直接相連。實際上,一個主外設可能有一個或多個主端口及一個從端口。這些主端口及從端口的相互依賴關系是由對外設進行設計時決定的。但是,這些主、從端口上的單獨的總線傳輸應該總是遵循本文所述。
本文中所提及的所有主設備傳輸都是指單獨的主端口的Avalon 總線傳輸。
從端口(Slave Port)
從端口是指在位于某一外設上的,從另一外設主端口接受Avalon 總線傳輸的一系列端口的集合。從端口也直接與Avalon 總線模塊相連接。主外設也可以有一個從端口,通過這個從端口可以使其接受Avalon 總線上其他主設備的傳輸。本文所提及的所有從設備傳輸都是指單獨的從端口的Avalon 總線傳輸。
主-從端口對(Master-Slave Pair)
“主-從端口對”是指通過Avalon 總線模塊相連接的一個主端口和一個從端口構成的組合。從結構上講,這些主、從端口與Avalon 總線模塊上的相應端口相連接。主端口的控制及數據信號可以有效的通過Avalon 總線模塊與從端口相互作用。主、從端口之間的連接(這就構成了主-從端口對)是在SOPC Builder 中所確定的。
PTF 文件、SOPC Builder 參數及開關
Avalon 總線及外設的配置可以利用基于向導的SOPC Builder 圖形用戶接口(GUI)來完成。通過這個GUI,用戶可以設定不同的參數和開關,然后據此產生系統的PTF 文件。PTF 文件是一個文本化的文件,它定義了:
■ 定義Avalon 總線模塊結構、功能的參數
■ 定義每個外設定義結構、功能的參數
■ 每個外設的主、從角色
■ 外設端口(如讀使能、寫使能、寫數據等)
■ 通往多主端口的從端口的仲裁機制
然后,PTF 文件通過HDL 產生器創建了系統模塊的寄存器傳輸級(RTL)描述。
評論
查看更多