SoC(Systemon Chip,片上系統(tǒng))以其能提高產(chǎn)品性能、縮小產(chǎn)品體積等優(yōu)點,逐漸成為嵌入式系統(tǒng)發(fā)展的主流趨勢。SOPC(System On a Programmable Chip,可編程片上系統(tǒng))利用可編程邏輯器件來實現(xiàn)SoC,具有設計方式靈活,可裁減、可擴充、可升級,并具備軟硬件在系統(tǒng)可配置的性能。將處理器IP(Intellectual Property,知識產(chǎn)權)內(nèi)核嵌入到可編程邏輯器件是SOPC設計的前提條件。
在Altera的FPGA器件上嵌入處理器等IP核可實現(xiàn)SOPC,設計時可使用的RISC處理器核有3種:ARM的工業(yè)標準處理器硬核ARM922T、Altera的16位Nios和32位Nios II處理器軟核,而片上總線可采用AMBA和Avalon兩種總線。在嵌入了ARM922T的Excalibur系列FPGA上,使用了AMBA總線的高性能總線AHB(Advanced High-performance Bus);而在可嵌入Nios的FPGA上則使用Avalon總線。這兩種總線也是目前SoC設計使用較多的片上總線標準。
1 片上總線與傳統(tǒng)總線體系的比較
片上總線是實現(xiàn)SoC中IP核連接最常見的技術手段,它以總線方式實現(xiàn)IP核之間的數(shù)據(jù)通信。片上總線規(guī)范一般需要定義各個模塊之間初始化、仲裁、請求傳輸、響應、發(fā)送接收等過程中的驅(qū)動、時序、策略等關系。
傳統(tǒng)總線協(xié)議中,仲裁器控制一至多個總線主設備與從設備的通信。總線主設備首先通過仲裁器來申請總線控制權,然后仲裁器才允許單一主設備訪問總線。如果多個主設備試圖同時訪問總線,仲裁器將根據(jù)既定的仲裁策略,將總線資源分配給其中一個主設備。例如,在優(yōu)先級仲裁機制中,優(yōu)先級高的主設備將首先得到總線控制權。
控制總線的主設備會占用總線,并與相應從設備通信。圖1說明了優(yōu)先級仲裁總線體系的結(jié)構(gòu),該體系在傳統(tǒng)微處理器系統(tǒng)中工作良好。由于主、從設備是位于印制板或底板上的獨立部件,總線需要驅(qū)動底板上的信號和連接器。而且,鑒于有限的印制板資源和可用I/O引腳數(shù)目,所有系統(tǒng)部件還必須共用總線。
片上總線無需驅(qū)動底板上的信號和連接器,使用更簡單且速度更快;同時,為了滿足帶寬要求,片上總線普遍采用并發(fā)多主設備總線體系。這種總線體系通過消除傳統(tǒng)總線系統(tǒng)中一次僅有一個主設備可以訪問系統(tǒng)總線的帶寬瓶頸,來增加系統(tǒng)帶寬。在此體系中,總線主設備競爭的是獨立的從設備,而非總線本身。
2 AMBA總線及其應用
2.1 AMBA總線
AMBA(Advanced Microcontroller Bus Architecture)總線用于高性能嵌入式系統(tǒng),獨立于處理器和制造工藝技術,增強了各種應用中外設和系統(tǒng)宏單元的可重用性。AMBA是多總線體系,目前的AMBA總線規(guī)范2.0版定義了3種可以組合使用的總線體系:APB(Advanced Peripheral Bus),ASB(Advanced System Bus),AHB。AHB是現(xiàn)階段AMBA的主要形式。
[!--empirenews.page--]
典型的AMBA總線結(jié)構(gòu)如圖2所示。其中的高性能系統(tǒng)總線(AHB或ASB)主要用以滿足CPU和存儲器之間的帶寬要求。CPU、片內(nèi)存儲器和DMA等高速設備連接在系統(tǒng)總線上,而系統(tǒng)的大部分低速外設則連接在低帶寬總線APB上。系統(tǒng)總線和外設總線之間用一個橋接器(AHB/ASB-APB-Bridge)連接。
AHB適用于高性能、高時鐘頻率的系統(tǒng)。作為高性能系統(tǒng)的骨干總線,AHB主要用于高性能、大吞吐量設備之間的連接,如CPU、片上存儲器、DMA設備和DSP或其它協(xié)處理器等,有支持并發(fā)多主設備、支持多種數(shù)據(jù)傳輸方式等主要特性。
在不必使用AHB的高速特性時,可選擇ASB作為系統(tǒng)總線。ASB也支持CPU、片上存儲器和片外處理器接口與低功耗外部宏單元之間的連接。ASB的主要特性與AHB類似,主要不同點是采用同一條雙向數(shù)據(jù)總線來讀、寫數(shù)據(jù)。
APB非常簡單,適用于低速、低功耗的外設,只有一個總線主設備控制器,最大支持32位數(shù)據(jù)總線寬度,讀、寫數(shù)據(jù)總線分開。
2.2 AMBA在Excalibur器件中的應用
嵌入了ARM922T的Excalibur器件使用AHB1和AHB2兩種總線提供有效處理數(shù)據(jù)給不同片上外設:AHB2上的低速外設和AHB1上的高速外設。其優(yōu)點是可以分開高、低速外設,最大發(fā)揮較快外設的性能,從而提高整個系統(tǒng)的性能。圖3給出了基于ARM922T的Excalibur器件總線體系。
該總線體系通過總線橋允許ARM922T訪問片上外設和PLD。PLD中的外設通過PLD到模塊的橋訪問AHB2外設。在AHB1和AHB2總線上都有片上存儲器單元(SRAM、雙口SRAM和SDRAM)。為避免數(shù)據(jù)出錯,總線內(nèi)部仲裁在每個存儲器單元中完成。
3 Avalon總線及其應用
3.1 Avalon總線
Avalon總線是SOPC設計中連接片上處理器和其它IP模塊的一種簡單總線協(xié)議,規(guī)定了主、從構(gòu)件之間的端口連接以及通信時序關系。使用Avalon總線,能優(yōu)化處理器和外設間的數(shù)據(jù)流,提高系統(tǒng)的吞吐量,并且允許根據(jù)應用特性裁剪總線體系,從而獲得最佳的系統(tǒng)性能。Avalon總線有支持并發(fā)多主設備、自動生成仲裁機制、可配置等主要特性。