• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      FPGA的多路數(shù)據(jù)并行錄取和時序資源優(yōu)化

      2017-07-31 21:57:23蘇陽趙英瀟黃睿張月陳曾平
      關(guān)鍵詞:時序時鐘雷達(dá)

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

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

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

      FPGA的多路數(shù)據(jù)并行錄取和時序資源優(yōu)化

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

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

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

      FPGA;PCIe;并行錄取;時序優(yōu)化

      引 言

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

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

      1 硬件平臺簡介

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

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

      2 多路數(shù)據(jù)并行錄取的設(shè)計與實現(xiàn)

      2.1 并行錄取實現(xiàn)思路

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

      圖1 DMA數(shù)據(jù)傳輸流程圖

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

      FPGA會實時計算當(dāng)前緩存中的數(shù)據(jù)量,一旦其超過設(shè)定的閾值,則會通過PCIe BAR內(nèi)存中的寄存器反饋給主機(jī)。在DMA開始之前,通過讀取直采和去斜數(shù)據(jù)的緩存狀態(tài),主機(jī)會向FPGA下達(dá)相應(yīng)數(shù)據(jù)的選通指令。DMA開始后,F(xiàn)PGA根據(jù)選通信號輸出相應(yīng)的數(shù)據(jù)。一次DMA結(jié)束后主機(jī)根據(jù)數(shù)據(jù)類型的不同將接收到的數(shù)據(jù)存儲至相應(yīng)路徑下。

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

      圖2 改進(jìn)后的DMA數(shù)據(jù)傳輸流程圖

      2.2 FPGA頂層結(jié)構(gòu)設(shè)計

      圖3 FPGA頂層結(jié)構(gòu)設(shè)計圖

      根據(jù)上述設(shè)計思路,F(xiàn)PGA頂層結(jié)構(gòu)設(shè)計如圖3所示,其中主要模塊功能介紹如下:

      ① GTX模塊用于接收去斜數(shù)據(jù),Aurora模塊用于接收直采數(shù)據(jù);

      ② Frame_Check模塊用于將接收的去斜數(shù)據(jù)進(jìn)行位序調(diào)整,之后輸入DDR3模塊;

      ③ DDR3控制模塊用于控制DDR3芯片讀寫時序,并將當(dāng)前芯片讀寫狀態(tài)通過PCIe模塊反饋給陣列服務(wù)器;

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

      ⑤ SEL模塊用于接收服務(wù)器的指令,選通相應(yīng)數(shù)據(jù)通道,將相應(yīng)的數(shù)據(jù)通過PCIe模塊發(fā)送給服務(wù)器;

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

      2.3 實現(xiàn)結(jié)果

      通過上述方法,實際在用戶端看到的結(jié)果即為直采數(shù)據(jù)和去斜數(shù)據(jù)能夠?qū)崿F(xiàn)并行錄取,如圖4所示。

      圖4 數(shù)據(jù)并行錄取結(jié)果圖

      3 時序優(yōu)化

      3.1 時序違例原因分析

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

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

      表1 時序違例路徑詳細(xì)信息表

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

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

      圖5 時序違例路徑實際布局結(jié)果圖

      3.2 時序優(yōu)化方法

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

      圖6 FIFO級聯(lián)示意圖

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

      3.3 時序優(yōu)化結(jié)果

      圖7 時序優(yōu)化后的布局結(jié)果圖

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

      4 時鐘資源優(yōu)化

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

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

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

      如圖8所示,圖中黃色走線為時鐘sync_clk_i經(jīng)過BUFG之前的部分,紅色走線為該時鐘經(jīng)過BUFG之后通過全局時鐘網(wǎng)絡(luò)驅(qū)動邏輯的部分,藍(lán)色矩形框為該部分邏輯所在的時鐘區(qū)域。

      圖8 sync_clk_i時鐘布線結(jié)果圖

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

      圖9 優(yōu)化后的sync_clk_i時鐘布線結(jié)果圖

      結(jié) 語

      [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] 郭建明,譚懷英.雷達(dá)技術(shù)發(fā)展綜述及第五代雷達(dá)初探[J].現(xiàn)代雷達(dá),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 靜態(tài)時序分析的研究與實現(xiàn)[D].哈爾濱:哈爾濱工業(yè)大學(xué),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)

      猜你喜歡
      時序時鐘雷達(dá)
      時序坐標(biāo)
      有雷達(dá)
      大自然探索(2023年7期)2023-08-15 00:48:21
      基于Sentinel-2時序NDVI的麥冬識別研究
      別樣的“時鐘”
      古代的時鐘
      雷達(dá)
      有趣的時鐘
      一種毫米波放大器時序直流電源的設(shè)計
      電子制作(2016年15期)2017-01-15 13:39:08
      時鐘會開“花”
      基于空時二維隨機(jī)輻射場的彈載雷達(dá)前視成像
      昭平县| 招远市| 图们市| 邵阳市| 双城市| 仁布县| 隆林| 蕉岭县| 汉川市| 泰来县| 静乐县| 汶上县| 启东市| 临泽县| 铜山县| 鹿泉市| 泰来县| 苍山县| 德昌县| 重庆市| 离岛区| 邢台市| 电白县| 萍乡市| 龙江县| 界首市| 武川县| 鞍山市| 正定县| 长子县| 通河县| 临潭县| 永年县| 云梦县| 兴城市| 萍乡市| 蕉岭县| 巴南区| 襄汾县| 无棣县| 通化县|