體系結構
MicroBlaze 是基於Xilinx公司FPGA的
微處理器IP核,和其它外設IP核一起,可以完成可程式
系統晶片(SOPC)的設計。MicroBlaze 處理器採用RISC架構和
哈佛結構的32位指令和
數據匯流排,可以全速執行存儲在片上
存儲器和外部存儲器中的程式,並訪問其的數據。
MicroBlaze內部有32個32位
通用暫存器和2個32位特殊暫存器—PC指針和MSR狀態
標誌暫存器。為了提高性能,MicroBlaze還具有指令和
數據快取。所有的
指令字長都是32位,有3個
運算元和2種定址模式。指令按功能劃分有邏輯運算、算術運算、分支、存儲器讀/寫和特殊指令等。指令執行的流水線是並行流水線,它分為3級流水:取指、
解碼和執行。
MicroBlaze可以回響軟體和
硬體中斷,進行異常處理,通過外加控制邏輯,可以擴展外部中斷。利用
微處理器調試模組(MDM)IP核,可通過JTAG接口來調試處理器系統。多個MicroBlaze處理器可以用1個MDM來完成多處理器調試。
MicroBlaze處理器具有8個輸入和8個輸出快速單一鏈路接口(FSL)。FSL通道是專用於單一方向的點到點的
數據流傳輸接口。FSL和MicroBlaze的接口寬度是32位。每一個FSL通道都可以傳送和接收控制或
數據字。
技術
CoreConnect 是由IBM開發的片上匯流排通信鏈,它使多個晶片核相互連線成為一個完整的新晶片成為可能。CoreConnect技術使整合變得更為容易,而且在標準產品平台設計中,處理器、系統以及外圍的核可以重複使用,以達到更高的整體系統性能。
CoreConnect匯流排架構包括處理器本機匯流排(PLB),片上外圍匯流排(OPB),1個匯流排橋,2個判優器,以及1個設備
控制暫存器(DCR)匯流排。Xilinx將為所有
嵌入式處理器用戶提供IBM CoreConnect許可,因為它是所有Xilinx嵌入式處理器設計的基礎。MicroBlaze處理器使用了與IBM PowerPC相同的匯流排,用作外設。雖然MicroBlaze軟處理器完成獨立於PowerPC,但它讓設計者可以選擇晶片上的運行方式,包括一個嵌入式PowerPC,並共享它的外設。
片上外設匯流排(OPB)
核心通過片上外設匯流排(OPB)來訪問低速和低性能的系統資源。OPB是一種完全同步匯流排,它的功能處於一個單獨的匯流排層級。它不是直接連線到處理器核心的。OPB接口提供分離的32位
地址匯流排和32位
數據匯流排。處理器
核心可以藉助“PLB to OPB”橋,通過OPB訪問從
外設。作為OPB匯流排控制器的外設可以藉助“OPB to PLB”橋,通過PLB訪問存儲器。
處理器本機匯流排(PLB)
PLB接口為指令和數據一側提供獨立的32位地址和64位
數據匯流排。PLB支持具有PLB
匯流排接口的主機和從機通過PLB信號連線來進行讀寫數據的傳輸。匯流排架構支持多主從設備。每一個PLB主機通過獨立的
地址匯流排、讀數據匯流排和寫數據匯流排與PLB連線。PLB從機通過共享但分離的地址匯流排、讀數據匯流排和寫數據匯流排與PLB連線,對於每一個數據匯流排都有一個複雜的傳輸控制和狀態信號。為了允許主機通過競爭來獲得匯流排的所有權,有一個中央判決機構來授權對PLB的訪問。
設備控制暫存器匯流排(DCR)
設備
控制暫存器匯流排(DCR)是為在CPU
通用暫存器(GPRs)和DCR的從邏輯設備控制暫存器(DCRs)之間傳輸數據而設計的。
開發
套用EDK(
嵌入式開發套件)可以進行MicroBlaze IP核的開發。工具包中集成了硬體平台生產器、軟體平台產生器、仿真模型生成器、軟體
編譯器和軟體調試工具等。EDK中提供一個
集成開發環境XPS(Xilinx平台工作室),以便使用系統提供的所有工具,完成
嵌入式系統開發的整個流程。EDK中還帶有一些
外設接口的IP核,如LMB、OPB匯流排接口、外部存儲控制器、SDRAM控制器、UART、中斷控制器、定時器等。利用這些資源,可以構建一個較為完善的
嵌入式微處理器系統。
在FPGA上設計的
嵌入式系統層次結構為5級。可在最低層硬體資源上開發IP核,或為已開發的IP核搭建嵌入式系統,這是
硬體開發部件;開發IP核的
設備驅動、套用接口(API)和套用層(算法),屬軟體開發內容。
利用MicroBlaze構建基本的嵌入式系統。通過標準
匯流排接口—LMB匯流排和OPB匯流排的IP核,MicroBlaze就可以和各種外設IP核相連。
EDK中提供的IP核均有相應的設備驅動和套用接口,使用者只需利用相應的函式館,就可以編寫自己的套用軟體和算法程式。對於用戶自己開發的IP核,需要自己編寫相應的驅動和
接口函式。
套用
在軟體無線電系統中,一般採用“
微處理器+
協處理器”結構。微處理器一般使用通用DSP,主要完成系統通信和基帶處理等工作;協處理器用FPGA實現,主要完成同步和預處理等底層算法的運算任務。在本課題中,採用的基帶處理算法比較簡單,套用軟處理器IP核代替DSP,在一片FPGA內就能實現整個系統的設計。這樣可以簡化系統的結構,提高系統的整體性能。
FPGA
片上系統主要完成兩個任務—傳送和接收數據。對於傳送任務,FPGA完成硬體算法的初始化,接收串口數據,並將數據存儲在雙口SRAM中,系統硬體算法部分對雙口SRAM中數據進行基帶處理,並將結果送給D/A
轉換器。對於接收任務,FPGA接收A/D轉換器送來的數據,進行基帶處理,並將數據存儲在雙口SRAM中,把存儲在雙口SRAM中的數據通過串口傳送回主機。
在EDK開發套件的XPS
集成開發環境下進行系統硬體設計。在其界面環境下,添加IP核,進行系統連線和各項參數設定。由於系統中包含的硬體算法模組不是
標準模組,因此工程需要設定成子模組方式,利用平台產生器,根據硬體描述檔案(.MHS檔案),生成
嵌入式系統子模組的網表檔案(.NGC)。然後在ISE設計環境下,從外部通過GPIO連線埠與硬體算法模組相連,從而構成整個套用系統的硬體模型。
在EDK中,每一個外設IP模組都有自己的軟體函式館。利用Libgen工具,將所需外設函式數庫的頭檔案添加進工程中,通過調用這些函式可以操作和控制這些外設。例如對串口的操作如下:
//初始化串口,設定
波特率等參數,清空傳送和接收緩衝,禁止中斷;
XuartLite_Initialize(&UART,XPAR_MYUARTLITE_DEVICE_ID);
//傳送接收數據
XuartLite_Send(&UART,&send_data,1);XUartLite_Recv(&UART,&recv_data,1);
使用標準C語言進行應用程式的開發,編寫相應的算法軟體,完成系統功能。軟體流程。
將編寫的程式代碼利用mb-gcc編譯工具,根據系統的軟體一併,生成.ELF檔案。在編譯連結之前,若選擇調試方式,就會在生成檔案中加入調試接口SMDstub,進行程式的硬體調
利用系統的硬體模型以及RAM塊的組織結構檔案、ELF檔案和用戶結束檔案,套用FPGA綜合實現工具(如Xilinx XST)進行綜合,然後下載生成的配置BIT檔案
到
目標板上。利用EDK中提供的GDB調試工具可以進行
程式調試。有兩種調試方法:軟體仿真和硬體調試。軟體仿真可以進行程式的功能調試,在開發工具內部就可以進行,不需要硬體支持。硬體調試就是通過JTAG接口或串口(可在硬體設計時選擇),連線到目標板上的套用系統中的XMD調試接口,將軟體程式下載到系統中進行調試。本課題使用的目標板上的主晶片為Xilinx Spartan IIE 30萬門的FPGA,系統時鐘為50MHz。實際運行完全滿足設計要求。
採用FPGA和MicroBlaze進行嵌入式系統設計,實現了多片專用晶片的功能,大大縮小了接收機體積,便於系統實現小型化、
集成化。捕獲及跳頻同步等算法採用硬體實現,加快了捕獲跟蹤速度。實驗結果表明,FPGA
系統設計是正確可行的。如果在系統中配置大容量的SDRAM,加入乙太網或USB等高速
通信接口,將
實時作業系統運行於處理器上,就可以構建一個較為完善的,基於FPGA的
嵌入式系統。這將在網路、通信、消費類產品等多方面有著廣闊的套用前景。