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