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

基于PCIe的高速接口設計*

2016-04-13 09:52:31李曉寧姚遠程秦明偉
網絡安全與數據管理 2016年1期
關鍵詞:設計

李曉寧,姚遠程,秦明偉

(西南科技大學 信息工程學院 特殊環境機器人技術四川省重點實驗室, 四川 綿陽 621010)

基于PCIe的高速接口設計*

李曉寧,姚遠程,秦明偉

(西南科技大學 信息工程學院 特殊環境機器人技術四川省重點實驗室, 四川 綿陽 621010)

PCIe總線是第三代I/O總線的代表,提供高性能、高速、點到點的串行連接,支持單雙工傳輸,通過差分鏈路來互連設備。該設計由Xilinx公司的Virtex-6 FPGA平臺和PC機組成,為了實現PFGA與CPU之間的高速通信,開發了基于FPGA IPcore 的PCIe總線 DMA數據傳輸平臺。通過硬件測試表明,該接口設計方案成本低,傳輸速率可以達到 1.5 Gb/s。

PCI-Express總線;FPGA;DMA

0 引言

隨著電子行業的飛速發展,人們對數據處理能力和存儲速率的要求越來越高,并行數據傳輸的PCI總線技術逐漸成為系統整體性能提升的瓶頸[1]。尤其在接收機的設計中,總線架構關系到系統的整體性能。串行點對點的PCIe總線克服了PCI總線在系統帶寬、傳輸速度等方面固有的缺陷,有效地提高了系統的整體性能。目前實現PCIe總線功能有兩種方法:采用FPGA實現PCIe的功能[2];使用PCIe橋接芯片。由于通過FPGA實現PCIe接口要比使用PCIe橋接芯片更加靈活,成本更低,可靠性更好,所以采用前者完成FPGA與PC機之間的信息的交互。

1 PCIe總線的簡介

PCI Express 體系結構采用分層結構,共分為四層:物理層(Physical Layer)、數據鏈路層(Link Layer)、處理層(Transaction Layer)和軟件層(Software Layer),這樣利于跨平臺的應用。軟件層發出的讀、寫請求,使用基于數據包、分段傳輸的協議,通過處理層,傳輸至鏈路層。在鏈路層,數據包可以添加序列號和循環冗余校驗(CRC),從而創建一個更高度可靠的數據傳輸機制。基本的物理鏈路層包括兩個單一通道,即兩個低電壓的AC耦合差分信號對(一個傳輸對和一個接收對)。通過增加信號對形成多信道,可以組成x1,x2,x4,x8,x16以及x32的鏈路模式,串行數據傳輸采用工業標準的8b/10b編碼實現數據恢復[3]。

本文基于非協作接收機的驗證平臺進行研究,系統整體框圖如圖1所示。

圖1 系統總體結構

2 PCIe接口及應用層設計

本設計采用Xilinx公司Virtex-6系列的FPGA,芯片為xc6vlx240t,集成了PCIe的IP核,該PCIe遵循V2.0的規范。首先使用Core Generation 生成PCIe的硬核模塊,生成的PCIe子模塊的鏈路寬度支持x1,x2,x4,x8四種模式。生成核的過程中主要需要配置的參數有:參考時鐘、鏈路寬度、設備ID、基址寄存器、TLP的大小、對應的Xilinx的開發板等[4]。該核完全符合PCI Express的分層結構[5],提供了系統接口(SYS)、外部傳輸接口(PCI EXP)、配置接口(CFG)、事務接口(TRN)和物理接口(PL)。PCI Express的頂端功能模塊與接口如圖2。

圖2 PCIe IP核頂層模塊和接口

圖4 存儲器讀寫請求報文頭格式

用戶邏輯接口:該接口為用戶設計提供一個產生和消耗TLPs的機制;

物理層接口:該接口允許用戶設計去查看鏈路狀態和對方鏈路的控制及狀態;

配置接口:主機通過該接口對IP核進行配置或讀取狀態;

系統接口:這里只包括時鐘和復位;

PCIe接口邏輯:由若干對差分信號線組成,分為接收和發送信號線。

3 DMA控制器的設計與實現

設計中為提高CPU的運行效率,在系統中引入了DMA控制器,該控制器是在PCIe IP核的基礎上實現的,數據的傳輸不占用CPU的時間,提高了系統的運行效率。

本節主要介紹DMA中的TLP數據包結構、DMA相關寄存器的設計和PCIe接口的DMA讀寫操作核心狀態機的設計。

3.1 TLP數據包結構

PCIe總線以數據包形式傳送信息,本設計主要關注事務層數據包TLP。一個完整的TLP如圖3所示,其中只有TLP頭和數據有效負載需要由用戶使用FPGA程序實現,其他都由PCIe核自動生成并加到幀結構中[6]。

圖3 TLP數據包格式

TLP頭是TLP中最重要的部分,主要包含當前TLP的總線事務類型、路由信息等。一個TLP中的數據有效負載的長度是可變的,本設計中選用的最大負載長度為512 B。PCIe 核支持32 bit和64 bit地址空間的操作,其中32 bit地址空間讀寫操作的TLP頭格式如圖4。請求者根據自己的需要填寫TLP頭中的信息,并將數據放在TLP頭的后面發送給接收者,接收者解析出正確的數據放入到自己的地址空間中。

DMA寫操作使用的TLP格式與存儲器寫操作TLP格式相同,DMA讀操作需要使用存儲器讀請求與存儲器讀完成兩種TLP格式。當接收到存儲器讀請求時,設備需要發送CPLD(帶數據的完成報文)。帶數據的完成報文與讀寫請求報文不同。

3.2 DMA操作寄存器的定義

PCIe IP核提供6個32 bit基地址寄存器BAR0~BAR5,也可以作為3個64 bit基地址寄存器,可以根據實際需要進行配置。設計中使用BAR0存儲各種寄存器地址,使用BAR1作為內存操作基地址空間。在BAR0中各寄存器地址定義如下:

(1)偏移地址0x00(DCR2)是控制DMA開始的寄存器,當寫入0x01時,DMA操作開始,上位機開始接收數據。

(2)偏移地址0x04是中斷服務寄存器。當DMA數據包傳輸完畢時,寫0x01到該寄存器,產生一個中斷,上位機會進入中斷服務進程。

(3)偏移地址0x08是DMA傳輸的目的地址。該目的地址是PC機端的內存首地址。DMA傳輸開始之前,將該地址寫到該偏移地址。當DMA操作時,將FPGA板卡上的數據傳到PC機端該地址處。

(4)偏移地址0x0C是DMA傳輸的數據長度。設計中定義了每個包的數據長度是512 B,由該值可得到需要傳輸的數據包個數,用于控制DMA操作的結束時刻。

3.3 DMA控制器

在整個設計中,DMA控制狀態機是核心部分,主要包括Tx Engine和Rx Engine。Tx Engine負責接收上位機存儲器讀寫操作、單字發送及DMA發送。Rx Engine主要負責存儲器讀寫操作、單字接收及DMA接收。實現PCIe的DMA讀寫操作的主要方法是正確填寫TLP包頭中的各個字段,并將數據按照64 bit并行放在TLP包頭中。對于DMA寫,將數據傳輸給PCIe硬核,由硬核將數據發送到物理端口,最后傳輸到PC機的物理地址中;對于DMA讀,主機將數據包發送到硬核,最后Rx Engine解包,將數據輸出。

Tx Engine和Rx Engine是使用狀態機來設計的,Rx Engine狀態轉移圖如圖5所示。

圖5 Rx Engine狀態轉換圖

Rx Engine開始時處于Rx_RST狀態,當Rx Engine收到數據包時,首先解析數據包,根據TLP包頭分辨數據包類型,進入不同的狀態。當接收到的是存儲器讀時,進入Rx_MEM_RD_QW1狀態,發送信號通知Tx Engine,由Tx Engine發送CPLD數據包;當接收到的是存儲器寫時,進入Rx_MEM_WR_QW1,處理收到的TLP數據并更新配制寄存器;當收到的是CPLD時,進入Rx_CPLD_QW1狀態,解析數據包,將數據存儲到相應的存儲器中;若信號trn_reof_n(傳輸結束信號,低電平有效)低電平沒有到來,則Rx Engine從Rx_CPLD_QW1進入到Rx_CPLD_QWN狀態,根據寄存器中存有的DMA數據長度來判斷數據是否已經接收完成,若沒有完成則不斷在該狀態循環,直到數據接收完畢,狀態機回到復位狀態。

Tx Engine狀態轉換圖如圖6所示。

Tx Engine狀態機同Rx Engine基本一樣,這里不再贅述。

圖6 Tx Engine 狀態轉換圖

DMA傳輸開始之前需要對DMA的相關寄存器進行配置,表1是寫DMA的操作步驟,寫DMA控制和狀態寄存器中定義了TLPs的地址、大小、個數、負載內容。

其中DCR1和DCR2是設備控制寄存器,控制選擇FPGA型號、接口數據帶寬、讀/寫DMA開始/結束以及中斷服務的開啟。WDMATLPA是寫DMA的TLP低32位地址

表1 寫DMA操作步驟

寄存器,WDMATLPS是寫DMA事務包的大小、事務包TC字段。WDMATLPC是寫數據包個數寄存器。WDMATLPP是寫數據包類型及32位有效負載寄存器。WDMAPERF是寫DMA執行寄存器,表示完成DMA傳輸所用到的接口時鐘周期數。

讀DMA與上述過程一致,只是在DMA中的傳輸方向的寄存器值不同。

4 仿真及測試結果

完成FPGA的程序編程后,用Modlesim對程序進行仿真。硬件測試時,使用ChipScope抓取數據,主要分析DMA控制器產生的PCIe總線傳輸信號時序是否滿足要求。同時,通過軟件測試了DMA傳輸速率。

圖7是DMA寫過程的仿真圖,功能是由FPGA板卡將數據上傳至PC機,圖8是讀過程的仿真圖,功能是由PC機到FPGA板卡的數據傳輸。由測試數據可以估算出PCIe Gen1x8寫操作速度可以達到1.5 GB/s。

由圖7可以看到數據包傳輸開始于trn_tsof_n低電平之后,結束于trn_teof_n。數據傳輸期間trn_tsrc_rdy_n和trn_rdst_rdy_n必須有效。

由圖8可以看到數據包傳輸開始于trn_rsof_n低電平之后,結束于trn_reof_n。數據傳輸期間trn_rsrc_rdy_n和trn_tdst_rdy_n必須有效。從圖中可以看到,若DMA傳輸沒有結束,在該數據包結束之后,會有新的數據包出現在鏈路上。

圖7 DMA寫過程仿真圖

圖8 DMA讀過程仿真圖

由仿真圖可知該設計能完成DMA讀寫功能并保證數據的正確傳輸。

實驗結果可得,DMA寫數據的速率可達1.5 GB/s,讀數據的速率可達1.47 GB/s,數據速率有大幅的提高。

5 結論

本文在PCIe硬核基礎上,設計了DMA控制器,使傳輸速度大幅度提高。經實際測試,該方案的數據傳輸速度在1.5 GB/s左右,可以滿足工作需要。PCIe是目前總線中傳輸速度最快的一種,此方案為高速的數據傳輸提供了一個參考,具有很好的參考和應用價值。

[1] 王齊.PCI Express 體系結構導讀[M].北京:機械工業出版社,2010.

[2] 雷雨,任國強,孫健,等.基于PCIE 的高速光纖圖像實時采集系統設計[J].電子技術應用,2013,39(10):136-142.

[3] 魏蕓.基于FPGA的PCIe總線DMA平臺設計[D].武漢:武漢理工大學,2013.

[4] 陳剛,張京,唐建.一種基于FPGA的PCIe總線及其DMA的設計方法[J].兵工自動化,2014,33(5):75-77.

[5] LogiCORETMIP Virtex-6 FPGA Integrated Block Data Sheet[R].Xilinx,2009.

[6] 李木國,黃影,劉于之.基于FPGA的PCIe總線接口的DMA傳輸設計[J].計算機測量與控制,2013,21(1):233-235.

Design of high-speed interface based on PCIe

Li Xiaoning,Yao Yuancheng, Qin Mingwei

(Robot Technology Used for Special Environment Key Laboratory of Sichuan Province,College of Information Engineering, Southwest University of Science and Technology, Mianyang 621010, China)

PCIe bus is the representative of the third-generation I/O bus, which provides high-performance, high-speed, point to point serial connection, supports single duplex transmission, interconnects devices using differential.This bus was designed using Xilinx’s Virtex-6 FPGA platform and PC.In order to achieve high-speed communication between the FPGA and the CPU, we developed DMA data transmission platform of PCIe bus based on IP core.Software simulation and hardware tests show that the interface design costs low , transmission rate can reach 1.5 Gb/s, this design platform can meet the requirements of the rate.

PCI-Express ;FPGA;DMA

西南科技大學研究生創新基金資助項目(14ycxjj0112)

TP303

A

1674-7720(2016)01-0027-03

李曉寧,姚遠程,秦明偉.基于PCIe的高速接口設計[J].微型機與應用,2016,35(1):27-29,32.

2015-10-15)

李曉寧(1989-),女,碩士,主要研究方向:通信技術相關領域研究。

姚遠程(1962-),男,教授,主要研究方向:數傳及抗干擾技術研究。

秦明偉(1979-),男,博士,副教授,主要研究方向:通信技術相關領域研究。

猜你喜歡
設計
二十四節氣在平面廣告設計中的應用
河北畫報(2020年8期)2020-10-27 02:54:06
何為設計的守護之道?
現代裝飾(2020年7期)2020-07-27 01:27:42
《豐收的喜悅展示設計》
流行色(2020年1期)2020-04-28 11:16:38
基于PWM的伺服控制系統設計
電子制作(2019年19期)2019-11-23 08:41:36
基于89C52的32只三色LED搖搖棒設計
電子制作(2019年15期)2019-08-27 01:11:50
基于ICL8038的波形發生器仿真設計
電子制作(2019年7期)2019-04-25 13:18:16
瞞天過海——仿生設計萌到家
藝術啟蒙(2018年7期)2018-08-23 09:14:18
設計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設計叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
從平面設計到“設計健康”
商周刊(2017年26期)2017-04-25 08:13:04
主站蜘蛛池模板: 香蕉精品在线| 精品国产91爱| 久久国产精品娇妻素人| 精品国产免费人成在线观看| 大香网伊人久久综合网2020| 亚洲精品麻豆| 国产97公开成人免费视频| 天天摸夜夜操| 色悠久久综合| 99成人在线观看| 国产福利在线观看精品| 亚洲天堂久久| 日本精品αv中文字幕| 久草热视频在线| 666精品国产精品亚洲| 色香蕉影院| 色欲色欲久久综合网| 老司国产精品视频| 久久久国产精品免费视频| 国产91丝袜在线观看| 高h视频在线| 亚洲视频无码| 国产成人91精品免费网址在线| 自慰网址在线观看| 在线观看av永久| 久久亚洲国产最新网站| 亚洲有无码中文网| 国内精品伊人久久久久7777人| 日韩国产另类| 久久国产高清视频| 91麻豆久久久| 久爱午夜精品免费视频| 男人天堂伊人网| 国产精品制服| 国产白丝av| 成年片色大黄全免费网站久久| 欧美日韩免费在线视频| 亚洲国产天堂久久九九九| 国产成人综合日韩精品无码不卡 | 波多野结衣一区二区三区88| 欧美亚洲一区二区三区导航| 国产精品999在线| 国产情精品嫩草影院88av| 久久精品只有这里有| 99re在线免费视频| 精品無碼一區在線觀看 | 一区二区三区四区日韩| 国产麻豆va精品视频| 国产高清毛片| 国产尤物jk自慰制服喷水| 亚洲欧美日韩高清综合678| 成人亚洲国产| 人妻21p大胆| 欧美成人手机在线观看网址| 综合色婷婷| h视频在线观看网站| 六月婷婷激情综合| 在线99视频| 免费在线播放毛片| 久久久久久尹人网香蕉 | 成人看片欧美一区二区| 亚洲综合色婷婷中文字幕| 免费在线视频a| 青草视频免费在线观看| 国产成人高精品免费视频| 男人天堂亚洲天堂| 精品国产99久久| 亚洲天堂高清| 中文字幕1区2区| 欧美午夜网站| 亚洲天堂视频网站| 亚洲国产成人久久精品软件| 日韩人妻无码制服丝袜视频| 久久午夜影院| 国产一区二区三区在线精品专区| 免费观看三级毛片| 久久综合丝袜长腿丝袜| 91精品啪在线观看国产| 毛片网站在线看| 秘书高跟黑色丝袜国产91在线| 91福利一区二区三区| 精品少妇人妻无码久久|