基于Virtex-5的PCI-Express總線(xiàn)接口設計和實(shí)現
4 實(shí)驗結果分析
首先初始化FPGA內部的寄存器文件,通過(guò)設置相應的控制位啟動(dòng)數據從Host內存通過(guò)PCI-Express接口向下傳輸到FPGA內部,傳輸完畢后,FPGA內部控制邏輯將接收的數據進(jìn)行處理,并得到向上輸出的數據,然后通過(guò)PCI-Express接口,再將數據傳輸回Host內存,Host內存的檢測程序對所收到的數據進(jìn)行校驗。在進(jìn)行FPGA內部PCI-Express接口速度測試時(shí),由于Host讀寫(xiě)內存需要一定的時(shí)間,所以在測試速度時(shí)不進(jìn)行Host內存的讀寫(xiě)。而在正確性測試時(shí),則通過(guò)Host讀寫(xiě)內存判斷數據是否正確。所有ChipScope截圖均以一包數據包大小為4KDW為例進(jìn)行捕捉,圖中有文字標識其中的信號意義。
圖6為Host將數據通過(guò)PCI-Express接口向下傳輸到FPGA內部的ChilpScope截圖。本文引用地址:http://dyxdggzs.com/article/150893.htm
從圖中可以看出,FPGA接收數據包的最大載荷為512B,而發(fā)送數據包為128B。在Host將數據通過(guò)PCI-Express接口向下傳輸到FPGA過(guò)程中,首先FPGA要向Host發(fā)送一系列mem讀請求包,Host收到請求包后,就根據請求包的內存地址和數據長(cháng)度發(fā)送CPLD包給FPGA,FPGA解析CPLD包并存儲數據到相應數據區。圖7為在Windows XP下測得的每包數據包大小為16KDW時(shí)傳輸速率為5.03Gb/s。
圖8為FPGA處理完后將數據通過(guò)PCI-Express接口向上傳輸到Host的ChipScope截圖。從圖中可以看出包和包之間的發(fā)送有一定的間隔,這是因為控制每包發(fā)送造成的間隔,所以在同樣每包數據包大小為16KDW時(shí)測得的傳輸速率要底于Host向下傳輸的速率,只有3.7Gb/s左右。
5 總結和展望
Virtex5系列FPGA芯片內嵌PCI-Express End-pointBlock硬核,為實(shí)現單片可配置PCI-Express總線(xiàn)解決方案提供了可能。基于Virtex5 FPGA的PCI-Express設計實(shí)現方式簡(jiǎn)單、配置靈活,適合于各種應用領(lǐng)域,降低了設計成本,縮短了產(chǎn)品上市時(shí)間,保證了產(chǎn)品的功能性和易用性,開(kāi)創(chuàng )了高效率PCI Express開(kāi)發(fā)的新時(shí)代。
評論