麻豆精品无码国产在线播放,国产亚洲精品成人AA片新蒲金,国模无码大尺度一区二区三区,神马免费午夜福利剧场

基于串行高速總線的fpga硬件抽象層及其實現方法

文檔序號:6621760閱讀:328來源:國知局
基于串行高速總線的fpga硬件抽象層及其實現方法
【專利摘要】本發明公開了一種基于串行高速總線的FPGA硬件抽象層,以FPGA廠家提供的串行高速總線的IP核為對外接口,對內提供統一的接口給用戶或是通信組件使用,包含如下功能模塊:IRESP模塊、IREQ模塊、DATA_CTRL模塊、TREQ模塊。本發明還公開了FPGA硬件抽象層的實現方法。用戶或是通信組件就可以通過使用硬件抽象層提供的統一的接口來方便的進行系統內通信,并可以在不同型號和規格的FPGA間任意移植程序,解決了基于串行高速總線的軟件無線電系統中,FPGA的應用軟件移植性、操作性和可重用性差的問題。
【專利說明】基于串行高速總線的FPGA硬件抽象層及其實現方法

【技術領域】
[0001]本發明涉及串行高速總線架構下硬件平臺的硬件抽象層設計方法,尤其涉及其中基于FPGA (現場可編程邏輯陣列)的硬件抽象層(以下簡稱MHAL)的實現方法。

【背景技術】
[0002]無線通信中不同的通信模式和功能采用不同的工作頻段、調制方式、通信協議和加密方式等,這些差異限制了不同通信設備間的連通,帶來了不便。軟件無線電的思想就是以一個通用、標準、模塊化的硬件平臺為依托,通過軟件編程來實現無線電臺的各種功能。
[0003]MHAL介于硬件平臺和軟件之間,它為了屏蔽硬件差異將硬件的實現抽象出來,負責處理軟硬件差異,并完成相關接口功能。同時,軟件無線電的硬件平臺間通常通過高速總線連接。其中串行高速總線使用廣泛,它是一種針對高性能嵌入式系統芯片間和板間互連而設計的總線技術,具有協議簡單、軟件開銷小、延時小和打包效率高等優點,現今主流的FPGA廠商均各自設計了相應的IP核。
[0004]在現有的無線電通信系統中,較常用的硬件平臺有PowerPC、FPGA和DSP等,未采用MHAL的傳統方法是在不同硬件平臺上設計不同的應用軟件,使用不同的接口規范,且相同硬件平臺也存在多樣的型號、技術體制和原理,所以軟件和接口規范也有差異。以這種方式在硬件平臺上設計應用軟件有如下弊端:
[0005](I)移植性差。由于不同的系統有不同的接口,每次程序代碼移植到新的系統中時,接口都需做相應改變。
[0006](2)操作性差。不同的軟件設計方法使得用戶的使用方法也不同,造成使用上的不方便。
[0007](3)可重用性差。在不同的硬件平臺上各自采用不同的程序架構和接口,導致只能用于特定的硬件平臺上,不能復用在其它硬件平臺上。


【發明內容】

[0008]本發明的目的是提供一種基于串行高速總線的FPGA上MHAL的設計方法,當基于串行高速總線的軟件無線電系統中的所有FPGA硬件平臺都使用該MHAL,用戶或是通信組件(以下簡稱HC)就可以通過使用MHAL提供的統一的接口來方便的進行系統內通信,并可以在不同型號和規格的FPGA間任意移植程序,解決了基于串行高速總線的軟件無線電系統中,FPGA的應用軟件移植性、操作性和可重用性差的問題。
[0009]本發明的目的通過以下技術方案來實現:
[0010]圖2為MHAL的整體設計框圖。以FPGA廠家提供的串行高速總線的IP核為對外接口,對內提供統一的接口給HC使用。各個模塊的功能如下:
[0011]I) IRESP模塊:負責處理IP核向IRESP接口發送的HC請求回應的消息,該設計中用于配置本地器件地址后請求獲取當前器件地址,以驗證回應的地址與之前配置的地址是否一致;
[0012]2) IREQ模塊:負責控制IP核的IREQ接口,向IP核發送由DATA_CTRL模塊發來的HC的請求,包括配置本地器件地址(以下簡稱MAINTENANCE事務)的請求和發送數據包(以下簡稱NWRITE事務)的請求;
[0013]3) DATA_CTRL模塊:根據HC的請求類型向IREQ模塊傳輸配置器件地址的信息,以及從TX_FIF0中取出要發送的數據,按照發送數據所需格式打包發送給IREQ模塊進行發送;
[0014]4) TREQ模塊:負責處理通過IP核的TREQ接口接收的,由通信系統內其它硬件平臺發送過來的數據,從發來信息的包頭解析出器件地址,并將接收到的數據寫入相應RX_FIFO 中。
[0015]MHAL給HC留的統一接口如下:
[0016]1)SET_ID_D0NE:由IRESP模塊通過判斷回應的器件地址是否為之前配置的器件地址后拉高或拉低,若配置地址正確則為高電平,錯誤為低電平;
[0017]2)DEVICE_ID_EN:配置本地器件地址使能,高電平時寫入要配置器件地址;
[0018]3)DEVICE_ID:要配置的器件地址;
[0019]4) FULL:TX_FIF0滿信號,當TX_FIF0不滿時寫入數據,反之不能寫入;
[0020]5)TX_WRITE_EN:寫使能,高電平的同時寫入要發送的數據;
[0021]6)TX_WRITE_DATA:發送數據的接口;
[0022]7)DEST_ID:數據發送的目標器件地址;
[0023]8)FLAG:當其為高電平時,說明接收到了數據;
[0024]9) RX_READ_EN:接收數據使能,高電平時接收數據;
[0025]10) RX_DATA:接收數據的接口。
[0026]MHAL實現如圖3、圖4、圖5所示的器件地址配置、數據發送和數據接收3個功能。下面分別進行詳細的介紹。
[0027]I)器件地址配置
[0028]軟件無線電通信架構中需要對各個硬件平臺及組件進行地址的編排,這樣系統資源調度者無需關心底層如何通信和處理,只需根據器件地址找到并使用該資源即可。其具體實現步驟如下:
[0029]a.拉高DEVICE_ID_EN信號,并在DEVICE_ID接口寫入要配置器件地址;
[0030]b.DATA_CTRL模塊將器件地址傳遞給IREQ模塊;
[0031]c.1REQ模塊根據MAINTENANCE事務時序將數據傳輸給串行高速總線串行高速總線的IP核;
[0032]d.串行高速總線的IP核將器件地址配置進寄存器中;
[0033]e.1REQ模塊向IP發出讀取當前器件地址請求;
[0034]f.1P核通過IRESP接口反饋當前的器件地址信息至MHAL,由IRESP模塊將其與之前要配置的器件地址比較;
[0035]g.若器件地址與要配置的地址相同,則表明地址配置成功,MHAL將SET_ID_D0NE接口拉高反饋給HC,反之拉低。若配置不成功則重復b?g步驟,直至成功。
[0036]2)數據發送
[0037]串行高速總線的協議規定最大的數據包為256字節,但實際應用的數據包往往超過256字節,所以需要一個發送緩沖區即TX_FIFO來存儲要發送的數據。HC使用MHAL需要對外發送數據時,先向TX_FIFO寫入數據。DATA_CTRL模塊只要發現TX_FIFO中有數據就從TX_FIFO取出數據,首先取出數據包頭(數據包頭含數據長度信息),判斷要發送數據的長度,若長度大于256字節則每次取出256字節,直到全部取出,反之則一次全部取出,與目的器件地址一起傳遞給IREQ模塊,采用NWRITE事務時序發送給IP核,由IP核將數據發送出去。具體步驟如下:
[0038]a.判斷MHAL的FULL信號是否拉高,拉高則說明FIFO滿不能發送,繼續等待,不滿則可以發送;
[0039]b.HC拉高TX_WRITE_EN引腳,將數據寫入FIFO,并在DEST_ID寫入發送目的地址;
[0040]c.DATA_CTRL模塊一旦發現TX_FIF0中有數據,就通過數據包頭判斷數據長度,若數據長度大于256字節則每次從TX_FIF0中取出最大256字節數據一包發送給IREQ模塊,直至全部取出;若數據長度小于256字節,則一次取出給IREQ模塊;
[0041]d.1REQ模塊每收到一包數據,就將數據根據NWRITE事務時序將發送給IP核;
[0042]e.1P核將數據發送出去到指定器件地址的器件上。
[0043]3)數據接收
[0044]當FPGA接收到數據時,IP核通過TREQ接口將數據發送到TREQ模塊,TREQ模塊將數據解析出來發送到接收緩沖區即RX_FIF0中,HC通過MHAL的FLAG信號來判斷是否接收到數據,并將數據從RX_FIF0中取出。具體實現步驟如下:
[0045]a.1P核將接收到的數據發送給TREQ模塊;
[0046]b.TREQ模塊將數據發送給RX_FIF0 ;
[0047]c.HC判斷FLAG,若為高,則拉高RX_READ_EN引腳,從RX_FIF0中取出數據;若為低則等待;

【專利附圖】

【附圖說明】
[0048]圖1是MHAL通信系統框架示意圖。
[0049]圖2是本發明MHAL的整體框架示意圖。
[0050]圖3是本發明中MHAL配置器件地址流程圖。
[0051]圖4是本發明中MHAL發送數據流程圖。
[0052]圖5是本發明中MHAL接收數據流程圖。
[0053]圖6是實施例中基于串行高速總線的FPGA的MHAL實施方案系統框圖。

【具體實施方式】
[0054]下面給出一種本發明的實施方式和步驟。
[0055]圖6為實例的系統組成框圖。整個系統主要包括兩塊分別有一片XC5VFX70T的FPGA和光模塊的FPGA開發板以及收發共兩根光纖線。用兩根光纖線將兩塊板的光模塊的收發端口分別互連,每個FPGA中都加載MHAL程序。下面用這兩塊FPGA通過MHAL進行串行高速總線的相互通信,通過Xilinx的ChipScope軟件來監控FPGA的所有端口。
[0056]第一步,配置器件地址:
[0057]I)用戶程序拉高MHAL的DEVICE_ID_EN接口,并通過DEVICE_ID接口寫入器件地址 0x53 ;
[0058]2)通過ChipScope軟件監控MHAL的SET_ID_D0NE的引腳是否為高,高則表明器件地址寫入成功;
[0059]3)重復上述I)和2)步驟,將另外一個FPGA的器件地址配置為0x63。
[0060]第二步,收發數據:
[0061 ] I)器件地址配置為0x53的FPGA拉高TX_WRITE_EN接口,通過TX_WRITE_DATA接口寫入數據2000字節長度的任意數據,DEST_ID接口寫入目標器件地址0x63 ;
[0062]2)在器件地址配置為0x63的FPGA判斷FLAG接口是否為高,當FLAG拉高時則拉高RX_READ_EN引腳,從RX_DATA接口接收數據;
[0063]3)觀察接收到的數據以及數據長度是否與發送的數據以及數據長度相同,相同則證明收發數據功能正常;
[0064]4)重復以上I)?4)步驟20次,驗證功能正常;
[0065]5)轉換收發雙方,從器件地址配置為0x63的FPGA上發送數據至地址為0x53的FPGA上,重復以上I)?5)。
[0066]以上所述,僅為本發明的一個具體實例,所涉及到芯片不僅局限于這I款,任何FPGA芯片都可應用于本發明中,所以本發明的保護范圍并不局限于此,任何熟悉本【技術領域】的技術人員在本發明所述的技術范圍內,所做的變化或替換,都應涵蓋在本發明的保護范圍內。因此,本發明的保護范圍應以權利要求書的保護范圍為準。
【權利要求】
1.一種基于串行高速總線的FPGA硬件抽象層,以FPGA廠家提供的串行高速總線的IP核為對外接口,對內提供統一的接口給用戶或是通信組件使用,包含如下功能模塊: 1)IRESP模塊:負責處理IP核向IRESP接口發送的用戶或是通信組件請求回應的消息,以及配置本地器件地址后請求獲取當前器件地址,以驗證回應的地址與之前配置的地址是否一致; 2)IREQ模塊:負責控制IP核的IREQ接口,向IP核發送由DATA_CTRL模塊發來的用戶或是通信組件的請求,包括配置本地器件地址的請求和發送數據包的請求; 3)DATA_CTRL模塊:根據用戶或是通信組件的請求類型向IREQ模塊傳輸配置器件地址的信息,以及從發送緩沖區中取出要發送的數據,按照發送數據所需格式打包發送給IREQ模塊進行發送; 4)TREQ模塊:負責處理通過IP核的TREQ接口接收的,由通信系統內其它硬件平臺發送過來的數據,從發來信息的包頭解析出器件地址,并將接收到的數據寫入接收緩沖區中; 所述的對內提供統一的接口包含如下: 1)SET_ID_DONE:由IRESP模塊通過判斷回應的器件地址是否為之前配置的器件地址后拉高或拉低,若配置地址正確則為高電平,錯誤為低電平; 2)DEVICE_ID_EN:配置本地器件地址使能,高電平時寫入要配置器件地址; 3)DEVICE_ID:要配置的器件地址; 4)FULL:發送緩沖區滿信號,當發送緩沖區不滿時寫入數據,反之不能寫入; 5)TX_WRITE_EN:寫使能,高電平的同時寫入要發送的數據; 6)TX_WRITE_DATA:發送數據的接口 ; 7)DEST_ID:數據發送的目標器件地址; 8)FLAG:當其為高電平時,說明接收到了數據; 9)RX_READ_EN:接收數據使能,高電平時接收數據; 10)RX.DATA:接收數據的接口。
2.根據權利要求1所述一種基于串行高速總線的FPGA硬件抽象層的應用方法,包含如下步驟: I)器件地址配置,實現步驟如下: a.拉高DEVICE_ID_EN信號,并在DEVICE_ID接口寫入要配置器件地址; b.DATA_CTRL模塊將器件地址傳遞給IREQ模塊; c.1REQ模塊根據配置本地器件地址時序將數據傳輸給串行高速總線串行高速總線的IP核; d.串行高速總線的IP核將器件地址配置進寄存器中; e.1REQ模塊向IP發出讀取當前器件地址請求; f.1P核通過IRESP接口反饋當前的器件地址信息至硬件抽象層,由IRESP模塊將其與之前要配置的器件地址比較; g.若器件地址與要配置的地址相同,則表明地址配置成功,硬件抽象層將SET_ID_DONE接口拉高反饋給用戶或是通信組件,反之拉低;若配置不成功則重復b?g步驟,直至成功; 2)數據發送,實現步驟如下: a.判斷FULL接口判斷發送緩沖區是否為滿,滿則不能發送,繼續等待,不滿則可以發送; b.用戶或是通信組件拉高TX_WRITE_EN引腳,將數據寫入發送緩沖區,并在DEST_ID接口寫入發送目的地址; c.DATA_CTRL模塊一旦發現發送緩沖區中有數據,就通過數據包頭判斷數據長度,若數據長度大于規定字節則每次從發送緩沖區中取出允許的最大字節數據打包發送給IREQ模塊,直至全部取出;若數據長度小于規定的字節,則一次取出給IREQ模塊; d.1REQ模塊每收到一包數據,就將數據根據發送數據包時序發送給IP核; e.1P核將數據發送出去到指定器件地址的器件上; 3)數據接收,實現步驟如下: a.1P核將接收到的數據發送給TREQ模塊; b.TREQ模塊將數據發送給接收緩沖區; c.用戶或通信組件判斷FLAG,若為高,則拉高RX_READ_EN引腳,從接收緩沖區中取出數據;若為低則等待。
【文檔編號】G06F17/50GK104133963SQ201410366166
【公開日】2014年11月5日 申請日期:2014年7月29日 優先權日:2014年7月29日
【發明者】羿昌宇, 沈聰, 李裕, 吳敏 申請人:中國航空無線電電子研究所
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
主站蜘蛛池模板: 响水县| 通城县| 天长市| 宁陵县| 观塘区| 方山县| 荥经县| 依兰县| 垫江县| 姜堰市| 平邑县| 永济市| 枣庄市| 大田县| 亳州市| 方山县| 五家渠市| 葵青区| 靖边县| 内乡县| 富源县| 滦平县| 资兴市| 兴宁市| 加查县| 平南县| 彭州市| 高碑店市| 涞水县| 清镇市| 西畴县| 聂荣县| 安宁市| 腾冲县| 辽宁省| 万盛区| 梁河县| 晋江市| 本溪市| 嘉定区| 尼玛县|