歡迎您光臨本站 登入註冊首頁

SOPC設計中的兩種片上匯流排分析

admin @ 2014-03-26 , reply:0

概述

   SoC(SystemonChip,片上系統)以其能提高產品性能、縮小產品體積等優點,逐漸成為嵌入式系統發展的主流趨勢。SOPC(SystemOnaProgramma……

    SoC(Systemon Chip,片上系統)以其能提高產品性能、縮小產品體積等優點,逐漸成為嵌入式系統發展的主流趨勢。SOPC(System On a Programmable Chip,可編程片上系統)利用可編程邏輯器件來實現SoC,具有設計方式靈活,可裁減、可擴充、可升級,並具備軟硬體在系統可配置的性能。將處理器IP(Intellectual Property,知識產權)內核嵌入到可編程邏輯器件是SOPC設計的前提條件。
    在Altera的FPGA器件上嵌入處理器等IP核可實現SOPC,設計時可使用的RISC處理器核有3種:ARM的工業標準處理器硬核ARM922T、Altera的16位Nios和32位Nios II處理器軟核,而片上匯流排可採用AMBA和Avalon兩種匯流排。在嵌入了ARM922T的Excalibur系列FPGA上,使用了AMBA匯流排的高性能匯流排AHB(Advanced High-performance Bus);而在可嵌入Nios的FPGA上則使用Avalon匯流排。這兩種匯流排也是目前SoC設計使用較多的片
上匯流排標準。

1 片上匯流排與傳統匯流排體系的比較
    片上匯流排是實現SoC中IP核連接最常見的技術手段,它以匯流排方式實現IP核之間的數據通信。片上匯流排規範一般需要定義各個模塊之間初始化、仲裁、請求傳輸、響應、發送接收等過程中的驅動、時序、策略等關係。
    傳統匯流排協議中,仲裁器控制一至多個匯流排主設備與從設備的通信。匯流排主設備首先通過仲裁器來申請匯流排控制權,然後仲裁器才允許單一主設備訪問匯流排。如果多個主設備試圖同時訪問匯流排,仲裁器將根據既定的仲裁策略,將匯流排資源分配給其中一個主設備。例如,在優先順序仲裁機制中,優先順序高的主設備將首先得到匯流排控制權。
  
    控制匯流排的主設備會佔用匯流排,並與相應從設備通信。圖1說明了優先順序仲裁匯流排體系的結構,該體系在傳統微處理器系統中工作良好。由於主、從設備是位於印製板或底板上的獨立部件,匯流排需要驅動底板上的信號和連接器。而且,鑒於有限的印製板資源和可用I/O引腳數目,所有系統部件還必須共用匯流排。
    片上匯流排無需驅動底板上的信號和連接器,使用更簡單且速度更快;同時,為了滿足帶寬要求,片上匯流排普遍採用併發多主設備匯流排體系。這種匯流排體系通過消除傳統匯流排系統中一次僅有一個主設備可以訪問系統匯流排的帶寬瓶頸,來增加系統帶寬。在此體系中,匯流排主設備競爭的是獨立的從設備,而非匯流排本身。

2 AMBA匯流排及其應用
2.1 AMBA匯流排
    AMBA(Advanced Microcontroller Bus Architecture)匯流排用於高性能嵌入式系統,獨立於處理器和製造工藝技術,增強了各種應用中外設和系統宏單元的可重用性。AMBA是多匯流排體系,目前的AMBA匯流排規範2.0版定義了3種可以組合使用的匯流排體系:APB(Advanced Peripheral Bus),ASB(Advanced System Bus),AHB。AHB是現階段AMBA的主要形式。
    典型的AMBA匯流排結構如圖2所示。其中的高性能系統匯流排(AHB或ASB)主要用以滿足CPU和存儲器之間的帶寬要求。CPU、片內存儲器和DMA等高速設備連接在系統匯流排上,而系統的大部分低速外設則連接在低帶寬匯流排APB上。系統匯流排和外設匯流排之間用一個橋接器(AHB/ASB-APB-Bridge)連接。
  
    AHB適用於高性能、高時鐘頻率的系統。作為高性能系統的骨幹匯流排,AHB主要用於高性能、大吞吐量設備之間的連接,如CPU、片上存儲器、DMA設備和DSP或其它協處理器等,有支持併發多主設備、支持多種數據傳輸方式等主要特性。
    在不必使用AHB的高速特性時,可選擇ASB作為系統匯流排。ASB也支持CPU、片上存儲器和片外處理器介面與低功耗外部宏單元之間的連接。ASB的主要特性與AHB類似,主要不同點是採用同一條雙向數據匯流排來讀、寫數
據。
    APB非常簡單,適用於低速、低功耗的外設,只有一個匯流排主設備控制器,最大支持32位數據匯流排寬度,讀、寫數據匯流排分開。
2.2 AMBA在Excalibur器件中的應用
    嵌入了ARM922T的Excalibur器件使用AHB1和AHB2兩種匯流排提供有效處理數據給不同片上外設:AHB2上的低速外設和AHB1上的高速外設。其優點是可以分開高、低速外設,最大發揮較快外設的性能,從而提高整個系統的性能。圖3給出了基於ARM922T的Excalibur器件匯流排體系。
 
    該匯流排體系通過匯流排橋允許ARM922T訪問片上外設和PLD。PLD中的外設通過PLD到模塊的橋訪問AHB2外設。在AHB1和AHB2匯流排上都有片上存儲器單元(SRAM、雙口SRAM和SDRAM)。為避免數據出錯,匯流排內部仲裁在每個存儲器單元中完成。

3 Avalon匯流排及其應用
3.1 Avalon匯流排
    Avalon匯流排是SOPC設計中連接片上處理器和其它IP模塊的一種簡單匯流排協議,規定了主、從構件之間的埠連接以及通信時序關係。使用Avalon匯流排,能優化處理器和外設間的數據流,提高系統的吞吐量,並且允許根據應用特性裁剪匯流排體系,從而獲得最佳的系統性能。Avalon匯流排有支持併發多主設備、自動生成仲裁機制、可配置等主要特性。
    在基於Nios或者Nios II軟核的系統中,Avalon匯流排通過可編程邏輯器件內部的互連邏輯來連接處理器和其他外設。當某外設接收多個資源的數據時,多路復用器選擇正確數據。主設備無需訪問某個特定從設備時,它們之間的互連邏輯將被取消,從而節省硬體資源。
    主-從設備對之間有專門介面,因此多個主設備可以同時啟動,併發傳輸數據給從設備。只有一個主設備訪問某從設備時,該主設備可以立即訪問目標從設備。有兩個主設備的併發多主設備的匯流排體系能提供高達兩倍的吞吐量;有3個主設備時,則能提供高達3倍的吞吐量。
    兩個主設備競爭同一個從設備時,需要執行從設備仲裁。對於基於Nios或者Nios II的系統,系統生成軟體SOPC Builder完全在Avalon匯流排模塊內執行從設備仲裁。可被多個主設備訪問的從設備都有一個仲裁器,在SOPC Builder中也可以設置仲裁優先順序。
    圖4說明了Avalon匯流排是如何實現從設備仲裁的。其中,系統主設備CPU和DMA控制器共享同一個從設備(數據存儲器外設),數據存儲器完成仲裁。如果所有主設備同時開始與從設備的數據傳輸,仲裁器會指定獲得從設備訪問權的主設備。CPU使用和DMA控制器之間的互連來建立DMA傳輸。
  
3.2 Avalon在SOPC設計中的應用
    在FPGA系列器件上基於Nios或者Nios II進行SOPC設計時,Avalon匯流排規範由系統生成工具SOPC Builder自動生成。Avalon匯流排模塊作為系統模塊的主幹,使系統外設間實現通信,很少作為分離單元使用。系統要與片外存儲器通信時,必須在Avalon匯流排和連接外部存儲器的匯流排之間加入Avalon三態橋,圖5給出了一個Avalon匯流排模塊框圖的實例。此時,需要選擇匯流排輸入信號是否需要寄存器寄存。寄存器會提高片外時鐘寄存邏輯的最大頻率,同時也增加延遲。
 

4 兩種片上匯流排比較
    對兩種匯流排的主要特性進行比較,結果如表1所示。
 
 AMBA和Avalon的不同點,決定了其應用範圍的不同。AMBA匯流排規範擁有眾多第三方支持,已成為廣泛支持的現有互連標準之一,主要用於基於ARM處理器核的SoC設計中。Avalon則主要用於在Altera系列FPGA上實現SOPC,其配置的簡單性、可由EDA工具快速生成等優點,再加上受Altera極力推薦,其影響範圍也不可忽視,Nios II處理器的高性能也進一步擴充了Avalon匯流排的應用範圍。AMBA和Avalon這兩種匯流排都具有支持多主設備控制器、支持多種傳輸方式等特點,從而能滿足片上匯流排的要求。

5 結束語
    系統中片上匯流排的選擇需要考慮匯流排的性能、應用範圍、可用IP核資源等,匯流排的具體應用形式也各有其特性。文中將片上匯流排與傳統匯流排進行比較,介紹了併發多主設備匯流排體系;同時通過對AMBA和Avalon兩種片上匯流排的詳細分析、比較,針對它們的不同特性及具體應用形式闡述了各自的應用範圍,從而方便設計師對這兩種片上匯流排的充分理解,為SOPC及其他SoC設計中的片上匯流排選擇和應用提供了參考。除了AMBA和Avalon之外,SoC設計中還可以選用IBM的CoreConnect、Silicore的Wishbone等匯流排,它們也各有其特點和適用領域。


[admin via 研發互助社區 ] SOPC設計中的兩種片上匯流排分析已經有3482次圍觀

http://cocdig.com/docs/show-post-43106.html