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

FPGA的多路數據并行錄取和時序資源優化

2017-07-31 21:57:23蘇陽趙英瀟黃睿張月陳曾平
單片機與嵌入式系統應用 2017年7期
關鍵詞:區域優化資源

蘇陽, 趙英瀟, 黃睿, 張月, 陳曾平

(國防科技大學 自動目標識別重點實驗室,長沙 410073)

摘要: PCIe總線在雷達系統中應用日益廣泛,但FPGA內部集成的PCIe硬核數量有限,難以滿足雷達并行錄取多種數據的需求。為此,本文提出了一種改進的PCIe DMA數據傳輸方法,利用Xilinx FPGA集成的單個PCIe硬核實現了多路數據在高速傳輸情況下的并行錄取。針對實現過程中遇到的時序問題,提出了采用多級FIFO級聯方法進行時序優化。依據Xilinx FPGA的時鐘網絡特點,對時鐘資源進行優化,便于日后系統的擴展和升級。

FPGA的多路數據并行錄取和時序資源優化

蘇陽, 趙英瀟, 黃睿, 張月, 陳曾平

(國防科技大學 自動目標識別重點實驗室,長沙 410073)

摘要: PCIe總線在雷達系統中應用日益廣泛,但FPGA內部集成的PCIe硬核數量有限,難以滿足雷達并行錄取多種數據的需求。為此,本文提出了一種改進的PCIe DMA數據傳輸方法,利用Xilinx FPGA集成的單個PCIe硬核實現了多路數據在高速傳輸情況下的并行錄取。針對實現過程中遇到的時序問題,提出了采用多級FIFO級聯方法進行時序優化。依據Xilinx FPGA的時鐘網絡特點,對時鐘資源進行優化,便于日后系統的擴展和升級。

FPGA;PCIe;并行錄?。粫r序優化

引 言

PCIe(PCI-Express)總線作為芯片間和板間通信最常用的標準之一,目前在雷達系統中應用尤為廣泛。然而隨著雷達技術的不斷發展,當前雷達在應用過程中面臨目標多樣化、環境復雜化和任務多元化等問題。用一部雷達代替多部雷達的功能,使一部雷達同時具有多種對抗能力成為當前雷達發展的主要趨勢[2]。

實驗室采用的Xilinx公司Kintex-7 FPGA芯片內部僅集成了單個PCIe硬核,難以滿足多種類型數據并行錄取的要求。為此本文提出了一種改進的并行錄取方法,并對其進行了時序和時鐘資源方面的優化。

1 硬件平臺簡介

本文的硬件平臺是某雷達系統的數據存儲與管理工作站。該工作站主要由一臺機架服務器和安裝在其內部的磁盤陣列以及功能板卡組成。功能板卡主要是兩塊PCIe光纖接口卡和一塊陣列控制卡。其中一塊PCIe光纖接口卡用于接收中頻直接采集寬帶數據(以下簡稱“直采數據”)和寬帶去斜回波數據(以下簡稱“去斜數據”),而本文的主要工作就是在此板卡上展開。

PCIe光纖接口卡采用Kintex-7 FPGA芯片接收直采數據和去斜數據并傳輸至陣列服務器。FPGA芯片通過PCIe接口與陣列服務器進行數據交互。另外,該板卡還提供8片DDR3 SDRAM芯片,可用作數據緩存。

2 多路數據并行錄取的設計與實現

2.1 并行錄取實現思路

陣列服務器與FPGA之間通過PCIe DMA(Direct Memory Access)的方式進行數據傳輸,其標準的數據傳輸流程如圖1所示[3-4]。服務器在復位完成后會為DMA緩存塊申請內存空間并設置DMA的寫地址、TLP包的大小和數量,之后開啟DMA寫數據直至結束。

圖1 DMA數據傳輸流程圖

在FPGA PCIe的BAR內存中可以預先分配多個寄存器用于服務器控制FPGA的DMA進程。通過這些寄存器,服務器可以讀取當前數據緩存的狀態,FPGA也可以通過這些寄存器接收主機的控制指令[5]。由于需要實現并行錄取直采數據和去斜數據,而Kintex-7 FPGA內只有一個PCIe硬核,即單次DMA過程中FPGA只能傳輸一種數據。因此對上述DMA流程加以改進以實現多路數據并行傳輸,具體如圖2所示。

FPGA會實時計算當前緩存中的數據量,一旦其超過設定的閾值,則會通過PCIe BAR內存中的寄存器反饋給主機。在DMA開始之前,通過讀取直采和去斜數據的緩存狀態,主機會向FPGA下達相應數據的選通指令。DMA開始后,FPGA根據選通信號輸出相應的數據。一次DMA結束后主機根據數據類型的不同將接收到的數據存儲至相應路徑下。

由于直采數據的數據率和數據量都遠大于去斜數據,直采數據緩存易變滿,因而選擇優先判斷直采數據是否就緒。又由于設定的閾值大于單次DMA的總數據量且遠小于DDR3芯片的存儲容量,在并行錄取時,能夠保證數據傳輸類型快速切換而不致緩存變滿出現丟數的情況。

圖2 改進后的DMA數據傳輸流程圖

2.2 FPGA頂層結構設計

圖3 FPGA頂層結構設計圖

根據上述設計思路,FPGA頂層結構設計如圖3所示,其中主要模塊功能介紹如下:

① GTX模塊用于接收去斜數據,Aurora模塊用于接收直采數據;

② Frame_Check模塊用于將接收的去斜數據進行位序調整,之后輸入DDR3模塊;

③ DDR3控制模塊用于控制DDR3芯片讀寫時序,并將當前芯片讀寫狀態通過PCIe模塊反饋給陣列服務器;

④ PCIe模塊由Xilinx提供的PCIe IP核配置生成,用于FPGA與服務器之間的數據交互;

⑤ SEL模塊用于接收服務器的指令,選通相應數據通道,將相應的數據通過PCIe模塊發送給服務器;

⑥ FIFO用作GTX或者Aurora模塊與DDR3模塊之間以及DDR3模塊與PCIe模塊之間的數據位寬轉換和跨時鐘域處理。

2.3 實現結果

通過上述方法,實際在用戶端看到的結果即為直采數據和去斜數據能夠實現并行錄取,如圖4所示。

圖4 數據并行錄取結果圖

3 時序優化

3.1 時序違例原因分析

利用Xilinx ISE的靜態時序分析工具進行時序分析后發現部分路徑存在時序問題[6]。從ISE提供的時序報告可知,出現時序問題的路徑在于:PCIe模塊輸出PCIe_fifo_rd_en信號至DDR3控制模塊,DDR3控制模塊就是通過接收該信號實現對DDR3芯片內數據讀取的控制。

根據時序報告中對路徑的具體描述,如表1所列,該路徑經過的3級組合邏輯,邏輯延遲為0.779 ns,線延遲卻高達5.426 ns,占總延遲時間的87.4%。結合在FPGA Editor中看到的實際布線結果,可以發現走線延遲過長是導致時序問題的主要原因。而出現這種情況的根本原因在于用作DDR3讀數據的緩存ddr3 read fifo在布局布線的過程中同時受到多個時序約束的影響。

表1 時序違例路徑詳細信息表

FPGA內部的FIFO是由多個blcok RAM搭建出來的,而單個RAM在芯片內部都占據固定的位置。隨著FIFO容量的增加,使用的blcok RAM數量越多,但這些blcok RAM之間需要滿足FIFO內部固有的時序約束,因而其布局不能過于分散。

除此以外,ddr3 read fifo還需要滿足與DDR3控制相關邏輯之間的時序約束,如圖5所示。最終ddr3 read fifo整體位置在圖中左下區域且內部blcok RAM之間布局相對緊湊,而PCIe相關邏輯均分布在右上區域,靠近內嵌的PCIe硬核的位置。兩者之間布局位置相隔較遠,導致布線延遲過大。

圖5 時序違例路徑實際布局結果圖

3.2 時序優化方法

基于以上分析可知,如果只是簡單的在時序違規的路徑之間添加一級寄存器,將整個路徑分割開來。雖然能消除時序錯誤,但PCIe_fifo_rd_en信號將延遲一個周期,意味著讀DDR3的數據時序會出現偏差,這將導致數據傳輸過程中出現丟數漏數的情況。因此采用多個FIFO級聯的方法來改善時序,即大容量blcok RAM FIFO +流水線+小容量distributed RAM FIFO的方式,如圖6所示。

圖6 FIFO級聯示意圖

前級FIFO由blcok RAM構成,作為數據緩存的主體。后級FIFO的容量較小,由distributed RAM構成。相較于block RAM,distributed RAM容量更小,但在布局布線的過程中更加靈活,可供選擇的位置也更多,能夠顯著緩解大容量FIFO和PCIe 模塊之間的時序壓力。同時在兩個FIFO之間添加一級流水線作為連接,后級FIFO的prog_full信號用于控制前級FIFO的rd_en端,且在時序約束中將該路徑設為虛假路徑,進一步緩解時序壓力。如果布局布線的效果依然不理想,還可以在此基礎上利用PlanAhead軟件手動調整blcok RAM和distributed RAM的布局位置,用于降低時序沖突[7]。

3.3 時序優化結果

圖7 時序優化后的布局結果圖

時序優化后的布局情況如圖7所示。優化后的ddr3 read fifo(圖中標紅色區域)和PCIe相關邏輯(圖中標黃色區域)的布局位置相對靠近,整體上減少了走線延遲。且兩者之間還有一級FIFO用作緩存,即圖中標綠色區域,將原先時序違例的路徑分割開來,極大地緩解了時序壓力,時序問題由此得到解決。

4 時鐘資源優化

在Xilinx的FPGA中,時鐘網絡資源分為兩類:全局時鐘資源和區域時鐘資源。全局時鐘資源是一種專用互連網絡,它可以降低時鐘歪斜、占空比失真和功耗,提高抖動容限。Xilinx的全局時鐘資源設計了專用時鐘緩沖與驅動結構,從而使全局時鐘到達CLB、IOB和BRAM的延時最小。當FPGA內部使用全局時鐘資源時,需要經過全局時鐘網絡緩沖器BUFG驅動。本文中使用的PCIe光纖接口卡上的Kintex-7 FPGA芯片內部僅有32個BUFG可供使用。

區域時鐘資源獨立于全局時鐘網絡。Xilinx的器件分為若干個時鐘區域,Kintex-7就有16個區域。它與全局時鐘不同,區域時鐘信號只能驅動限定的時鐘區域。與BUFG類似,使用區域時鐘資源需要經區域時鐘緩沖器BUFH或者BUFR驅動。BUFH可驅動單個時鐘區域中的水平全局時鐘樹,BUFR則最多可以驅動三個相鄰時鐘區域的區域時鐘。相較于BUFH和BUFR,BUFG資源數量較少,不能盲目地將所有時鐘都用BUFG驅動,這將不利于日后代碼的擴展和升級[8]。

通過查看MAP Report中時鐘資源使用情況的詳細信息,可以了解每個模塊內部時鐘資源的使用情況。通過FPGA Editor可以了解每個時鐘驅動的邏輯資源的分布情況。對于僅覆蓋三個時鐘區域以內的時鐘改由BUFR驅動,對于僅覆蓋單個時鐘區域的時鐘可改為由BUFH驅動。

如圖8所示,圖中黃色走線為時鐘sync_clk_i經過BUFG之前的部分,紅色走線為該時鐘經過BUFG之后通過全局時鐘網絡驅動邏輯的部分,藍色矩形框為該部分邏輯所在的時鐘區域。

圖8 sync_clk_i時鐘布線結果圖

可以看到sync_clk_i驅動的邏輯較少且僅分布在單個時鐘區域,故而將其改為由BUFH驅動。優化結果如圖9所示。黃色走線依然為時鐘sync_clk_i經過BUFG之前的部分,紅色走線為該時鐘經過BUFG之后的部分,并且ISE在滿足時序約束的條件下對驅動的邏輯部分重新進行了布局。通過實際數據傳輸測試,時鐘資源優化后依然能夠正常工作。

圖9 優化后的sync_clk_i時鐘布線結果圖

結 語

[1] J. Gong T,Wang J H,Chen H Y,et al.An Efficient and Flexible Host-FPGA PCIe Comm-unication Library[C]//in Field Programmable Logic and Applications (FPL) 24th International Conference on IEEE,Germany:Munich,2014.

[2] 郭建明,譚懷英.雷達技術發展綜述及第五代雷達初探[J].現代雷達,2012,34(2):5-6.

[3] Xilinx.Bus Master Performance Demonstration Reference Design for the Xilinx Endpoint PCI Express Solutions,2015.

[4] H Kavianipour,C Bohm.High Performance FPGA-Based DMA Interface for PCIe[C]//IEEE TRANSACTIONS ON NUCLEAR SCIENCE,2014.

[5] Xilinx.7 Series FPGAs Integrated Block for PCI Express v3.3 LogiCORE IP Product Guide,2016.

[6] 許天一.FPGA 靜態時序分析的研究與實現[D].哈爾濱:哈爾濱工業大學,2014.

[7] Xilinx.Timing Closure User Guide,2012.

[8] Xilinx.7 Series FPGAs Clocking Resources,2015.

Parallel Data Transmission Timing and Resource Optimization Based on FPGA

Su Yang,Zhao Yingxiao,Huang Rui,Zhang Yue,Chen Zengping

(ATR,National University of Defense Technology,Changsha 410073,China)

The PCIe bus is widely used in the radar system,but the internal integrated FPGA PCIe core is limited.So ti is difficult to meet the needs of a variety of data parallel transmission of radar.In this paper,an improved PCIe DMA data transmission method is proposed,which ensures the data can be achieved in the parallel high speed transmission using Xilinx FPGA integrated PCIe core.In order to solve the problem of timing in the process of implementation,a multi-level FIFO cascade method is proposed.Based on the characteristics of Xilinx FPGA clock network,the clock resource is optimized for the system expansion and upgrade.

FPGA;PCIe;parallel transmission;timing optimization

TP336

A

?士然

2017-03-13)

猜你喜歡
區域優化資源
超限高層建筑結構設計與優化思考
房地產導刊(2022年5期)2022-06-01 06:20:14
基礎教育資源展示
民用建筑防煙排煙設計優化探討
關于優化消防安全告知承諾的一些思考
一道優化題的幾何解法
一樣的資源,不一樣的收獲
資源回收
資源再生 歡迎訂閱
資源再生(2017年3期)2017-06-01 12:20:59
關于四色猜想
分區域
主站蜘蛛池模板: 一级不卡毛片| 欧美色伊人| 好吊日免费视频| 国产在线拍偷自揄拍精品| a亚洲天堂| 综合亚洲网| 亚洲性色永久网址| 97视频免费在线观看| 又爽又大又黄a级毛片在线视频| 国禁国产you女视频网站| 日韩无码视频网站| 粉嫩国产白浆在线观看| 欧美伊人色综合久久天天| 欧美综合区自拍亚洲综合绿色| 婷婷在线网站| 日本道综合一本久久久88| 99久久精品无码专区免费| 女人一级毛片| 国产午夜人做人免费视频中文 | 视频二区亚洲精品| 国产乱人免费视频| 免费a在线观看播放| 亚国产欧美在线人成| 久热这里只有精品6| 黄色网页在线播放| 一区二区三区四区日韩| 国产精品亚洲一区二区三区在线观看| 午夜福利亚洲精品| 在线看免费无码av天堂的| 免费观看国产小粉嫩喷水 | 精品免费在线视频| 欧美丝袜高跟鞋一区二区| 日本在线欧美在线| 日韩第九页| 麻豆国产原创视频在线播放| 无码AV高清毛片中国一级毛片| 久久精品女人天堂aaa| 91国内外精品自在线播放| 亚洲aaa视频| 欧美午夜视频在线| 在线观看国产精品第一区免费 | 国产爽妇精品| 国产微拍一区| 伦伦影院精品一区| 日本午夜影院| 国产真实乱了在线播放| 尤物在线观看乱码| 久久免费精品琪琪| 综合色亚洲| 中文字幕乱妇无码AV在线| 免费一级全黄少妇性色生活片| 999精品在线视频| 91九色国产在线| 久久亚洲黄色视频| 国产成人免费| 精品亚洲国产成人AV| 中文无码精品A∨在线观看不卡| 日韩一区二区三免费高清 | 国产精品第一区| 日韩人妻少妇一区二区| 2021国产精品自产拍在线观看| 国产毛片高清一级国语| 国产h视频在线观看视频| 五月天丁香婷婷综合久久| 99久久国产综合精品2023| 成人免费网站久久久| 亚洲无码在线午夜电影| 日韩精品一区二区三区swag| 亚洲第一成年免费网站| 亚洲男人的天堂在线观看| 在线无码私拍| 天天躁日日躁狠狠躁中文字幕| 免费Aⅴ片在线观看蜜芽Tⅴ| 亚洲永久色| 国产欧美日韩精品第二区| 在线亚洲精品福利网址导航| 欧美第一页在线| 久草视频一区| 凹凸国产分类在线观看| 欧美成人二区| 久久特级毛片| 国产永久在线视频|