基于IP核的PCI Express接口設計

發(fā)布時(shí)間:2015-3-25 11:41    發(fā)布者:designapp

        現代測控系統和通信領(lǐng)域對數據傳輸速率的要求越來(lái)越高。相比PC 中其他技術(shù)的發(fā)展,總線(xiàn)技術(shù)的發(fā)展顯得相對緩慢,總線(xiàn)性能已經(jīng)成為制約系統性能發(fā)揮的瓶頸。傳統的ISA, EISA 總線(xiàn)等已無(wú)法適應高速數據傳輸的要求,PCI 總線(xiàn)技術(shù)雖然經(jīng)過(guò)了不斷的修正和發(fā)展,但是由于它固有的缺陷,使其應用領(lǐng)域受到限制。PCI Express 總線(xiàn)以其優(yōu)異的性能和低廉的造價(jià)引起了業(yè)界的廣泛關(guān)注,具有廣闊的應用前景。本文介紹PCI Express 總線(xiàn)接口的設計方法,,并實(shí)現一個(gè)基于IP核的PCI Express 總線(xiàn)接口。
1 PCI Express 總線(xiàn)簡(jiǎn)介
PCI Express 總線(xiàn)是Intel 公司于1997 年提出的第3 代I/O 技術(shù),是種全新的串行總線(xiàn)技術(shù)。與PCI 總線(xiàn)相比,PCI Express 總線(xiàn)具有以下特點(diǎn):
(1)在數據傳輸模式上,PCI Express 總線(xiàn)采用雙工串行傳輸模式,一條PCI Express 通道由2 對LVDS 差分線(xiàn)對組成:
一對負責發(fā)送,另一對負責接收,單向數據傳輸速率為2.5 Gb/s。
(2)具有很好的靈活性,一個(gè)PCI Express 物理連接可以根據實(shí)際需要配置成×1,×2,×4,×8,×16,×32 個(gè)并行的數據通
道,滿(mǎn)足不同設備之間通信帶寬的要求。
(3)在軟件層與PCI 總線(xiàn)完全兼容,原有PCI 總線(xiàn)的驅動(dòng)程序可以完全移植到PCI Express 總線(xiàn)架構的系統中。
(4)串行連接采用自同步時(shí)鐘技術(shù),時(shí)鐘內嵌于串行數據的8 bit/10 bit 編碼中,可實(shí)現數據傳輸率的自適應調整。
PCI Express 協(xié)議定義了3 層結構:物理層,數據鏈路層和事務(wù)層。每個(gè)層次按照協(xié)議中規定的內容,完成相應的數據處理功能。
2 PCI Express 接口設計方法
PCI Express 總線(xiàn)的接口的設計方法大體有2 種:使用專(zhuān)用接口芯片或者使用可以實(shí)現PCI Express 物理接口的可編程器件。
專(zhuān)用接口芯片實(shí)現了 PCI Express 總線(xiàn)的物理層、數據鏈路層和事務(wù)層的控制邏輯。例如,PEX 8311 是PLX 公司推出的第1 款本地總線(xiàn)到PCI Express×1 的橋接芯片,符合PCI Express 1.0 規范,支持自動(dòng)極性反轉、CRC 校驗、鏈路設備電源管理,具有直接主模式、直接從模式、DMA 和數據預取等功能。
使用 PEX 8311 實(shí)現PCI Express 接口,用戶(hù)僅需實(shí)現相對簡(jiǎn)單的本地總線(xiàn)接口即可,降低了開(kāi)發(fā)難度。但是這種方法受限于專(zhuān)用接口芯片的性能,用戶(hù)無(wú)法根據自身的需求提升接口的性能。
可編程器件設計方案的基本思想是由 FPGA 實(shí)現PCI Express 的上層電路,利用Philip 公司或TI 公司提供的PHY(物理層)器件實(shí)現物理層接口,通常需要購買(mǎi)Xilinx 公司或Altera 公司提供的IP 核與PHY 器件配合使用。在有些FPGA 產(chǎn)品中,集成有PCI Express 接口的硬核模塊,可以采用相應的產(chǎn)品實(shí)現PCI Express 接口的功能。例如,Xilinx 公司Virtex-5 LXT/SXT/FXT/TXT 系列FPGA 器件中,集成有PCI Express 硬核端點(diǎn)模塊,能夠自動(dòng)完成數據鏈路層和物理層的數據處理功能。采用這種方法,用戶(hù)只需要設計處理事務(wù)層數據包的邏輯電路即可。還可以根據自己的需求,設計具有特殊功能的電路結構,發(fā)揮接口的性能,但是這種方法的開(kāi)發(fā)難度較大,開(kāi)發(fā)周期相對較長(cháng)。



       
3 PCI Express 接口實(shí)現
本設計采用 Xilinx 公司Virtex-5 系列xc5vlx30t 芯片,使用該芯片內部的PCI Express Endpoint 硬核端點(diǎn)模塊,設計了處理事務(wù)層數據的邏輯電路,實(shí)現了計算機內存與用戶(hù)邏輯之間數據的正確傳輸。其中,控制狀態(tài)機的設計和DMA 控制器的設計是重點(diǎn)、難點(diǎn),下面詳細介紹具體的實(shí)現過(guò)程。
3.1 接口電路的設計
在接口電路中,PCI Express 物理層和數據鏈路層的電路采用Xilinx 公司的PCI Express Endpoint Block plus v1.5 硬核端點(diǎn)模塊實(shí)現,能夠有效完成接口物理層和數據鏈路層的數據處理功能,提供給上層一個(gè)事務(wù)層數據接口。
上層電路主要由 5 部分電路構成,分別是核配置與輔助控制模塊、數據發(fā)送控制器、數據接收控制器、數據輸入FIFO和數據輸出FIFO,如圖1 所示,最終提供給用戶(hù)FIFO 類(lèi)型的用戶(hù)邏輯接口。


圖 1 PCI Express 接口電路結構

核配置與輔助控制模塊與硬核端點(diǎn)模塊緊密聯(lián)系,完成硬核端點(diǎn)模塊中通道寬度、時(shí)鐘頻率、設備號、版本號、存儲空間類(lèi)型與大小等一系列可控制參數的配置與一些基本功能的控制。
硬核端點(diǎn)模塊提供的事務(wù)層數據接口為 64 bit 的數據發(fā)送接口和64 bit 的數據接收接口以及控制數據發(fā)送和接收的一系列控制信號接口。數據接收控制器將收到的事務(wù)層包進(jìn)行解析,根據數據包的類(lèi)型進(jìn)行相應的處理。數據發(fā)送控制器用于將所要發(fā)送的數據按照事務(wù)層包的格式進(jìn)行封裝后,發(fā)送到硬核端點(diǎn)模塊。
數據輸入 FIFO 和數據輸出FIFO 共同構成了數據通道,均為雙端口FIFO,用于連接PCI Express 接口和用戶(hù)邏輯。數據輸入FIFO 用于保存從接口收到的數據;用戶(hù)邏輯電路輸出的數據保存到數據輸出FIFO 中后發(fā)送到接口電路。



       
3.2 控制狀態(tài)機的設計
數據發(fā)送控制器和數據接收控制器負責事務(wù)層數據的封裝和解析工作,是本設計中的關(guān)鍵電路模塊。這兩個(gè)模塊均采用有限狀態(tài)機方式進(jìn)行設計,下面詳細介紹這2 個(gè)模塊狀態(tài)機的設計。
接收控制器從硬核端點(diǎn)模塊中收到事務(wù)層包(TLP),根據TLP 的格式,第56 bit~第62 bit 為表示數據包類(lèi)型的標志位。按照標志位中的信息,對TLP 的內容進(jìn)行解析,進(jìn)行相應的數據操作。所設計的狀態(tài)機的狀態(tài)轉換圖如圖2 所示,各個(gè)狀態(tài)的說(shuō)明如表1 所示。


圖2 接收控制器狀態(tài)機




系統復位后,接收控制器狀態(tài)機處于空閑狀態(tài),等待接收數據包,收到TLP 后跳轉到相應的狀態(tài)進(jìn)行存儲器或者I/O的讀寫(xiě)操作。在操作過(guò)程中,對存儲器或者I/O 的狀態(tài)進(jìn)行監控,如果目標設備沒(méi)有準備好,則進(jìn)入等待狀態(tài)直到目標設備就緒。在存儲器或者I/O 的讀寫(xiě)操作完成后,狀態(tài)機又返回空閑狀態(tài)。在各個(gè)狀態(tài)中接收控制器產(chǎn)生相應的控制信號完成數據的寫(xiě)入以及對發(fā)送控制器的操作。
與接收控制器狀態(tài)機相比,發(fā)送控制器狀態(tài)機相對簡(jiǎn)單,只有3 個(gè)狀態(tài),狀態(tài)轉換圖見(jiàn)圖3,各個(gè)狀態(tài)的說(shuō)明見(jiàn)表2。



系統復位后,發(fā)送控制器狀態(tài)機處于復位狀態(tài)。當從接收控制器收到發(fā)送數據的命令后,如果需要發(fā)送的是一個(gè)載荷數據,則將從存儲器或者I/O 中取出的載荷數據填充到TLP中的相應位置后發(fā)送到端點(diǎn)模塊;如果需要發(fā)送的只是一個(gè)響應或者標志信息,則直接封裝成一個(gè)TLP 發(fā)送到端點(diǎn)模塊。



       
3.3 DMA 控制器的設計
由于串行總線(xiàn)結構與傳統的并行總線(xiàn)結構不同,因此存儲器的讀寫(xiě)操作都是以數據包的形式傳輸。普通的讀寫(xiě)操作一次最多只能進(jìn)行64 bit 數據的讀寫(xiě),使得總線(xiàn)多數時(shí)間處于等待狀態(tài),嚴重影響了PCI Express 總線(xiàn)的數據傳輸速率。本文設計出相應的DMA 控制器,實(shí)現了DMA 方式的數據傳輸。
DMA 控制器的主要電路結構為14 個(gè)與DMA 操作相關(guān)的寄存器,通過(guò)對這些控制寄存器的讀寫(xiě),設定DMA 方式數據讀寫(xiě)操作的地址范圍和數據大小,完成DMA 數據讀寫(xiě)操作。這些寄存器的定義和功能描述如表3 所示。



在設計了上述14 個(gè)DMA 控制寄存器后,接收控制器和發(fā)送控制器的狀態(tài)機也要進(jìn)行相應的調整,以適應DMA 操作的需要。在接收控制器狀態(tài)機中加入了2 個(gè)狀態(tài),分別用于接收數據傳輸過(guò)程中的第1 個(gè)DMA 數據包和剩余的DMA數據包。在發(fā)送控制器狀態(tài)機中也加入了2 個(gè)狀態(tài),分別用于發(fā)送數據傳輸過(guò)程中的第1 個(gè)DMA 數據包和剩余的DMA數據包。為了達到盡可能高的數據傳輸速率,在接收和發(fā)送過(guò)程中都使用了64 bit 數據傳輸模式。
在設計了如上所述的 DMA 控制器后,PCI Express 總線(xiàn)接口就可以用DMA 方式進(jìn)行數據的讀寫(xiě)操作。進(jìn)行DMA 讀/寫(xiě)操作的具體過(guò)程如下:(1)寫(xiě)中斷控制寄存器,打開(kāi)中斷;(2)寫(xiě)讀/寫(xiě)地址寄存器,設置讀/寫(xiě)數據的起始地址;(3)寫(xiě)讀/寫(xiě)包長(cháng)度寄存器,設置讀/寫(xiě)數據包的大;(4)寫(xiě)讀/寫(xiě)包數量寄存器,設置讀/寫(xiě)數據包的數量;(5)寫(xiě)控制寄存器,啟動(dòng)DMA 讀/寫(xiě)操作;(6)等待中斷服務(wù)寄存器發(fā)出中斷;(7)收到中斷,讀中斷服務(wù)寄存器;(8)寫(xiě)中斷控制寄存器,關(guān)閉中斷。
4 仿真與性能測試
使用 Verilog 語(yǔ)言編寫(xiě)代碼實(shí)現本設計,使用Modelsim SE 6.2g 對該設計進(jìn)行功能仿真。從數據寫(xiě)入FIFO 的仿真波形圖中可以看到,未采用DMA 方式時(shí),每次只能夠將一個(gè)數據寫(xiě)入到FIFO 中,在2 次寫(xiě)操作之間存在較長(cháng)的等待時(shí)
間;采用DMA 方式時(shí),可以根據用戶(hù)的設置連續寫(xiě)入多個(gè)數據,消除了2 次操作之間的等待時(shí)間,大大提高了數據傳輸速率。
自行設計了采用Xilinx 公司xc5vlx30t 芯片的PCI Express×4 接口數據傳輸卡;使用Xilinx 公司的ISE 9.2 對設計代碼進(jìn)行綜合和布局布線(xiàn), 生成配置文件, 下載到xc5vlx30t 芯片中;使用DELL Precision 690 工作站,在Windows 環(huán)境下編寫(xiě)測試程序對數據傳輸卡PCI Express 接口數據傳輸的速率進(jìn)行測試。
采用多種數據量對 PCI Express 接口進(jìn)行DMA 方式讀數據測試,得到的結果如圖4 所示,硬件層數據傳輸速率穩定在840 Mb/s。


圖4 實(shí)際測試讀數據速率

采用多種數據量對 PCI Express 接口進(jìn)行DMA 方式寫(xiě)數據測試,得到的結果如圖5 所示,硬件層數據傳輸速率穩定在720 Mb/s。


圖5 實(shí)際測試寫(xiě)數據速率

從圖 4、圖5 可以看出,DMA 控制器有效減少了數據傳輸過(guò)程中的等待時(shí)間,大幅度地提高了數據傳輸速率,發(fā)揮了PCI Express 總線(xiàn)的優(yōu)越性能。
5 結束語(yǔ)
本文采用基于 Xilinx 公司硬IP 核的方法設計實(shí)現了PCI Express 總線(xiàn)接口及數據的傳輸。對于DMA 控制器的設計,能提高數據傳輸的速率,使PCI Express 總線(xiàn)的性能得到充分發(fā)揮。



本文地址:http://selenalain.com/thread-147373-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页