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

基于FPGA的PCIE總線接口設(shè)計(jì)

2014-05-21 10:02:07張銳曹彥榮
新媒體研究 2014年7期

張銳+曹彥榮

摘 要 PCI Express總線是一種點(diǎn)對點(diǎn)串行連接的設(shè)備連接,每個(gè)設(shè)備都擁有自己獨(dú)立的數(shù)據(jù)連接,各個(gè)設(shè)備之間并發(fā)的數(shù)據(jù)傳輸互不影響,因此具有很高的傳輸速率。本設(shè)計(jì)使用Xilinx公司FPGA提供的PCIe IP硬核實(shí)現(xiàn)PCIe接口,并針對其高帶寬的優(yōu)勢,實(shí)現(xiàn)了PCIe總線的Brust數(shù)據(jù)傳輸方案,并經(jīng)過實(shí)際傳輸驗(yàn)證,表明該設(shè)計(jì)方案可以滿足傳輸帶寬的要求。

關(guān)鍵詞 PCIE;FPGA;Burst讀寫

中圖分類號:TP274 文獻(xiàn)標(biāo)識碼:A 文章編號:1671-7597(2014)07-0029-03

PCI Express總線是一種完全不同于過去PCI總線的一種全新總線規(guī)范,與PCI總線共享并行架構(gòu)相比,PCI Express總線是一種點(diǎn)對點(diǎn)串行連接的設(shè)備連接方式,點(diǎn)對點(diǎn)意味著每一個(gè)PCI Express設(shè)備都擁有自己獨(dú)立的數(shù)據(jù)連接,各個(gè)設(shè)備之間并發(fā)的數(shù)據(jù)傳輸互不影響,而對于過去PCI那種共享總線方式,PCI總線上只能有一個(gè)設(shè)備進(jìn)行通信,一旦PCI總線上掛接的設(shè)備增多,每個(gè)設(shè)備的實(shí)際傳輸速率就會(huì)下降,性能得不到保證。PCI Express總線利用串行連接特點(diǎn),能輕松的將數(shù)據(jù)傳輸速度提到一個(gè)很高的頻率,遠(yuǎn)遠(yuǎn)超出PCI總線的傳輸速率。

PCI Express是一種復(fù)雜的協(xié)議,它的實(shí)現(xiàn)可以采用專用的協(xié)議芯片,但是缺乏靈活性和可配置性,限制了系統(tǒng)整體性能。另一種方式是采用FPGA邏輯來實(shí)現(xiàn),PCIE IP硬核一般只實(shí)現(xiàn)PCIE的物理層和數(shù)據(jù)鏈路層的協(xié)議,設(shè)計(jì)者可以在IP硬核基礎(chǔ)上完成PCIE的TLP(數(shù)據(jù)傳輸層)和應(yīng)用層協(xié)議,雖然開發(fā)過程較復(fù)雜,但可根據(jù)應(yīng)用需要進(jìn)行靈活的配置,具有良好的可移植性,能更好的發(fā)揮PCIE高帶寬的優(yōu)勢。

Xilinx公司的Virtex 5系列FPGA芯片內(nèi)嵌PCI Express Endpoint Block硬核,為實(shí)現(xiàn)單片可配置PCI Expres總線解決方案提供了可能。本文在研究PCI Express 接口協(xié)議和PCI Express Endpoint Block硬核的基礎(chǔ)上,使用Virtex5 LX330T FPGA芯片設(shè)計(jì)PCI Express接口硬件電路,實(shí)現(xiàn)PCI Express數(shù)據(jù)傳輸。

1 PCIE接口Burst讀寫設(shè)計(jì)

1)FPGA內(nèi)置PCIe硬核特點(diǎn)。在接口電路中,PCI Express物理層和數(shù)據(jù)鏈路層的電路采用Xilinx公司的PCI Express Endpoint Block plus v1.9硬核端點(diǎn)模塊實(shí)現(xiàn),能夠有效完成接口物理層和數(shù)據(jù)鏈路層的數(shù)據(jù)處理功能,提供給上層一個(gè)事務(wù)層數(shù)據(jù)接口。

圖1 設(shè)計(jì)流程圖

上層電路主要由4部分電路構(gòu)成,分別是核配置與輔助控制模塊、數(shù)據(jù)發(fā)送控制器、數(shù)據(jù)接收控制器、BAR地址空間管理,如圖1所示,最終通過BAR地址空間與用戶邏輯進(jìn)行交互。

各個(gè)部分的作用如下。

①Endpoint for PCIe:FPGA內(nèi)的硬核,對外負(fù)責(zé)與其他PCIe設(shè)備協(xié)議通信對內(nèi)與TX、RX模塊進(jìn)行64bit并行與高速串行的轉(zhuǎn)換。

②PIO_TO_CTRL:PCIe核配置與輔助控制。

③EP_RX:負(fù)責(zé)主機(jī)單字讀寫FPGA的狀態(tài)機(jī)實(shí)現(xiàn)和Burst模式下寫操作的數(shù)據(jù)接收。

④EP_TX:負(fù)責(zé)主機(jī)單字讀FPGA的狀態(tài)機(jī)實(shí)現(xiàn)和Burst模式下讀操作的數(shù)據(jù)發(fā)送。

⑤EP_MEM:映射為PCIe空間的幾個(gè)BAR地址空間,將電子盤控制寄存器映射到閃存陣列主控,將數(shù)據(jù)區(qū)映射到雙口數(shù)據(jù)緩沖區(qū)控制器。

由于PCIe核只支持單字訪問的模式,所以需要修改數(shù)據(jù)接收控制器EP_RX、數(shù)據(jù)發(fā)送控制器EP_TX、BAR地址空間管理模塊EP_MEM,實(shí)現(xiàn)對Burst訪問模式的支持。

2)TLP數(shù)據(jù)包結(jié)構(gòu)。當(dāng)處理器或者其他PCIe設(shè)備訪問PCIe設(shè)備時(shí),所傳送的數(shù)據(jù)報(bào)文首先通過事務(wù)層被封裝為一個(gè)或者多個(gè)TLP數(shù)據(jù)包,之后才能通過PCIe總線的各個(gè)層次發(fā)送出去。TLP的基本格式如圖2所示。

圖2 TLP的基本格式

一個(gè)完整的TLP由1個(gè)或者多個(gè)TLP前綴、TLP頭、數(shù)據(jù)有效負(fù)載和摘要組成。在整個(gè)數(shù)據(jù)報(bào)文中,只有TLP頭和數(shù)據(jù)有效負(fù)載需要由用戶邏輯代碼來完成,其他部分都是PCIe核自動(dòng)生成的。

TLP頭是TLP最重要的標(biāo)志,包含了當(dāng)前TLP的總線事物類型、路由信息等一系列信息。本文主要涉及到存儲(chǔ)器寫和存儲(chǔ)器讀事務(wù)。對于32bit地址空間的存儲(chǔ)器讀寫請求,其TLP頭格式如圖3所示,硬核同時(shí)也支持64bit地址空間的操作。請求者通過填寫TLP頭內(nèi)的正確信息以及地址并且將數(shù)據(jù)放在TLP頭的后面發(fā)送給接收者,接收者便會(huì)解析包內(nèi)的信息將正

圖3 存儲(chǔ)器讀寫請求報(bào)文頭格式

確的數(shù)據(jù)放到自己的地址空間中。

對于存儲(chǔ)器寫請求,EP_RX控制器接收到TLP頭和數(shù)據(jù)之后,只需要通過EP_MEM模塊將數(shù)據(jù)存入寄存器或者雙口緩沖區(qū)中

即可。

對于存儲(chǔ)器讀請求,EP_RX控制器接收讀請求之后,需要啟動(dòng)EP_TX控制器將應(yīng)答數(shù)據(jù)組織在TLP完成報(bào)文中,完成讀操作。完成報(bào)文的頭格式如圖4所示。

圖4 完成報(bào)文頭格式

3)Burst寫操作的設(shè)計(jì)與實(shí)現(xiàn)。PCIe硬核的PIO模塊本身已經(jīng)支持32bit地址空間的單字存儲(chǔ)器讀寫請求、64bit地址空間的單字存儲(chǔ)器讀寫請求和IO讀寫請求。本設(shè)計(jì)主要完成對32bit地址空間Burst方式的存儲(chǔ)器讀寫請求的支持。同時(shí),考慮到實(shí)際應(yīng)用中DMA控制器一般只支持?jǐn)?shù)據(jù)8字節(jié)對齊的情況,所以本設(shè)計(jì)也只支持?jǐn)?shù)據(jù)8字節(jié)對齊的Burst讀寫訪問。

對于存儲(chǔ)器寫請求,實(shí)現(xiàn)的主要方法是EP_RX將接收的TLP頭中各個(gè)字段正確解析,并區(qū)分是單字寫和Burst寫,確定寫操作的數(shù)據(jù)長度,如果是單字寫,就將接下來的64位數(shù)據(jù)存入寄存器或者雙口緩沖區(qū)中;如果是Burst寫,就將數(shù)據(jù)按照64位寫入雙口緩沖區(qū)中,每個(gè)時(shí)鐘周期,地址自動(dòng)增加,直到數(shù)據(jù)全部寫入雙口緩沖區(qū)中。EP_RX控制器的狀態(tài)機(jī)如圖5所示。endprint

圖5 EP_RX控制器狀態(tài)機(jī)

圖6 EP_TX控制器狀態(tài)機(jī)

4)Burst讀操作的設(shè)計(jì)與實(shí)現(xiàn)。對于存儲(chǔ)器讀請求,EP_RX控制器對接收到的TLP進(jìn)行解析,將請求數(shù)據(jù)的起始地址和長度發(fā)送給EP_TX控制器,然后啟動(dòng)EP_TX完成數(shù)據(jù)傳遞。EP_RX控制器的狀態(tài)機(jī)如圖6所示。

在PCIe總線中,一個(gè)存儲(chǔ)器讀請求TLP可能收到目標(biāo)設(shè)備發(fā)出的多個(gè)完成報(bào)文后,才能完成一次存儲(chǔ)器讀操作。因?yàn)樵赑CIe總線中,一個(gè)存儲(chǔ)器讀請求最多可以請求4KB大小的數(shù)據(jù)報(bào)文,而目標(biāo)設(shè)備可能會(huì)使用多個(gè)存儲(chǔ)器讀完成TLP才能將數(shù)據(jù)傳遞完畢。

在PCIe設(shè)備的配置空間中,Link Control寄存器的RCB(Read Completion Boundary)位決定了讀完成報(bào)文的邊界,本文設(shè)計(jì)為64B。當(dāng)讀請求跨越了RCB邊界時(shí),需要分多個(gè)完成報(bào)文才能將數(shù)據(jù)傳遞完畢。

EP_TX收到完全請求,判斷是不帶有效載荷的完成報(bào)文,還是帶有效載荷的完成報(bào)文。如果是需要帶有效載荷,并且長度大于4個(gè)字節(jié)的情況就啟動(dòng)Burst讀周期。

Burst讀周期先進(jìn)行合法性檢查,對于起始地址或者請求長度不是8字節(jié)對齊的請求視為無效請求,不予響應(yīng)。

對于合法讀請求,EP_TX控制器按RCB邊界進(jìn)行完成周期拆分,具體的算法流程如圖7所示。

①對于數(shù)據(jù)同一個(gè)RCB邊界之內(nèi)的讀請求,第一個(gè)周期完成所有數(shù)據(jù)傳遞。

②對于數(shù)據(jù)跨RCB邊界的讀請求,按RCB區(qū)段劃分讀寫周期,先完成第一個(gè)周期,使得剩余數(shù)據(jù)的起始地址按64字節(jié)對齊;接下來每個(gè)周期傳遞64字節(jié),直到數(shù)據(jù)傳遞結(jié)束;最后一個(gè)周期可能不滿64字節(jié)。

圖7 讀完成的拆分算法

2 結(jié)果與驗(yàn)證

在完成FPGA的程序編寫后,用Modlesim仿真環(huán)境對程序進(jìn)行仿真。用VHDL實(shí)現(xiàn)TestBench作為激勵(lì)加載單元對EP_RX和EP_TX控制器進(jìn)行功能仿真驗(yàn)證。在實(shí)踐中進(jìn)一步使用ChipScrop抓圖,主要分析由通過EP_RX和EP_TX控制器產(chǎn)生的PCIe總線傳輸信號時(shí)序是否滿足要求。

圖8捕獲了Burst的寫過程,由波形可以看出,EP_RX控制器正確解析Burst寫數(shù)據(jù)報(bào)文,并成功寫入雙口緩沖區(qū)中。

圖8 Burst寫時(shí)序

讀操作的過程相對復(fù)雜,圖9捕獲了Burst讀過程,EP_RX控制器接收到讀請求后啟動(dòng)EP_TX控制器,EP_TX控制器將主機(jī)端發(fā)起的一個(gè)存儲(chǔ)器讀請求分成多個(gè)存儲(chǔ)器讀完成報(bào)文進(jìn)行數(shù)據(jù)傳輸。

圖9 Burst讀時(shí)序

經(jīng)實(shí)驗(yàn)測試,如表1所示,采用Burst方式的數(shù)據(jù)傳輸,速度明顯提高,有效提高了大容量存儲(chǔ)系統(tǒng)的傳輸帶寬。

參考文獻(xiàn)

[1]PCI Express Base Spec ification, 1. 0a ed[S].PC I SIG,2003.

[2]Xilinx.LogiCORE? Endpoint v3.6 for PCI Express User Guide[M].October 10,2007.

[3]馬鳴錦,朱劍冰.PCI、PCI-X和PCI Express的原理及體系結(jié)構(gòu)[M].北京:清華大學(xué)出版社,2007.

[4]李木國,黃影,劉于之.基于FPGA的PCIe總線接口的DMA傳輸設(shè)計(jì)[J].計(jì)算機(jī)測量與控制,2013(01).

[5]沈輝,張萍.FPGA在PCI Express總線接口中的應(yīng)用[J].現(xiàn)代電子技術(shù),2010(14).

[6]汪精華,胡善清.基于FPGA實(shí)現(xiàn)的PCIE協(xié)議的DMA讀寫模塊[J].微計(jì)算信息,2010,26(10).

作者簡介

張銳(1982-),女,陜西西安人,工程師,研究生,研究方向:計(jì)算機(jī)硬件設(shè)計(jì)。endprint

主站蜘蛛池模板: 啪啪国产视频| 国产欧美又粗又猛又爽老| 色香蕉影院| 99无码中文字幕视频| 激情乱人伦| 欧美一区日韩一区中文字幕页| 欧美日韩一区二区三| 99在线视频免费| h视频在线观看网站| 四虎永久免费网站| 亚洲欧美另类日本| 国产一级二级三级毛片| 福利视频一区| 99视频在线观看免费| 97人妻精品专区久久久久| 婷婷激情五月网| 亚洲国产成人无码AV在线影院L| 久久美女精品| 国产成人综合久久| 免费人成网站在线观看欧美| 日韩福利在线观看| 亚洲女人在线| 国产va免费精品观看| 日本人妻一区二区三区不卡影院 | 久久精品中文字幕免费| 黄色一级视频欧美| 国产不卡一级毛片视频| 91精品国产自产在线观看| 亚洲综合二区| 国产精品亚洲αv天堂无码| 亚洲精品手机在线| 欧美激情视频一区二区三区免费| 亚洲成年人网| 精品久久高清| 国产在线精品美女观看| 国产精品va免费视频| 国产理论一区| 日日拍夜夜操| 国产精品微拍| 欧美成人看片一区二区三区| 国产最新无码专区在线| 三上悠亚一区二区| 日韩二区三区无| 日韩在线视频网站| m男亚洲一区中文字幕| 色偷偷综合网| 国产一区成人| 久久综合九九亚洲一区| 亚洲一区二区三区在线视频| 国产欧美一区二区三区视频在线观看| 欧美日韩国产在线观看一区二区三区| 伊人成人在线视频| 日本人妻一区二区三区不卡影院| 国产粉嫩粉嫩的18在线播放91 | 一本久道久久综合多人| 国产成人无码AV在线播放动漫 | 国产精品自在在线午夜| 国产chinese男男gay视频网| 国产尹人香蕉综合在线电影| 成人国产免费| 26uuu国产精品视频| 尤物成AV人片在线观看| 欧美爱爱网| 天天摸夜夜操| 日韩在线影院| 中文字幕一区二区视频| 精品少妇人妻无码久久| 亚洲第一天堂无码专区| 亚洲第一网站男人都懂| 国产在线视频福利资源站| 欧美福利在线| 精品国产中文一级毛片在线看| 97视频免费看| 欧美色伊人| 亚洲一区第一页| 不卡视频国产| 亚洲天堂视频在线观看| 国产激情在线视频| 全部免费毛片免费播放| 99无码中文字幕视频| 无码一区二区三区视频在线播放| AV不卡在线永久免费观看|