FSL總線IP核及其在MicoBlaze系統(tǒng)中的應用
4 FSL總線應用實例
在下面的實例中,嘗試通過FSL總線技術,將實現(xiàn)特定函數(shù)功能的用戶自定義IP核整合到MicroBlaze軟核系統(tǒng)中,以實現(xiàn)硬件加速的目的。這里以一個矢量漢字(vector font)還原功能的硬件模塊的整合為例,說明FSL總線的應用過程。所使用的開發(fā)平臺是Memec Insight公司生產(chǎn)的Virtex—II系列的MicroBlaze開發(fā)板,板上采用的FPGA器件為Virtex—II 1000,系統(tǒng)時鐘為100 MHz,開發(fā)工具為Xilinx公司的EDK 6.3及ISE 6.3。
4.1 FSL總線應用方案
如圖5所示,vectOr_font核通過FSL_Code-與FSL_Lattice兩條FSL總線與MicroBlaze軟核直接相連。
對于FSL_Code總線,MicroBlaze核是主設備,而vector_font核是從設備。這樣MicroBlaze可以通過 FSL_Code總線向vectOr_font核發(fā)送漢字的區(qū)位碼(或者其他格式的漢字編碼,由使用的矢量字庫和還原算法決定)以及漢字的屬性信息(如字體、大小等)。
對于FSL_Lattice總線則正好相反。vector font 核作為主設備可以通過它向MicroBlaze核發(fā)送經(jīng)過還原處理后的漢字點陣數(shù)據(jù)以及漢字點陣尺寸信息(用于將點陣數(shù)據(jù)在顯存中組織成正確的顯示格式)。
4.2 數(shù)據(jù)傳輸指令與控制位指令的應用
FSL 提供的獨立于數(shù)據(jù)傳輸?shù)目刂莆豢梢杂脕韺φ趥鬏斨械臄?shù)據(jù)進行標記。為了區(qū)分區(qū)位碼數(shù)據(jù)與漢字屬性數(shù)據(jù),以及點陣數(shù)據(jù)與漢字點陣尺寸數(shù)據(jù)。 MicroBlaze分別通過FSL的數(shù)據(jù)傳輸指令和控制位傳輸指令來發(fā)送漢字的區(qū)位碼和漢字屬性信息,接收點陣數(shù)據(jù)和漢字點陣尺寸信息。對應的實現(xiàn)代碼如下:
//使用非阻塞的數(shù)據(jù)寫函數(shù)向FSL總線寫入漢字區(qū)位碼Microblaze_nbwrite_datatsl(code,O)
//使用非阻塞的控制位寫函數(shù)向FSL總線寫入漢字屬性信息maicroblaze_cnbwrite_cnlfsl(attibute,O)
//使用非阻塞的數(shù)據(jù)讀函數(shù)從FSL總線讀取漢字點陣數(shù)據(jù)microblaze_nbread_datafsl(1attice[i],O)
//使用非阻塞的控制位讀函數(shù)從FSL總線讀取漢字點陣尺寸信息microblaze_cnbread_cnlfsl(size,O)
代碼中用到的與FSL有關函數(shù)的定義,都在include目錄下的mb_inteRFace.h文件中。其中,各函數(shù)的第二個參數(shù)代表進行讀寫操作的 FSL總線接口的編號,對應Mi—croBlaze軟核的8對FSL接口。該參數(shù)的取值范圍從0到7。本例中,MicroBlaze只使用了一對FSL接口,故而值為0。
4.3 實現(xiàn)步驟
首先,在Base System Wizard中設計圖5虛線框中所示的一個簡單的MicroBlaze嵌入式處理器系統(tǒng)。然后,在XPS集成開發(fā)環(huán)境下完成用戶自定義IP核(本例中即 vectoz__font核)的添加、Microblaze核FSL接口的添加(設置參數(shù)C_FSL_LINKS=1),同時添加兩個FSL總線IP核,分別用于實現(xiàn)FSL_Code和FSL_Lattice總線。另外,將兩個FSL總線IP核的參數(shù)C_USE_CONTROL置為1,以打開FSL總線的控制位傳輸功能。所有這些改動,最后都會被更新到MES文件中。這樣,硬件平臺生成工具platgen就可以根據(jù)它生成所需要的FPGA配置文件了。
硬件的實現(xiàn)完成后,進行相應軟件參數(shù)的設置,如將系統(tǒng)標準輸入輸出設備指向UART模塊等。然后,用庫生成工具libgen,根據(jù)MSS(系統(tǒng)軟件描述文件)文件,將所需外設函數(shù)庫的頭文件添加進工程中。
通過調(diào)用這些函數(shù),可以操作和控制這些外設。通過Tool項里的build命令,調(diào)用mb—gcc:編譯工具,將編寫的應用程序編譯成ELF文件,再用 updatebitstrcam命令將程序代碼對應的RAM初始化數(shù)據(jù)添加到前面生成的FPGA配置文件中,生成最終的bit配置文件。最后,使用 download命令將bit文件下載到目標板中。
以上就是整個FSL應用實例設計的實現(xiàn)過程。本例只是為了說明FSL總線的使用。實際應用中,還可以根據(jù)具體情況通過FSL,將更多的用戶自定義IP核(如DCT、FFT等)添加到.MicroBlaze軟核系統(tǒng)中去。
結 語
在嵌入式系統(tǒng)的開發(fā)中,人們一直希望能夠有一個滿足自己需要的“定制”的嵌入式處理器,而不是手頭大量存在的通用微處理器。但是,直接將用戶自定義IP 核添加到處理器核中,不僅受到處理器原架構的束縛,還有可能降低處理器的性能(處理器工作頻率);而通過與內(nèi)部寄存器直接相連的FSL接口,用戶自定義 IP可以在不破壞處理器原有結構的情況下,緊密地與MicroB- laze軟核結合在一起。這樣,即使關鍵路徑覆蓋了用戶IP 核,由于它在處理器內(nèi)核之外,也不會導致處理器時鐘頻率的降低。
通過對FSL總線的分析以及上述實例的驗證,證明了在基于 MicroBlaze的SoC 系統(tǒng)設計中,一方面可以針對具體應用進行“量體裁衣”式的設計;另一方面,利用其專用的FSL總線接口技術,實現(xiàn)嵌入式軟處理器系統(tǒng)與用戶自定義邏輯的整合,從而在不提高系統(tǒng)主頻的前提下,通過部分函數(shù)功能的硬件實現(xiàn)來提升系統(tǒng)的性能。
評論