999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于FPGA的SRIO工程模塊化提升設計

2021-10-20 12:29:46唐文武袁子喬
火控雷達技術 2021年3期
關鍵詞:用戶工程

唐文武 袁子喬

(西安電子工程研究所 西安 710100)

0 引言

隨著信息化時代的深入發展,信號處理系統往往需要具備極高的數據處理能力和傳輸能力,以滿足信息的有效性與實時性。針對信號處理系統的傳輸性能要求,本文將著重介紹一種高速IO口——串行高速IO口(Serial Rapid I/O,SRIO)。RapidIO主要是一種基于數據包交換的互聯體系結構[1],在處理器互連、存儲子系統、通用計算平臺等場合得到廣泛應用。自2001年3月發布RapidIO1.1規范以來,RapidIO規范在不斷迭代更新,傳輸速率也在不斷提高,如今的RapidIO2.x規范已支持最高達6.25GHz的傳輸速率。RapidIO能夠滿足高性能嵌入式系統中板內多DSP與FPGA高速數據傳輸的技術要求,并克服傳統互連模式存在的局限性,其在高性能嵌入式系統中的表現已得到業界的廣泛認可。

本文旨在介紹SRIO接口及其協議,并重點介紹封裝SRIO工程的必要性及自定義SRIO工程IP核使用問題,為此本文將按照如下章節安排進行論述:

1)第一節:對SRIO技術及其應用作簡要概述,指出NREAD與SWRITE包包頭格式。

2)第二節:介紹了本文對SRIO工程改進之處并進行仿真驗證,最后介紹封裝后的用戶IP及其調用方法。

3)第三節:總結本次改進工作,提出待改善的問題。

1 SRIO技術及應用簡介

串行高速IO口(Serial Rapid I/O,SRIO)是RapidIO標準的一種,其物理層數據傳輸過程是串行的。本文著重介紹串行RapidIO標準,即串行高速IO口(Serial Rapid I/O,SRIO)。串行RapidIO在數據傳輸中使用了串行差分信號傳輸的方式。這樣的傳輸方式能有效地抑制干擾,提高傳輸距離,如圖1所示,每個tx或rx代表一對差分信號線,數據包通過兩根串行差分信號線進行傳輸。

圖1 SRIO傳輸示意圖

除了物理層之外,RapidIO還包含邏輯層和傳輸層,此三層協議共同構成RapidIO協議,對RapidIO協議有所了解有助于用戶理解和使用,下面對SRIO協議做簡要介紹。

1.1 RapidIO協議簡介

RapidIO協議由邏輯層、傳輸層和物理層構成,為此互連技術提供相關的規范標準。RapidIO協議中邏輯層位于最高層,規定了包格式和所有的協議,為端點器件發起、完成事務提供了必要的信息。RapidIO支持直接IO/DMA和消息傳遞兩類事務,其中直接IO/DMA事務又可分為NREAD(帶響應的讀事務)和SWRITE(流寫事務)等。RapidIO協議規定在傳輸有效數據之前,需先傳包頭,包頭包含了數據傳輸需要的相關信息,如定義格式類型的FTYPE字段,定義傳輸類型的TTYPE字段,一個完整的請求包和響應包包頭格式分別如圖2(a)和圖2(b)所示。

圖2 HELLO包包頭格式

在工程應用中,用戶只需了解邏輯層的各個字段含義即可。其中不同的FTYPE字段和TTYPE字段可唯一確定事務功能,下表1給出了工程中用到的NREAD模式和SWRITE模式HELLO包包頭格式。

表1 邏輯層HELLO格式包包頭

1.2 RapidIO技術在多通道高速數據傳輸中的應用

在高性能的嵌入式系統中,數據處理的快慢不僅取決于數字信號處理器(Digital Signal Processor,DSP)與FPGA處理能力[2-3],數據傳輸線路的傳輸性能也會影響到整個系統的效率。采用多通道并行傳輸的方式,可有效地提高數據傳輸速率、降低延時[4]。基于上述需求,本文提出以多通道(4X模式)SRIO互連技術作為作為數據傳輸方式,并采用其NREAD模式及SWRITE模式實現數據的有序分發,通過對FPGA中SRIO工程的模塊化改進,實現更為高效的編程使用。

2 SRIO工程的改進與封裝用戶IP核

2.1 基于RAM的SRIO工程模塊化設計

在雷達信號處理中,通常每秒需要幾十至幾百次運算[5],這無疑對數據吞吐量提出巨大挑戰。為了提高傳輸效率,在本次改進工作中,我們規定SWRITE事務每次傳輸256字節數。其次,本文以簡化雙口RAM存儲方式替代原先的FIFO存儲,其優勢在于與FIFO存儲方式相比,RAM對存儲單元是可尋址的,便于實現每寫32個8字節數自動發送的功能,用戶只需按照一定時序將數據寫入RAM即可,不需要考慮何時發送及與發送相關的問題,極大地簡化了使用過程。改進后的SRIO工程傳輸原理如圖3所示。

圖3 基于RAM的SRIO工程數據傳輸原理

2.2 SWRITE事務實現方法

SWRITE模式具有打包效率高、傳輸穩定的特點[6],對模塊化設計的SRIO工程進行仿真時設立my_ireq_tlast信號,在每次傳輸至最后一個數據時將其拉高,因此兩個相鄰my_ireq_tlast脈沖的時間間隔即為完成一次數據包傳輸所消耗的時間。經過改進的SWRITE事務的用戶數據寫入時序如仿真圖4所示。

仿真圖時序關系為,當srio_init_done拉高時,表明SRIO初始化完成;此時用于時序控制的寫使能控制計數器dv_cnt在RAM寫時鐘ram_wr_clk下開始累加。由圖4可知,發送復位信號rst_send隨著dv_cnt累加至一定值作周期性拉高數個ram_wr_clk;rst_send脈沖后延時2個寫時鐘,寫使能dv_data_send拉高,8字節數data_send按照ram_wr_clk節拍寫入RAM中;每寫入32個data_send時,程序自動觸發SRIO讀取RAM數據并發送操作。

圖4 SWRITE事務時序圖

仿真中將SRIO的發送總線與接收總線相連,因此在正確傳輸數據時,數據接收總線data_send應接收到與數據發送總線val_treq_tdata_out上的數據。本次仿真中,發送數據按字節累加寫入data_send,如圖5(a)所示,data_send為一按字節遞增數。在數據接收端val_treq_tdata_out上接收到與data_send相同的數據,如圖5(b)所示,說明本此改進后的SRIO工程能正確地傳輸數據。

圖5 仿真發送與接收的數據包

再觀察數據包包頭,按照協議,在每次傳輸256字節情況下SWRITE模式邏輯層包頭應為0060_xffx_xxxx_xxxx,這里x代表未定數,各字段含義參照表1所示。根據仿真結果,如圖6所示,發送數據第一包為包頭,其值為0060_2ff0_0c30_0000,可知FTYPE字段的值為6,表明這是一個SWRITE事務。

圖6 SWRITE請求事務包頭信息

2.3 NREAD事務分析

為了對比不帶響應的SWRITE事務與帶響應的NREAD事務,本節將分析NREAD事務數據交換流程,確定兩者差異,為工程應用提供參考。NREAD請求事務僅包含HELLO格式包頭,包頭提供了必要的信息,仿真結果顯示其包頭數據為xx24_2ff0_00c3_0000,x代表未定數,按照表1對應關系可知FTYPE字段為2,TTYPE字段為4,說明這是一個NREAD事物包,仿真結果如圖7所示,val_ireq_tvalid與val_ireq_tready同時為高時,val_ireq_tdata上的數據即為包頭數據。

圖7 NREAD請求事務包頭信息

NREAD事務的發起方提供數據交流所需的必要信息,目標方則需要對此進行響應,按發起方的要求將數據發送給發起方。響應事務HELLO格式包頭類似于表1,響應事務的FTYPE=13,TTYPE=8。

在FPGA向DSP進行雷達數據分發時,若采用SWRITE事務類型,FPGA主動向DSP發送數據,數據分發效率較高,需要DSP進行及時處理;若采用NREAD事務類型,DSP主動向FPGA請求數據,在DSP處理性能較低或處理任務量巨大時可采用此事務類型。

2.4 封裝SRIO工程

原SRIO工程可全面測試SRIO各項功能,并生成一些報告信息,其源文件較多,且源代碼較混亂,不適用于實際工程。針對工程應用,在確保仿真各項邏輯無誤且編譯通過的情況下,本文改進工作簡化了SRIO工程,去除冗余代碼及模塊,達到了提升工程模塊化設計和提高應用效率的預期效果,工程包含了四個模塊,分別為:

1)top_srio_app.v模塊:工程的頂層模塊,負責本地設備與遠端設備進行信息交互,用戶可通過該模塊給SRIO核與RAM提供時鐘、系統復位、數據寫入與接收等操作;

2)srio_gen.v模塊:工程的中間模塊,作為頂層模塊top_srio_app.v與底層請求/響應模塊的數據與控制交換中心,并例化了SRIO IP核;

3)srio_request_gen.v模塊:底層模塊,用于接收srio_gen.v模塊下傳的數據與控制信號,并按照RapidIO協議產生與請求包相應的數據與控制信號;

4)srio_response_gen.v模塊:底層模塊,模塊功能與srio_request_gen.v模塊相似,只是其產生的是響應包的數據與控制信號。如前文所述,本次改進工作在SWRITE事務數據緩存上,采用了一個寬度64bit,深度512的RAM代替FIFO。

為進一步提高該工程的便捷性、可移植性,遵循“三化”原則,本文將改進后的SRIO工程在vivado環境下封裝成用戶IP核,封裝后的IP核仿真工程結構如圖8所示,對比封裝前工程,封裝后工程得到大幅簡化,并且封裝內部變量與模塊,引出輸入輸出引腳供用戶使用,實現了工程模塊化設計。封裝后的SRIO工程即為用戶自定義IP核,其引腳圖如圖9所示,左側信號是輸入,右側信號是輸出。

圖8 封裝后的SRIO工程結構

圖9 封裝后的用戶自定義IP核

本用戶IP核控制邏輯與時序見2.2節,各引腳說明見表2所示。

表2 用戶IP核引腳說明

使用本用戶IP核時,需先將IP核拷貝到個人計算機,然后在vivado工程管理界面中添加該IP核至個人工程中,最后即可在IP目錄下找到該用戶IP核,雙擊調用即可。在使用中,為了避免丟包情況發生,在可接受范圍內應盡可能降低寫使能信號占空比。

3 結束語

本文按照“三化”要求,緊密結合工程應用現狀,對FPGA中的SRIO工程進行改進,改進工作主要圍繞以RAM存儲方式取代FIFO以及SWRITE事務下每次寫入32×8字節數自動觸發發送過程,最后對改進的SRIO工程實行封裝用戶自定義IP核,致力于解決SRIO工程中信號定義及控制邏輯不統一,移植效率較低的問題。實際驗證表明,本次改進工作取得良好的預期效果,但仍存在待解決的問題,如發送帶寬從時序上及存儲上有待優化,特別是在避免丟包漏包的問題上,可能存在更優的處理方案,以實現寫使能信號占空比的最大化,進一步提高帶寬。

猜你喜歡
用戶工程
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
子午工程
太空探索(2016年6期)2016-07-10 12:09:06
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
關注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
工程
Camera360:拍出5億用戶
創業家(2015年10期)2015-02-27 07:55:08
100萬用戶
創業家(2015年10期)2015-02-27 07:54:39
如何獲取一億海外用戶
創業家(2015年5期)2015-02-27 07:53:25
工程
工程
主站蜘蛛池模板: 伊人色在线视频| 亚洲午夜国产精品无卡| a级毛片免费网站| 免费一级成人毛片| 久久综合色视频| 免费无码又爽又黄又刺激网站| 欧美精品在线免费| 尤物视频一区| 超级碰免费视频91| 小说 亚洲 无码 精品| 亚洲娇小与黑人巨大交| 18禁黄无遮挡免费动漫网站| 97视频在线观看免费视频| 国产嫖妓91东北老熟女久久一| 午夜无码一区二区三区| 秋霞午夜国产精品成人片| 亚洲无码37.| 日本伊人色综合网| 91外围女在线观看| 99久久精品美女高潮喷水| 国产欧美中文字幕| 天堂成人在线| 欧美一级高清片久久99| 巨熟乳波霸若妻中文观看免费| 免费黄色国产视频| 风韵丰满熟妇啪啪区老熟熟女| 浮力影院国产第一页| 精品人妻一区无码视频| 亚洲欧美日韩成人高清在线一区| 色吊丝av中文字幕| 国产精品一区二区国产主播| 夜夜拍夜夜爽| 亚洲人成网站观看在线观看| 久久亚洲AⅤ无码精品午夜麻豆| 中文成人在线| 欧美成人午夜视频| 一级一级一片免费| 99精品欧美一区| 国产一区二区丝袜高跟鞋| 成年A级毛片| 永久免费无码成人网站| 亚洲首页国产精品丝袜| 亚洲天堂成人| 97影院午夜在线观看视频| 亚洲精品图区| 国产成人综合久久| 少妇露出福利视频| 免费无码又爽又黄又刺激网站 | 亚洲一欧洲中文字幕在线| 内射人妻无套中出无码| 日本人又色又爽的视频| 成人一区在线| 久久久91人妻无码精品蜜桃HD| 六月婷婷精品视频在线观看| 成人综合久久综合| 精品亚洲国产成人AV| 91亚洲国产视频| 亚洲欧洲AV一区二区三区| 香蕉eeww99国产在线观看| 国产乱人伦AV在线A| 久久无码av三级| 国产高颜值露脸在线观看| 国产精品第一区| 国产免费一级精品视频| 欧美日韩中文国产| 国产国拍精品视频免费看| 青青青视频免费一区二区| AV在线麻免费观看网站| 一级毛片免费高清视频| 国产激情影院| 国产波多野结衣中文在线播放 | 免费va国产在线观看| 亚洲成在人线av品善网好看| 色爽网免费视频| 久久香蕉国产线| 欧美激情网址| 亚洲激情区| 久久亚洲欧美综合| 亚洲精品在线影院| 国产一区二区三区精品欧美日韩| 综合成人国产| 国产精品三级av及在线观看|