《電子技術應用》
您所在的位置:首頁 > 其他 > 設計應用 > FSL總線IP核及其在MicoBlaze系統中的應用
FSL總線IP核及其在MicoBlaze系統中的應用
中國自動化網
摘要: MicroBlaze是基于Xilinx公司新一代FPGA器件的軟處理器核。其FSL總線是FIFO單向鏈路,可以實現用戶自定義IP核與MicroBlaze內部通用寄存器的高速直連。本文對MicroBlaze的幾種主要總線接口摘要進行比較,詳細分析、介紹FSL總線的結構、特點、工作原理和配置方法。
Abstract:
Key words :

摘要: MicroBlaze 是基于Xilinx公司新一代FPGA器件的軟處理器核。其FSL 總線是FIFO單向鏈路,可以實現用戶自定義IP核與MicroBlaze內部通用寄存器的高速直連。本文對MicroBlaze的幾種主要總線接口摘要進行比較,詳細分析、介紹FSL總線的結構、特點、工作原理和配置方法。通過一個矢量漢字還原的應用實例,具體描述在FPGA片上系統設計中利用FSL高速總線整合用戶自定義IP核,實現軟處理器系統硬件加速的方法及步驟。

關鍵詞 :FPGA IP核 FSL總線 軟核處理器 MicroBlage

引 言

隨著半導體制造工藝的發展,以FPGA(現場可編程門陣列)為代表的新一代可編程邏輯器件(PLD)的邏輯資源密度不斷增加,使得可編程技術很自然地就與系統芯片集成技術(SoC)的結合日益緊密,并逐步成為可配置平臺技術(configurable platform)的主流。

目前,各主要PLD廠商基于FPGA的可配置平臺雖然大都采用“微處理器十可編程邏輯”的架構,但在開發基于FPGA的嵌入式系統時,卻采用了各自不同的方式來整合處理器系統與片上的其他邏輯資源(大多數以用戶IP核形式出現)。MicroBlaze軟核處理器是Xilinx公司為其FPGA器件開發的,其特有的FSL(Fast Simplex Link,快速單向鏈路)總線,可以實現用戶IP核與軟核處理器的高速連接,為設計者提供了一條解決這類問題的途徑。

1 MicroBlaze軟核處理器

1.1 概 述

MicroBlaze是基于Xilinx公司FPGA的微處理器軟IP核。它采用RISC架構和哈佛結構的32位指令和數據總線,內部有32個 32位寬度的通用寄存器;在150 MHz的時鐘頻率下,最高可達到125 DMIPS的處理性能,其邏輯結構如圖1所示(圖中省略了指令側的同類接口)。使用Xilinx公司提供的EDK(嵌入式系統開發套件),可以在參數化的圖形界面下方便地完成嵌入式軟處理器系統的設計。其突出的優點,一是設計靈活性;二是可以整合用戶自定義IP核,使得算法可以在硬件中并行地執行而不是在軟件中串行執行,從而極大地加速軟件的執行速度,即所謂的硬件加速。

1.2 MicroBlaze軟核總線接口

MicroBlaze軟處理器核具有豐富的接口資源。目前,最新版本的MicroBlaze軟核支持的接口標準有:
◆帶字節允許的OPB(On-chip Peripheral Bus,片上外設總線)V2.0接口;
◆高速的LMB(Local Memory Bus,本地存儲器總線)接口;
◆FSL 主從設備接口;
◆XCL(Xilinx Cache Link,Xilinx緩存鏈路)接口;
◆與MDM(微處理器調試模塊)連接的調試接口。
OPB是對IBM Core Connect片上總線標準的部分實現,適用于將IP核作為外設連接到MicroBlaze系統中。LMB用于實現對片上的blockRAM的高速訪問。 FSL是MicroBlaze軟核特有的一個基于FIFO的單向鏈路,可以實現用戶自定義IP核與 MicroBlaze內部通用寄存器的直接相連;而 XCL則是MicroBlaze軟核新增加的,用于實現對片外存儲器的高速訪問。 MicroBlaze軟核還有專門的調試接口,通過參數設置,開發人員可以只使用特定應用所需要的處理器特性。

 

1.3 MicroBIaze系統的硬件加速

將用戶IP核整合到基于MicroBlaze的嵌入式軟核處理器系統中,通常有兩種方法:一種方法是將IP核連接到OPB總線;第二種方法就是將用戶IP連接到MicroBlaze專用的FSL總線上。OPB與FSL比較如表1所列。


注:①數據分別來自opb_v20和FSL_v20數據手冊;

②該數據是在總線配置為1主2從情況下得到的;

③該數據對MicroBlaze軟核而言。

 

從表1可見,盡管OPB和FSL都是MicroBlaze軟核與FPGA其他片上邏輯資源連接的主要途徑,但其特點決定了分工是不同的:OPB總線適用于將低速和低性能要求的設備連接到MicroBlaze系統中;而FSL總線則適用于將時間要求高的用戶自定義IP核整合到基于 MicroBlaze的軟核系統中,以實現硬件加速。

2 FSL總線

2.1 FSL總線接口

FSL總線是一個基于FIFO的單向點對點通信總線,主要用于FPGA的兩個模塊問進行快速的通信。FSL總線IP核結構如圖2所示,FSL接口的I/O信號如表2所列。

 

該接口的主要特點:

◆單向的點對點通信;
◆非共享的無仲裁通信機制;
◆支持控制位與數據分離的通信;
◆基于FIFO的通信模式;
◆可配置的數據寬度;
◆高速的通信性能(獨立運行達到600 MHz)。

2.2 FSL總線的寫操作時序

對FSL總線的寫操作是由FSL_M_Write信號控制的。圖3是FSL總線的寫操作時序。FSL主設備在第一個時鐘上升沿檢查到 FSL_M_Full 信號未置高,就允許主設備將FSL_M_Write置高,并將FSL_M_Data和FSL_M_Control推上總線,在下一個時鐘周期這些數據就被總線讀取并送入FIFO了。圖中的Write2和Write3是一組“背靠背”的連續寫操作。在Write3時,FIFO滿使得 FSL_M_Full信號被置高,迫使主設備取消自己的FSL_M_Write信號,直到一次讀操作將FSL_M_Full置低后,才可以發起另一次寫操作。因此,圖中暗示著在 Write4處也發生了一次從設備的讀操作,否則FSL_M_Full將再次置高。

 


2.3 FSL總線讀操作時序

對FSL總線的讀操作是由FSL_S_Read信號控制的,圖4是FSL從設備的3次讀操作時序。當FSL總線上存在有效數據(FSL_S_Exists =‘1’),FSL_M_Data上的數據和FSL_M_Control上的控制位就立即可以被FSL從設備讀取。一旦從設備完成讀操作, FSL_S_Read信號必須置高一個時鐘周期,以確認從設備成功完成了一次讀操作。在讀操作發生后的時鐘上升沿(圖中Read2 處), FSL_M_Data和FSL_M_Control會被更新為新數據,同時FSL_S_Exists和FSL_M_Full信號也會被更新。同樣,這里暗示著在Readl和Read2之間發生了兩次主設備的寫操作。

3 FSL總線用法

3.1 使用FSL總線IP核的設備間通信

目前Xilinx提供的FSL總線IP核的版本是FSL_V20。兩個設備要使用FSL進行數據傳輸,就必須分別作為主設備或從設備連接到FSL核上。如果需要進行雙向的傳輸,只要兩個設備分別作為主從設備,使用兩個FSL核連接即可。

無論是作為主設備或是從設備,都需要通過在設備的微處理器外設描述文件(MPD)中進行相應的定義,以實現所需類型的FSL接口。下面這段代碼就是一個分別定義了FSL主設備接口FSL_OUT和從設備接口FSL_IN的MPD文件:
BEGIN my_fsl_peripheral
OPTl0N IPTYPE=PERIPHERAL
OPTl0N IMP_NETLIST=TRUE
BUS_INTERFACE BUS=FSL_IN,BUS_STD=FSL,BUS TYPE=SLAVE
BUS_INTERFACE BUS=FSL_OUT,BUS_STD=FSL,BUS_TYPE=MASTER
##Ports
PORT CLK=””,DIR=IN,SIGIS=CLK
PORT RESET=””。DIR=IN
PORT FSL_S_READ=FSL_S_Read,DIR=out,BUS=FSL_IN
PORT FSL_S_DATA=FSL_S_Data,DIR=in,VEC=[o:31],BUS=FSL_IN
PORT FSL_S_CONTROL=FSL_S_Control,DIR=in, BUS=FSL_IN
PORT FSL_s_EXISTS=FSL_S_Exists,DIR=in,BUS=FSL_IN
PORT FSL_M_WRITE=FSL_M_Write,DIR=out,BUS=FSL_OUT
PORT FSL_M_DATA=FSL_M_Data,DIR=out,VEC=[o:31],BUS=FSL_OUT
PORT FSL_M_CONTROL=FSL_M_Control,DIR=out, BUS=FSL_OUT
PORT FSL_M_FULL=FSL_M_Full,DIR=in,BUS=FSL_OUT

3.2 通過FSL與MicroBlaze通信

MicroBlaze軟核的FSL總線接口支持最多8對FSL連接,具體實現多少接口由系統硬件描述文件(MHS)中的參數 C_FSL_LINKS決定。默認情況下該參數為0,表示不實現FSL接口。當需要使用FSL總線把MicroBlaze和FPGA中的一個或多個邏輯模塊連接起來時,必須設置該參數的值為相應的模塊數。該參數的取值范圍是0~8。
在MicroBlaze指令集中還有針對FSL總線操作的指令,它們分別是:
◆get,put——阻塞式數據讀寫FSL,控制信號被置為0;
◆nget,nput——非阻塞式數據讀寫FSL,控制信號被置為0;
◆cget,cput——阻塞式控制位讀寫FSL,控制信號被置為1;
◆ncget,ncput——非阻塞式控制位讀寫FSL,控制信號被置為1。

4 FSL總線應用實例

在下面的實例中,嘗試通過FSL總線技術,將實現特定函數功能的用戶自定義IP核整合到MicroBlaze軟核系統中,以實現硬件加速的目的。這里以一個矢量漢字(vector font)還原功能的硬件模塊的整合為例,說明FSL總線的應用過程。所使用的開發平臺是Memec Insight 公司生產的Virtex—II系列的MicroBlaze開發板,板上采用的FPGA器件為Virtex—II 1000,系統時鐘為100 MHz,開發工具為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核發送漢字的區位碼(或者其他格式的漢字編碼,由使用的矢量字庫和還原算法決定)以及漢字的屬性信息(如字體、大小等)。

對于FSL_Lattice總線則正好相反。vector font 核作為主設備可以通過它向MicroBlaze核發送經過還原處理后的漢字點陣數據以及漢字點陣尺寸信息(用于將點陣數據在顯存中組織成正確的顯示格式)。

4.2 數據傳輸指令與控制位指令的應用

FSL 提供的獨立于數據傳輸的控制位可以用來對正在傳輸中的數據進行標記。為了區分區位碼數據與漢字屬性數據,以及點陣數據與漢字點陣尺寸數據。 MicroBlaze分別通過FSL的數據傳輸指令和控制位傳輸指令來發送漢字的區位碼和漢字屬性信息,接收點陣數據和漢字點陣尺寸信息。對應的實現代碼如下:
//使用非阻塞的數據寫函數向FSL總線寫入漢字區位碼Microblaze_nbwrite_datatsl(code,O)
//使用非阻塞的控制位寫函數向FSL總線寫入漢字屬性信息maicroblaze_cnbwrite_cnlfsl(attibute,O)
//使用非阻塞的數據讀函數從FSL總線讀取漢字點陣數據microblaze_nbread_datafsl(1attice,O)
//使用非阻塞的控制位讀函數從FSL總線讀取漢字點陣尺寸信息microblaze_cnbread_cnlfsl(size,O)

代碼中用到的與FSL有關函數的定義,都在include目錄下的mb_interface.h文件中。其中,各函數的第二個參數代表進行讀寫操作的 FSL總線接口的編號,對應Mi—croBlaze軟核的8對FSL接口。該參數的取值范圍從0到7。本例中,MicroBlaze只使用了一對 FSL接口,故而值為0。

4.3 實現步驟

首先,在Base System Wizard中設計圖5虛線框中所示的一個簡單的MicroBlaze嵌入式處理器系統。然后,在XPS集成開發環境下完成用戶自定義IP核(本例中即 vectoz__font核)的添加、Microblaze核FSL接口的添加(設置參數 C_FSL_LINKS=1),同時添加兩個FSL總線IP核,分別用于實現FSL_Code和FSL_Lattice總線。另外,將兩個FSL總線IP 核的參數C_USE_CONTROL置為1,以打開FSL總線的控制位傳輸功能。所有這些改動,最后都會被更新到MES文件中。這樣,硬件平臺生成工具 platgen就可以根據它生成所需要的FPGA配置文件了。

硬件的實現完成后,進行相應軟件參數的設置,如將系統標準輸入輸出設備指向UART模塊等。然后,用庫生成工具libgen,根據MSS(系統軟件描述文件)文件,將所需外設函數庫的頭文件添加進工程中。

通過調用這些函數,可以操作和控制這些外設。通過Tool項里的build命令,調用mb—gcc:編譯工具,將編寫的應用程序編譯成ELF文件,再用 updatebitstrcam命令將程序代碼對應的RAM初始化數據添加到前面生成的FPGA配置文件中,生成最終的bit配置文件。最后,使用 download命令將bit文件下載到目標板中。

以上就是整個FSL應用實例設計的實現過程。本例只是為了說明FSL總線的使用。實際應用中,還可以根據具體情況通過FSL,將更多的用戶自定義IP核(如DCT、FFT等)添加到.MicroBlaze軟核系統中去。

5.結 語

在嵌入式系統的開發中,人們一直希望能夠有一個滿足自己需要的“定制”的嵌入式處理器,而不是手頭大量存在的通用微處理器。但是,直接將用戶自定義IP核添加到處理器核中,不僅受到處理器原架構的束縛,還有可能降低處理器的性能(處理器工作頻率);而通過與內部寄存器直接相連的FSL接口,用戶自定義IP 可以在不破壞處理器原有結構的情況下,緊密地與MicroB- laze軟核結合在一起。這樣,即使關鍵路徑覆蓋了用戶IP 核,由于它在處理器內核之外,也不會導致處理器時鐘頻率的降低。

通過對FSL總線的分析以及上述實例的驗證,證明了在基于MicroBlaze的SoC 系統設計中,一方面可以針對具體應用進行“量體裁衣”式的設計;另一方面,利用其專用的FSL總線接口技術,實現嵌入式軟處理器系統與用戶自定義邏輯的整合,從而在不提高系統主頻的前提下,通過部分函數功能的硬件實現來提升系統的性能。

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲特色特黄| 欧美99在线视频观看| 亚洲国产欧美在线人成| 亚洲欧美日韩精品久久亚洲区 | 99国产精品久久久久老师 | 亚洲欧美精品伊人久久| 在线亚洲欧美专区二区| 在线视频日韩| 亚洲尤物视频网| 亚洲香蕉在线观看| 亚洲综合第一页| 亚洲在线一区二区三区| 亚洲一区在线看| 亚洲免费视频中文字幕| 午夜久久黄色| 欧美资源在线观看| 亚洲第一精品电影| 亚洲国产综合在线看不卡| 91久久国产自产拍夜夜嗨| 亚洲人成免费| 一区二区欧美日韩视频| 亚洲一区二区三区免费在线观看 | 狠狠色综合网站久久久久久久| 国产在线精品二区| 伊人久久亚洲热| 亚洲黄色在线| 一本色道久久综合亚洲精品小说 | 国产日韩av一区二区| 国产日韩一区二区三区| 国产亚洲毛片| 尤妮丝一区二区裸体视频| 亚洲激情视频在线播放| 99在线热播精品免费| 亚洲一区二区三区视频播放| 亚洲欧美综合精品久久成人| 久久爱www| 亚洲乱码视频| 午夜精品av| 久久久水蜜桃| 欧美激情第一页xxx| 国产精品高清一区二区三区| 国产日韩精品视频一区| 在线看片成人| 一本久久知道综合久久| 午夜精品免费在线| 亚洲精品久久久久| 亚洲一区二区三区高清| 久久视频这里只有精品| 欧美日韩国产小视频| 国产老女人精品毛片久久| 在线观看三级视频欧美| 在线综合亚洲欧美在线视频| 欧美在线|欧美| 一区二区三区黄色| 欧美在线免费看| 欧美激情一区在线| 国产精品永久免费| 亚洲高清在线观看一区| 亚洲一区二区三区四区中文 | 亚洲中无吗在线| 亚洲国产女人aaa毛片在线| 一区二区高清在线| 久久狠狠久久综合桃花| 欧美理论电影在线播放| 国产日韩欧美高清免费| 亚洲精品日韩欧美| 久久av资源网站| 亚洲一区二区在线看| 免费亚洲网站| 国产精品实拍| 亚洲风情亚aⅴ在线发布| 亚洲天堂成人| 亚洲精品黄网在线观看| 久久狠狠亚洲综合| 欧美午夜免费影院| 亚洲韩国精品一区| 欧美亚洲一区二区三区| 宅男噜噜噜66国产日韩在线观看| 久久久五月天| 国产精品网站在线播放| 亚洲精品久久7777| 久久av红桃一区二区小说| 亚洲五月婷婷| 欧美金8天国| 国内精品久久久久影院薰衣草| 99这里只有久久精品视频| 亚洲黄色小视频| 久久精品99无色码中文字幕| 欧美性猛片xxxx免费看久爱| 亚洲欧洲精品成人久久奇米网 | 伊人色综合久久天天| 亚洲女人天堂成人av在线| 一区二区三区波多野结衣在线观看| 久久久久国产精品麻豆ai换脸| 欧美先锋影音| 亚洲区欧美区| 亚洲国产成人tv| 久久久精品国产一区二区三区 | 欧美一二区视频| 亚洲欧美中文另类| 欧美色精品在线视频| 亚洲人成艺术| 亚洲日韩成人| 欧美日韩另类综合| 销魂美女一区二区三区视频在线| 欧美一区二区精品| 亚洲一区二区三区乱码aⅴ蜜桃女 亚洲一区二区三区乱码aⅴ | 亚洲国产精品视频一区| 日韩一级黄色av| 亚洲国产中文字幕在线观看| 久久成人精品电影| 国产精品扒开腿做爽爽爽软件| 亚洲欧洲一区二区三区| 最近中文字幕mv在线一区二区三区四区| 亚洲男女自偷自拍图片另类| 欧美极品欧美精品欧美视频| 亚洲第一区在线| 亚洲高清在线观看一区| 久久九九精品99国产精品| 国产精品自拍三区| 亚洲欧美日本日韩| 亚洲欧美日韩国产一区二区三区 | 欧美在线免费观看视频| 久久精品欧洲| 国产亚洲电影| 久久精品国产亚洲5555| 久久久久天天天天| 国产一区亚洲| 欧美在线免费| 免播放器亚洲| 亚洲精品乱码久久久久久| 一本久道综合久久精品| 欧美另类变人与禽xxxxx| 亚洲美女中出| 亚洲欧美日韩国产一区二区| 国产精品欧美一区二区三区奶水| 亚洲色无码播放| 欧美有码视频| 国产一区清纯| 亚洲日本中文字幕| 欧美日韩免费一区| 亚洲视频1区| 欧美一区影院| 国精品一区二区| 亚洲精品小视频在线观看| 欧美日韩免费区域视频在线观看| 亚洲色图综合久久| 欧美中文字幕在线播放| 怡红院精品视频| 日韩视频精品| 国产精品久久久久9999| 午夜天堂精品久久久久| 免费观看不卡av| 99这里有精品| 久久国产福利| 亚洲二区免费| 亚洲一区www| 国产一区二区三区的电影 | 亚洲国产精品嫩草影院| 欧美黄色精品| 亚洲一区免费视频| 久久综合狠狠| 日韩亚洲精品电影| 久久精品免费| 美日韩精品视频| 一区二区日韩| 午夜精品福利电影| 狠狠综合久久| 一区二区不卡在线视频 午夜欧美不卡在 | 国产精品视频专区| 久久激情视频| 欧美日韩日本国产亚洲在线| 午夜精品亚洲| 欧美精品xxxxbbbb| 香蕉久久夜色精品国产| 欧美国产日韩精品免费观看| 亚洲视频一二| 女人色偷偷aa久久天堂| 亚洲午夜小视频| 欧美成人a视频| 亚洲女爱视频在线| 欧美国产综合一区二区| 亚洲一区在线直播| 欧美国产先锋| 欧美在线视频导航| 欧美日韩免费高清| 久久精品人人做人人爽| 国产精品激情偷乱一区二区∴| 亚洲国产毛片完整版| 国产精品乱码久久久久久| 亚洲黄色成人| 国产老女人精品毛片久久| 亚洲卡通欧美制服中文| 国产性猛交xxxx免费看久久| 一区二区三区精品国产| 国产综合一区二区| 亚洲男同1069视频| 欧美一区二区福利在线| 国产精品成人观看视频免费| 亚洲综合清纯丝袜自拍|