基于Xilinx公司硬IP核的方法實(shí)現(xiàn)PCI Express總線接口及數(shù)據(jù)的傳輸設(shè)計(jì)_第1頁
基于Xilinx公司硬IP核的方法實(shí)現(xiàn)PCI Express總線接口及數(shù)據(jù)的傳輸設(shè)計(jì)_第2頁
基于Xilinx公司硬IP核的方法實(shí)現(xiàn)PCI Express總線接口及數(shù)據(jù)的傳輸設(shè)計(jì)_第3頁
基于Xilinx公司硬IP核的方法實(shí)現(xiàn)PCI Express總線接口及數(shù)據(jù)的傳輸設(shè)計(jì)_第4頁
基于Xilinx公司硬IP核的方法實(shí)現(xiàn)PCI Express總線接口及數(shù)據(jù)的傳輸設(shè)計(jì)_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

基于Xilinx公司硬IP核的方法實(shí)現(xiàn)PCIExpress總線接口及數(shù)據(jù)的傳輸設(shè)計(jì)現(xiàn)代測(cè)控系統(tǒng)和通信領(lǐng)域?qū)?shù)據(jù)傳輸速率的要求越來越高。相比PC中其他技術(shù)的發(fā)展,總線技術(shù)的發(fā)展顯得相對(duì)緩慢,總線性能已經(jīng)成為制約系統(tǒng)性能發(fā)揮的瓶頸。傳統(tǒng)的ISA,EISA總線等已無法適應(yīng)高速數(shù)據(jù)傳輸?shù)囊?,PCI總線技術(shù)雖然經(jīng)過了不斷的修正和發(fā)展,但是由于它固有的缺陷,使其應(yīng)用領(lǐng)域受到限制。PCIExpress總線以其優(yōu)異的性能和低廉的造價(jià)引起了業(yè)界的廣泛關(guān)注,具有廣闊的應(yīng)用前景。本文介紹PCIExpress總線接口的設(shè)計(jì)方法,,并實(shí)現(xiàn)一個(gè)基于IP核的PCIExpress總線接口。1PCIExpress總線簡(jiǎn)介PCIExpress總線[2]是Intel公司于1997年提出的第3代I/O技術(shù),是種全新的串行總線技術(shù)。與PCI總線相比,PCIExpress總線具有以下特點(diǎn):(1)在數(shù)據(jù)傳輸模式上,PCIExpress總線采用雙工串行傳輸模式,一條PCIExpress通道由2對(duì)LVDS差分線對(duì)組成:一對(duì)負(fù)責(zé)發(fā)送,另一對(duì)負(fù)責(zé)接收,單向數(shù)據(jù)傳輸速率為2.5Gb/s。(2)具有很好的靈活性,一個(gè)PCIExpress物理連接可以根據(jù)實(shí)際需要配置成×1,×2,×4,×8,×16,×32個(gè)并行的數(shù)據(jù)通道,滿足不同設(shè)備之間通信帶寬的要求。(3)在軟件層與PCI總線完全兼容,原有PCI總線的驅(qū)動(dòng)程序可以完全移植到PCIExpress總線架構(gòu)的系統(tǒng)中。(4)串行連接采用自同步時(shí)鐘技術(shù),時(shí)鐘內(nèi)嵌于串行數(shù)據(jù)的8bit/10bit編碼中,可實(shí)現(xiàn)數(shù)據(jù)傳輸率的自適應(yīng)調(diào)整。PCIExpress協(xié)議定義了3層結(jié)構(gòu):物理層,數(shù)據(jù)鏈路層和事務(wù)層。每個(gè)層次按照協(xié)議中規(guī)定的內(nèi)容,完成相應(yīng)的數(shù)據(jù)處理功能。2PCIExpress接口設(shè)計(jì)方法PCIExpress總線的接口的設(shè)計(jì)方法大體有2種:使用專用接口芯片或者使用可以實(shí)現(xiàn)PCIExpress物理接口的可編程器件。專用接口芯片實(shí)現(xiàn)了PCIExpress總線的物理層、數(shù)據(jù)鏈路層和事務(wù)層的控制邏輯。例如,PEX8311是PLX公司推出的第1款本地總線到PCIExpress×1的橋接芯片[3-4],符合PCIExpress1.0規(guī)范,支持自動(dòng)極性反轉(zhuǎn)、CRC校驗(yàn)、鏈路設(shè)備電源管理,具有直接主模式、直接從模式、DMA和數(shù)據(jù)預(yù)取等功能。使用PEX8311實(shí)現(xiàn)PCIExpress接口,用戶僅需實(shí)現(xiàn)相對(duì)簡(jiǎn)單的本地總線接口即可,降低了開發(fā)難度。但是這種方法受限于專用接口芯片的性能,用戶無法根據(jù)自身的需求提升接口的性能??删幊唐骷O(shè)計(jì)方案的基本思想是由FPGA實(shí)現(xiàn)PCIExpress的上層電路,利用Philip公司或TI公司提供的PHY(物理層)器件實(shí)現(xiàn)物理層接口,通常需要購(gòu)買Xilinx公司或Altera公司提供的IP核與PHY器件配合使用。在有些FPGA產(chǎn)品中,集成有PCIExpress接口的硬核模塊,可以采用相應(yīng)的產(chǎn)品實(shí)現(xiàn)PCIExpress接口的功能。例如,Xilinx公司Virtex-5LXT/SXT/FXT/TXT系列FPGA器件中,集成有PCIExpress硬核端點(diǎn)模塊,能夠自動(dòng)完成數(shù)據(jù)鏈路層和物理層的數(shù)據(jù)處理功能。采用這種方法,用戶只需要設(shè)計(jì)處理事務(wù)層數(shù)據(jù)包的邏輯電路即可。還可以根據(jù)自己的需求,設(shè)計(jì)具有特殊功能的電路結(jié)構(gòu),發(fā)揮接口的性能,但是這種方法的開發(fā)難度較大,開發(fā)周期相對(duì)較長(zhǎng)。3PCIExpress接口實(shí)現(xiàn)本設(shè)計(jì)采用Xilinx公司Virtex-5系列xc5vlx30t芯片,使用該芯片內(nèi)部的PCIExpressEndpoint硬核端點(diǎn)模塊,設(shè)計(jì)了處理事務(wù)層數(shù)據(jù)的邏輯電路,實(shí)現(xiàn)了計(jì)算機(jī)內(nèi)存與用戶邏輯之間數(shù)據(jù)的正確傳輸。其中,控制狀態(tài)機(jī)的設(shè)計(jì)和DMA控制器的設(shè)計(jì)是重點(diǎn)、難點(diǎn),下面詳細(xì)介紹具體的實(shí)現(xiàn)過程。3.1接口電路的設(shè)計(jì)在接口電路中,PCIExpress物理層和數(shù)據(jù)鏈路層的電路采用Xilinx公司的PCIExpressEndpointBlockplusv1.5硬核端點(diǎn)模塊實(shí)現(xiàn),能夠有效完成接口物理層和數(shù)據(jù)鏈路層的數(shù)據(jù)處理功能,提供給上層一個(gè)事務(wù)層數(shù)據(jù)接口。上層電路主要由5部分電路構(gòu)成,分別是核配置與輔助控制模塊、數(shù)據(jù)發(fā)送控制器、數(shù)據(jù)接收控制器、數(shù)據(jù)輸入FIFO和數(shù)據(jù)輸出FIFO,如圖1所示,最終提供給用戶FIFO類型的用戶邏輯接口。核配置與輔助控制模塊與硬核端點(diǎn)模塊緊密聯(lián)系,完成硬核端點(diǎn)模塊中通道寬度、時(shí)鐘頻率、設(shè)備號(hào)、版本號(hào)、存儲(chǔ)空間類型與大小等一系列可控制參數(shù)的配置與一些基本功能的控制。硬核端點(diǎn)模塊提供的事務(wù)層數(shù)據(jù)接口為64bit的數(shù)據(jù)發(fā)送接口和64bit的數(shù)據(jù)接收接口以及控制數(shù)據(jù)發(fā)送和接收的一系列控制信號(hào)接口。數(shù)據(jù)接收控制器將收到的事務(wù)層包進(jìn)行解析,根據(jù)數(shù)據(jù)包的類型進(jìn)行相應(yīng)的處理。數(shù)據(jù)發(fā)送控制器用于將所要發(fā)送的數(shù)據(jù)按照事務(wù)層包的格式進(jìn)行封裝后,發(fā)送到硬核端點(diǎn)模塊。數(shù)據(jù)輸入FIFO和數(shù)據(jù)輸出FIFO共同構(gòu)成了數(shù)據(jù)通道,均為雙端口FIFO,用于連接PCIExpress接口和用戶邏輯。數(shù)據(jù)輸入FIFO用于保存從接口收到的數(shù)據(jù);用戶邏輯電路輸出的數(shù)據(jù)保存到數(shù)據(jù)輸出FIFO中后發(fā)送到接口電路。3.2控制狀態(tài)機(jī)的設(shè)計(jì)數(shù)據(jù)發(fā)送控制器和數(shù)據(jù)接收控制器負(fù)責(zé)事務(wù)層數(shù)據(jù)的封裝和解析工作,是本設(shè)計(jì)中的關(guān)鍵電路模塊。這兩個(gè)模塊均采用有限狀態(tài)機(jī)方式進(jìn)行設(shè)計(jì),下面詳細(xì)介紹這2個(gè)模塊狀態(tài)機(jī)的設(shè)計(jì)。接收控制器從硬核端點(diǎn)模塊中收到事務(wù)層包(TLP),根據(jù)TLP的格式,第56bit~第62bit為表示數(shù)據(jù)包類型的標(biāo)志位。按照標(biāo)志位中的信息,對(duì)TLP的內(nèi)容進(jìn)行解析,進(jìn)行相應(yīng)的數(shù)據(jù)操作。所設(shè)計(jì)的狀態(tài)機(jī)的狀態(tài)轉(zhuǎn)換圖如圖2所示,各個(gè)狀態(tài)的說明如表1所示。系統(tǒng)復(fù)位后,接收控制器狀態(tài)機(jī)處于空閑狀態(tài),等待接收數(shù)據(jù)包,收到TLP后跳轉(zhuǎn)到相應(yīng)的狀態(tài)進(jìn)行存儲(chǔ)器或者I/O的讀寫操作。在操作過程中,對(duì)存儲(chǔ)器或者I/O的狀態(tài)進(jìn)行監(jiān)控,如果目標(biāo)設(shè)備沒有準(zhǔn)備好,則進(jìn)入等待狀態(tài)直到目標(biāo)設(shè)備就緒。在存儲(chǔ)器或者I/O的讀寫操作完成后,狀態(tài)機(jī)又返回空閑狀態(tài)。在各個(gè)狀態(tài)中接收控制器產(chǎn)生相應(yīng)的控制信號(hào)完成數(shù)據(jù)的寫入以及對(duì)發(fā)送控制器的操作。與接收控制器狀態(tài)機(jī)相比,發(fā)送控制器狀態(tài)機(jī)相對(duì)簡(jiǎn)單,只有3個(gè)狀態(tài),狀態(tài)轉(zhuǎn)換圖見圖3,各個(gè)狀態(tài)的說明見表2。系統(tǒng)復(fù)位后,發(fā)送控制器狀態(tài)機(jī)處于復(fù)位狀態(tài)。當(dāng)從接收控制器收到發(fā)送數(shù)據(jù)的命令后,如果需要發(fā)送的是一個(gè)載荷數(shù)據(jù),則將從存儲(chǔ)器或者I/O中取出的載荷數(shù)據(jù)填充到TLP中的相應(yīng)位置后發(fā)送到端點(diǎn)模塊;如果需要發(fā)送的只是一個(gè)響應(yīng)或者標(biāo)志信息,則直接封裝成一個(gè)TLP發(fā)送到端點(diǎn)模塊。3.3DMA控制器的設(shè)計(jì)由于串行總線結(jié)構(gòu)與傳統(tǒng)的并行總線結(jié)構(gòu)不同,因此存儲(chǔ)器的讀寫操作都是以數(shù)據(jù)包的形式傳輸。普通的讀寫操作一次最多只能進(jìn)行64bit數(shù)據(jù)的讀寫,使得總線多數(shù)時(shí)間處于等待狀態(tài),嚴(yán)重影響了PCIExpress總線的數(shù)據(jù)傳輸速率。本文設(shè)計(jì)出相應(yīng)的DMA控制器,實(shí)現(xiàn)了DMA方式的數(shù)據(jù)傳輸。DMA控制器的主要電路結(jié)構(gòu)為14個(gè)與DMA操作相關(guān)的寄存器,通過對(duì)這些控制寄存器的讀寫,設(shè)定DMA方式數(shù)據(jù)讀寫操作的地址范圍和數(shù)據(jù)大小,完成DMA數(shù)據(jù)讀寫操作。這些寄存器的定義和功能描述如表3所示。在設(shè)計(jì)了上述14個(gè)DMA控制寄存器后,接收控制器和發(fā)送控制器的狀態(tài)機(jī)也要進(jìn)行相應(yīng)的調(diào)整,以適應(yīng)DMA操作的需要。在接收控制器狀態(tài)機(jī)中加入了2個(gè)狀態(tài),分別用于接收數(shù)據(jù)傳輸過程中的第1個(gè)DMA數(shù)據(jù)包和剩余的DMA數(shù)據(jù)包。在發(fā)送控制器狀態(tài)機(jī)中也加入了2個(gè)狀態(tài),分別用于發(fā)送數(shù)據(jù)傳輸過程中的第1個(gè)DMA數(shù)據(jù)包和剩余的DMA數(shù)據(jù)包。為了達(dá)到盡可能高的數(shù)據(jù)傳輸速率,在接收和發(fā)送過程中都使用了64bit數(shù)據(jù)傳輸模式。在設(shè)計(jì)了如上所述的DMA控制器后,PCIExpress總線接口就可以用DMA方式進(jìn)行數(shù)據(jù)的讀寫操作。進(jìn)行DMA讀/寫操作的具體過程如下:(1)寫中斷控制寄存器,打開中斷;(2)寫讀/寫地址寄存器,設(shè)置讀/寫數(shù)據(jù)的起始地址;(3)寫讀/寫包長(zhǎng)度寄存器,設(shè)置讀/寫數(shù)據(jù)包的大小;(4)寫讀/寫包數(shù)量寄存器,設(shè)置讀/寫數(shù)據(jù)包的數(shù)量;(5)寫控制寄存器,啟動(dòng)DMA讀/寫操作;(6)等待中斷服務(wù)寄存器發(fā)出中斷;(7)收到中斷,讀中斷服務(wù)寄存器;(8)寫中斷控制寄存器,關(guān)閉中斷。4仿真與性能測(cè)試使用Verilog語言編寫代碼實(shí)現(xiàn)本設(shè)計(jì),使用ModelsimSE6.2g對(duì)該設(shè)計(jì)進(jìn)行功能仿真。從數(shù)據(jù)寫入FIFO的仿真波形圖中可以看到,未采用DMA方式時(shí),每次只能夠?qū)⒁粋€(gè)數(shù)據(jù)寫入到FIFO中,在2次寫操作之間存在較長(zhǎng)的等待時(shí)間;采用DMA方式時(shí),可以根據(jù)用戶的設(shè)置連續(xù)寫入多個(gè)數(shù)據(jù),消除了2次操作之間的等待時(shí)間,大大提高了數(shù)據(jù)傳輸速率。自行設(shè)計(jì)了采用Xilinx公司xc5vlx30t芯片的PCIExpress×4接口數(shù)據(jù)傳輸卡;使用Xilinx公司的ISE9.2對(duì)設(shè)計(jì)代碼進(jìn)行綜合和布局布線,生成配置文件,下載到xc5vlx30t芯片中;使用DELLPrecision690工作站,在Windows環(huán)境下編寫測(cè)試程序?qū)?shù)據(jù)傳輸卡PCIExpress接口數(shù)據(jù)傳輸?shù)乃俾蔬M(jìn)行測(cè)試。采用多種數(shù)據(jù)量對(duì)PCIExpress接口進(jìn)行DMA方式讀數(shù)據(jù)測(cè)試,得到的結(jié)果如圖4所示,硬件層數(shù)據(jù)傳輸速率穩(wěn)定在840Mb/s。采用多種數(shù)據(jù)量對(duì)PCIExpress接口進(jìn)行DMA方式寫數(shù)據(jù)測(cè)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論