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

基于PCIe總線的FPGA與PC間數(shù)據(jù)傳輸系統(tǒng)設(shè)計

2022-05-11 10:14:02楊佳麗
微型電腦應(yīng)用 2022年4期
關(guān)鍵詞:引擎系統(tǒng)

楊佳麗

(西安財經(jīng)大學(xué)行知學(xué)院, 管理學(xué)院, 陜西, 西安 710038)

0 引言

信息技術(shù)的發(fā)展為各類復(fù)雜的數(shù)據(jù)采集系統(tǒng)提供了便捷,對于多個領(lǐng)域的各類復(fù)雜系統(tǒng)來說,數(shù)據(jù)傳輸?shù)膶崟r性與準(zhǔn)確性都至關(guān)重要,是一切統(tǒng)計分析的基礎(chǔ)。FPGA在處理數(shù)據(jù)時由于并行處理具備速度優(yōu)勢,PCI Express總線由于采用串行互聯(lián)技術(shù)以及高帶寬,具備數(shù)據(jù)同步傳輸功能且具有高擴展性、成本低。2種技術(shù)各有優(yōu)勢,為高速有效的數(shù)據(jù)傳輸提供了技術(shù)保障。

1 關(guān)鍵技術(shù)簡介

1.1 PCI Express結(jié)構(gòu)

PCI Express(PCIe)是第三代互聯(lián)網(wǎng)通信的I/O總線,具有速率高、兼容性高等優(yōu)勢。采用事務(wù)處理層、鏈路層、物理層的分層體系:事務(wù)處理層接收數(shù)據(jù)請求并將其封裝為數(shù)據(jù)包,轉(zhuǎn)換為總線事務(wù);鏈路層用于數(shù)據(jù)包的正確接收與發(fā)送,確保數(shù)據(jù)可靠與完備;物理層發(fā)送鏈路層的數(shù)據(jù)包以及本身產(chǎn)生的數(shù)據(jù)包,接收另一端發(fā)送設(shè)備傳輸過來的數(shù)據(jù)上傳至鏈路層[1]。層次結(jié)構(gòu)如圖1所示。

圖1 PCIe層次結(jié)構(gòu)

1.2 可編程門陣列FPGA

FPGA全稱為現(xiàn)場可編程門陣列,已成為高速處理系統(tǒng)的主流平臺,集成以往可編程器件優(yōu)點的同時還解決了門陣列有限及開發(fā)周期過長的問題,在使用過程中需要不停擦寫,基于查找表技術(shù),集成各類硬核管理單元提升性能,常規(guī)芯片結(jié)構(gòu)包括可編程I/O單元、嵌入式RAM、基本可編程邏輯、布線以及時鐘管理。

2 DMA控制器設(shè)計

2.1 控制器邏輯原理

相對于標(biāo)準(zhǔn)編程的數(shù)據(jù)輸入與輸出傳輸,DMA具有大數(shù)據(jù)傳輸時高吞吐量以及占用CPU更低的優(yōu)勢。因此系統(tǒng)設(shè)計時為了提高系統(tǒng)性能選用DMA傳輸。根據(jù)DMA的實現(xiàn)原理,設(shè)計控制器邏輯如圖2所示。

圖2 DMA控制器

2.2 數(shù)據(jù)收發(fā)時序

2.2.1 發(fā)送過程

數(shù)據(jù)的發(fā)送過程主要包括以下步驟。

(1)PC端將寄存器配置好,啟動DMA傳輸之后,在FPGA端數(shù)據(jù)就位后,TX引擎中將trn_tsrc_rdy_n、trn_tsof_n聲明為有效,同時將TLP數(shù)據(jù)包存儲于trn_td[63:0],在IP核將trn_tdst_rdy_n聲明有效之后,將數(shù)據(jù)發(fā)送至緩存進而傳輸至PC內(nèi)存。

(2)在核聲明trn_tdst_rdy_n有效時,若應(yīng)用程序聲明trn_tsrc_rdy_n、trn_tsof_n有效,則將剩余TLP數(shù)據(jù)包都進行發(fā)送。若64 bit數(shù)據(jù)均有效,則存于trn_td[63:0]發(fā)送并將trn_trem_n[7:0]更新為00h,反之,將剩余32 bit有效數(shù)據(jù)存于trn_td[63:32]進行發(fā)送并將trn_trem_n[7:0]更新為0Fh。

(3)下一時鐘,若應(yīng)用程序聲明trn_tsrc_rdy_n無效,則結(jié)束傳輸。

2.2.2 接收過程

數(shù)據(jù)的接收過程主要包括以下步驟。

(1)PC端將寄存器配置好,啟動DMA傳輸之后,F(xiàn)PGA端數(shù)據(jù)發(fā)送請求數(shù)據(jù)包之后PC端會發(fā)送應(yīng)答,應(yīng)用程序準(zhǔn)備好進行接收時聲明trn_rdst_rdy_n有效。

(2)IP核準(zhǔn)備好之后聲明trn_rsrc_rdy_n、trn_rsof_n有效,將第一個應(yīng)答包存于trn_rd[63:0]發(fā)送

(3)接下來的時鐘里,若應(yīng)用程序聲明trn_rdst_rdy_n有效、IP核聲明trn_rsrc_rdy_n有效trn_rsof_rdy_n無效,則將剩余數(shù)據(jù)包存于trn_rd[63:0]進行發(fā)送。

(4)IP核聲明trn_rsrc_rdy_n、trn_reof_n有效,若64 bit數(shù)據(jù)均有效,則存于trn_rd[63:0]發(fā)送并將trn_rrem_n[7:0]更新為00h,反之,將剩余32 bit有效數(shù)據(jù)存于trn_rd[63:32]進行發(fā)送并將trn_rrem_n[7:0]更新為0Fh。

(5)若IP核緩存中不存在可發(fā)送TLPs,則聲明trn_rsrc_rdy_n無效,結(jié)束數(shù)據(jù)接收[2-3]。

3 數(shù)據(jù)傳輸系統(tǒng)設(shè)計

3.1 整體結(jié)構(gòu)

根據(jù)DMA控制器的結(jié)構(gòu),將系統(tǒng)功能模塊劃分為2個部分:FPGA端和PC端。FPGA端基于Xilinx LogiCorePCIe IP Core,實現(xiàn)對數(shù)據(jù)時序的控制以及PCIe事務(wù)的處理;PC端利用WinDriver的API函數(shù)設(shè)計驅(qū)動以及應(yīng)用程序。

3.2 FPGA端

FPGA端的主要功能模塊包括PCIe IP Core、RX接收引擎、TX發(fā)送引擎、寄存器及存儲讀寫、接收發(fā)送的FIFO控制模塊,邏輯框架如圖3所示。PCIe Endpoint Core為PCIe邏輯核,處理協(xié)議層的各項配置及事務(wù);TX Engine為發(fā)送引擎,實現(xiàn)TLP數(shù)據(jù)包的發(fā)送并管理時序;RX Engine為接收引擎,實現(xiàn)TLP數(shù)據(jù)包的接收并管理時序;寄存器及存儲讀寫模塊為Registers_Access,實現(xiàn)DMA的操作以及寄存器的管控;TX FIFO接收外界數(shù)據(jù)并緩存,提交TX發(fā)送引擎進而傳輸至PC;RX FIFO緩存從PC接收到的數(shù)據(jù)包,等待用戶調(diào)用[4-5]。

圖3 FPGA端總體邏輯

3.3 IP核配置

FIFO核在接收與發(fā)送引擎上的位寬有所不同,TX端讀寫同步,位寬均是64位,為避免全滿、全空標(biāo)志因時序關(guān)系導(dǎo)致丟數(shù),滿標(biāo)志選擇almost_full,空標(biāo)志選擇almost_empty。RX端讀寫異步,寫入位寬為64位,讀取位寬為32位,為了避免傳輸時由于寫滿導(dǎo)致丟數(shù),需將讀取時鐘設(shè)置為寫入時鐘的2倍。如此一來,需引入PLL(鎖相環(huán))實現(xiàn)倍頻,選擇一個CLKOUT0,反饋源設(shè)置為CLKFBOUT without BUFG,由于寫入時鐘的頻率為62.5 MHz,因此調(diào)節(jié)倍頻系統(tǒng)實現(xiàn)輸出頻率為125 MHz。

PCIe IP Core設(shè)置系統(tǒng)時鐘為100 MHz,subclass值設(shè)置為0X80,設(shè)備ID等其他基本信息采用默認(rèn)值即可。基址寄存器參數(shù)包括6個BAR(Base Assress Redister),由于地址尋址為32位,故選擇BAR0,其分配1 MB空間。性能寄存器的TLPs最大負(fù)載Max Payload Size設(shè)置為512 Bytes,其他選項保持默認(rèn)值。生產(chǎn)PCIe核后從工程中移除,將源文件添加至ipcore_dir路徑下對應(yīng)的文件夾[6-7]。

3.4 PC端驅(qū)動與應(yīng)用程序設(shè)計

PC端主要采用WinDriver生成PCIe驅(qū)動,并利用其自帶的API函數(shù)實現(xiàn)數(shù)據(jù)接收與發(fā)送的應(yīng)用程序設(shè)計。WinDriver在診斷硬件及寄存器可正常讀寫之后,只需開發(fā)人員進行簡單的參數(shù)設(shè)置即可自動生成驅(qū)動程序的源碼。PC端應(yīng)用程序調(diào)用的API函數(shù)主要包括如下。

(1) DMAWriteMenAlloc:實現(xiàn)內(nèi)存分配并進行鎖定,避免其他程序占用。包括需分配內(nèi)存塊數(shù)menBlocknum、每塊內(nèi)存大小Block Size 2個參數(shù)。

(2) StartDMATransfer:實現(xiàn)DMA傳輸,包括傳輸方向choice、讀寫文件名fp、數(shù)據(jù)包大小tlp_size、數(shù)據(jù)包個數(shù)tlp_count、傳輸次數(shù)cyclenum 5個參數(shù)。

(3) W_WaitForComplete/R_WaitForComplete:實現(xiàn)多次連續(xù)傳輸,包括數(shù)據(jù)包大小tlp_size、數(shù)據(jù)包個數(shù)tlp_count、傳輸次數(shù)cyclenum 3個參數(shù)[8]。

應(yīng)用程序首先初始化PCIe函數(shù)庫,然后打開設(shè)備分配一段內(nèi)存并鎖定,配置寄存器參數(shù)后開始DMA傳輸,完成后由FPGA向PC端發(fā)送一個中斷,PC判斷中斷類型后對寄存器標(biāo)志位進行更新,如果是多次傳輸,則進入多次傳輸線程。所有數(shù)據(jù)均完成傳輸之后關(guān)閉PCIe設(shè)備,釋放系統(tǒng)資源。處理過程如圖4所示。

圖4 應(yīng)用程序處理流程

4 系統(tǒng)傳輸性能測試

4.1 測試環(huán)境準(zhǔn)備

采用Xilinx Virtex-5 ML507開發(fā)板、WinDriver驅(qū)動、Windows 系統(tǒng)、VS開發(fā)環(huán)境。將板卡插入A電腦的PCIe槽后上電。B電腦打開Verilog工程進行UCF文件配置,編譯好燒寫入板卡。A電腦安裝WinDriver工具以及PCIe驅(qū)動,在VS中運行程序進行數(shù)據(jù)傳輸測試[9]。

4.2 傳輸性能分析

由FPGA連續(xù)向PC寫入20G遞增數(shù)據(jù),PC接收后利用MATLAB驗證數(shù)據(jù)傳輸準(zhǔn)確。同樣地,PC端向FPGA也發(fā)送遞增數(shù)據(jù),利用傳輸?shù)臄?shù)據(jù)總量與耗時的比值計算數(shù)據(jù)傳輸?shù)乃俣龋瑴y試結(jié)果如表1所示。

表1 PCIe傳輸速度測試結(jié)果表

由測試結(jié)果可知,隨著單次傳輸數(shù)據(jù)大小的遞增,讀寫速度并未降低,當(dāng)單次傳輸8 MB時寫入速度可達202 MB/s,讀取速度可達178 MB/s。而且,因為耗時取的是第一次開始到最后一次結(jié)束的間隔且每次DMA后有中斷處理,相當(dāng)于每次都進行了4次BAR空間的寫操作,因此得出的時間間隔更長,由此計算出來的傳輸速度比實際的傳輸速度要低,實際傳輸效果更佳[10]。

5 總結(jié)

本研究介紹了DMA的控制邏輯與數(shù)據(jù)時序,采用PCIe總線技術(shù)設(shè)計了FPGA與PC間的以太網(wǎng)數(shù)據(jù)傳輸系統(tǒng),經(jīng)過測試數(shù)據(jù)傳輸準(zhǔn)確且讀寫性能優(yōu)異。但標(biāo)準(zhǔn)FIFO接口未考慮到多種數(shù)據(jù)格式的轉(zhuǎn)換,PC的配置性能對傳輸性能的影響,作為下一步的研究方向,力求進一步提升傳輸效率。

猜你喜歡
引擎系統(tǒng)
以學(xué)促干 挺膺擔(dān)當(dāng) 激活砥礪前行的紅色引擎
Smartflower POP 一體式光伏系統(tǒng)
WJ-700無人機系統(tǒng)
ZC系列無人機遙感系統(tǒng)
北京測繪(2020年12期)2020-12-29 01:33:58
基于PowerPC+FPGA顯示系統(tǒng)
半沸制皂系統(tǒng)(下)
三生 三大引擎齊發(fā)力
藍谷: “涉藍”新引擎
商周刊(2017年22期)2017-11-09 05:08:31
連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
無形的引擎
河南電力(2015年5期)2015-06-08 06:01:46
主站蜘蛛池模板: 69精品在线观看| 免费国产无遮挡又黄又爽| 久久精品丝袜高跟鞋| 亚洲人成高清| 精品色综合| 国产免费网址| 91精品伊人久久大香线蕉| 国产日韩欧美精品区性色| 国产成人无码播放| 五月天综合婷婷| 欧美成人午夜视频| 亚洲美女一级毛片| 国产欧美一区二区三区视频在线观看| 亚洲天堂视频网站| 狠狠亚洲五月天| av在线5g无码天天| 亚洲国产理论片在线播放| A级毛片无码久久精品免费| 亚洲va欧美ⅴa国产va影院| 91丝袜乱伦| 亚洲乱亚洲乱妇24p| 香蕉eeww99国产在线观看| 狼友视频一区二区三区| 被公侵犯人妻少妇一区二区三区| 亚洲人人视频| 日韩欧美中文亚洲高清在线| 超碰91免费人妻| 91在线视频福利| 精品视频一区在线观看| 色综合激情网| 噜噜噜久久| 国语少妇高潮| 2022国产91精品久久久久久| 国产极品美女在线观看| 亚洲午夜18| 国产99视频精品免费视频7| 亚洲女同欧美在线| 尤物精品国产福利网站| 97超级碰碰碰碰精品| 最新日韩AV网址在线观看| 国产a v无码专区亚洲av| 女同国产精品一区二区| 亚洲综合第一页| 在线视频精品一区| 久久久噜噜噜久久中文字幕色伊伊 | 国产精品浪潮Av| 国产第一页亚洲| 色精品视频| 性欧美在线| 亚洲日本中文字幕天堂网| 亚洲一区二区约美女探花| 天天躁夜夜躁狠狠躁图片| 免费国产在线精品一区| 中文字幕av一区二区三区欲色| 日韩专区欧美| 亚洲国产成人超福利久久精品| 亚洲AV无码一二区三区在线播放| 国产又爽又黄无遮挡免费观看| 亚洲最新地址| 亚洲成在线观看| 99精品一区二区免费视频| 伊人久久婷婷| 国产女人在线视频| 亚洲视频在线观看免费视频| 天天躁夜夜躁狠狠躁躁88| 中文字幕无码中文字幕有码在线| 992Tv视频国产精品| 亚洲无码高清视频在线观看| 亚洲精品成人福利在线电影| 成人免费一区二区三区| 欧美五月婷婷| 欧美午夜视频| 99久久国产精品无码| 亚洲成aⅴ人片在线影院八| a毛片在线| 欧美亚洲欧美| 久草视频精品| 久久这里只有精品8| 欧美精品亚洲二区| 免费aa毛片| 黄色网在线| 欧美在线国产|