PCIe XAPP859仿真波形分析_第1頁
PCIe XAPP859仿真波形分析_第2頁
PCIe XAPP859仿真波形分析_第3頁
PCIe XAPP859仿真波形分析_第4頁
PCIe XAPP859仿真波形分析_第5頁
已閱讀5頁,還剩3頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、PCIe部分工作計劃及總結工作計劃基于PCIe + DMA的設計框架,以FPGA廠商Xilinx針對PCIe解決方案的參考設計為原型, 結合本設計高速數據傳輸的需求,暫制定PCIe硬件部分的工作計劃如下:1、設備端DMA控制器設計(FPGA實現)。因為PCIe IP硬核是PCIe核心協議的封裝,只 留給用戶應用層接口用來開發,用戶層只要把數據。設備端的DMA控制器就工作在PCIe 的應用層上,來實現數據的高效傳輸。實現方式:以參考設計提供的DMA控制器為原型,結合本項目的實際需要設計自己的 DMA控制器。實現計劃:看協議、讀代碼- 改寫代碼- 仿真、驗證2、DMA+PCIe 上板調試。DMA控

2、制器做好之后,開始上板調試,以能跑通、能傳數據為主, 暫不考慮傳輸效率的問題。3、提高PCIe傳輸效率。提高PCIe傳輸效率的關鍵在于實現流控制,電源管理等等PCIe協議的細節上,這些控制都是以數據包的形式去配置和實現。另外,DMA部分的代碼優 化也很重要。所以,在DMA控制器結合PCIe硬核實現數據傳輸的基礎上,要想實現高速數據傳輸, 這一部分的工作必不可少。實現計劃:讀PCIe協議-改寫代碼-調試*4、Scatter_Gather DMA。如果數據傳輸速率達不到要求的話,改進DMA控制器及驅動。注:整個過程都是與PCIe驅動和GUI的實現分不開的。工作進度1、根據tb.v源代碼,結合仿真波

3、形和PCIe協議細節看完了 TestBenchoTestBench相當于PC機上Driver+GUI的功能,屬于上游的激勵信號產生器的內容。發起 的業務主要包括:讀pcie配置空間,配置pcie寄存器,設備端DMA讀操作,設備端DMA 寫和設備端DMA讀寫全雙工操作。在知道PC端激勵的情況下,觀察設備端的響應的波形和數據,并結合PCIe協議的內 容,驗證了參考設計的正確性和通用性,加深了對系統框架和PCIe協議的理解。2、順著數據流動的方向,現在正在看設備端DMA控制器的接收引擎模塊(RX Engine)的 源代碼下一步打算讀DMA控制器原型的其他模塊的源代碼。參考設計概述基于Xilinx V

4、irtex5的PCIe硬核解決方案(Xilinx-XAPP859源碼公開)。配置方式是PCIe1.0*8lane,理論傳輸速率為2GB/s;適用于低速數據傳輸。系統框架fig.01仿真模型框架參考設計提供7PCIe IP硬核+DMA控制器+ DDR2控制器以及測試平臺(testbench) 的完整方案。fig.02參考設計的工作流程概述及波形分析 該模型所有激勵和行為均由測試平臺(tb.v)發起,其實tb.v在該模型中相當于PC端的Driver 和GUI的功能,pcie_dma_top相當于設備端的PCIe硬核,DMA控制器和內存控制器。此設計原型的工作流程如下:1、tb.v在對待測模塊(pc

5、ie_dma_top)復位,并去復位之后,就開始等待link_up_fe置位。 link_up_fe(和PCIe硬核的trn_lnk_up_n相連)低有效,當與核連接的上行鏈路合作伙伴 端口已就緒并能夠交換數據包時,事務上行鏈接置該位有效。表明鏈路完整,可以進行通信。 上電自檢過程代碼提示信息如圖fig.03,3QiLD_pari* .曰匚里 uocQxe. lEiEtic-r. ds u bodyu a * tlkxWJHltoC-TDtBEGINSHjnfce 二DiNui=r -ofcb.ddx2ri9T-4 . TiTjd_T;aslcBXtine3 5zb.ddz2aodlxnIns

6、- i 0 dr-a odd t 231 cirdI Etcattinecb ddr2-adiJiiiInst 10d.E-3uddz22 i cirrira skat-tineR 5m _ ddr23-raar .二-CTTJdE IMk.E.tt 0u ddxZA-=dl3Tlx-rsaix - ”du,rndd=M日.-rTTJdE BMlC.E.t : MaBEgZ I I I直1L1-1E-mu* K -3 3 3 旦 d寫fig.032、tb.v檢測到link_up_fe有效之后,延時2000ns,調用find_capabilitie任務(讀取 pcie配置空間的任務)。該任務執行

7、讀待測模塊的PCIe擴展寄存器的功能,該請求以pcie事務包的形式從tb.v發 彳主pcie_dma_top.v。tb.v的接收端口(llk_rd_data63:0)等待并接收來自待測模塊的響 應事務包。find_capabilitie任務用來確定鏈路寬度和一些必要的參數;如電源管理寄存器,流量控 制和中斷機制寄存器等。代碼運行消息提示框如下圖fig.04,3dD4 7讓.由“3-=-3irSK4d=2siEiJir:巳4 4& rk .J 3 土 EL沁mut Tb.cSd=Js-=-dm=:44S1 Tt. JdcdlrirSD52讓i.3=:3-=-dimxnarx . x*d=nd己u

8、M,n arc . rd=n.-d e 22 not i EHarrddurs nart. rd=inddE3!in51-.皿M戲11 iac-i_c-a.nk : as t-fijw A . V M * t UIM1 . 3Td_?U,k : BX t :DHi. -aria nB.5k-i &t-ZMT&iFr-aKM.y4p*hnkPZHTC:F=nkpaIHT&iFxwhAKiyeE4nkpIHTC-:P =,Yl*LiL=Aibiinkpo 町E 心RD DBA bnkE-31oaEClecdHE L.3MK: ,iv up宣5由 UB*E FUCTEU2Ol2-BG52BDG4M海

9、G3-EQC42-QGB:9Cfgi :Pitid P&oiPtT g f Lud. fLrac- tmtEjJea c曲&虹iLitp jlH-sai-rad putc 凸ulc廿 e tay* F1X9G eKtnjiaen aapBtiiixi: taa bc 3=td Z.lc HaA.d tacKBX co xEX.vk t_i Lb. capAbil.Ey ET :- ?-rwi*rd kuEea teflyFowiil FM Cw&bkll-E-V 汕W,34ixe rrJftx L i&y faucd ,(:二x匚Stsd Ci Seid PftoireT be皿南.1如罕Z

10、71 S d IlH-sai-ra J2uMd =.鹽契 FiSHlCL UlJIBbllJLGy 勺- eu ipafc.LlE.y fauEdd .l5=d Cig* ?d Fhcvt a? ztz3.vil3.-cy t4 i ddi 2_flodiJ!nii_iTiiM- s edx-ajriiJEa_5. mi_i;a5kp &t tiiim- -g IKTOi W戲ms-TiTh. dd=J j-=-dxnK .nan . Td=nd.-dc2 1. -and cuk : bt t:eeb 3. 口匚 pw IHTC: 3a CcSHxhfig.04讀pcie寄存器仿真波形如下圖f

11、ig.05,irk_up_fetrimiiKcmoaticniicnci(MflMCoaomMiziDOOTOO,MlaCO3KKlMj2lXl(5 MCCOCGaecMZ-tfacoiD.TOJDns0DOM000X1000 DOCl 站DO加叩iXMDmDO,My_anCLisar 4 BS.lnsfig.05fig.07其中第一個讀請求放大如下圖fig.06,fig.06由fig.06知發送的請求包數據位0 x0400_0001_5500_030f + 0 x2000_0034 (共3個雙字) 查找pcie協議手冊發現,該包為配置0型讀請求,目的是讀取pcie基本配置空間0 x34上的

12、數據。由協議知0 x34上存放著Capability Pointer的值,該值為Capabilities結構鏈表的頭指 針。其中面向第一個讀請求的響應包放大后如下圖fig.07,由 fig.07 圖知,接收到的完成包數據為 0 x4a00_0001_0000_0004 + 0 x5500_0300_4000_0000根據pcie協議事務層包的內容知,該完成包為配置0型完成包,它 攜帶的1DW的有效數據,且該數據為0 x4000_0000;根據請求包和完成包的數據可知,該pcie核的Capabilities結構鏈表的首地址為0 x40。 對比提示信息發現,該次讀/寫流程是完全正確,且符合pcie

13、協議。接下來的7個配置空間讀請求,tb.v都是順著這個Capabilities結構鏈表順序的讀下去, 直到把該鏈表讀完,并把Capabilities (擴展寄存器組)的信息保存起來。用于pcie傳輸過 程中的控制。3、當擴展寄存器內容全部讀出來之后,tb.v首先發起的是設備端DMA讀操作(使設備從 PC主存上讀取數據,并把讀到的數據存到DDR2中)。發起該業務首先需要PC對設備端 DMA控制器的相關寄存器初始化,這些寄存器包括dma要讀取的主存地址,dma讀數據的 大小,dma讀開始寄存器等。最后通過把DMA讀操作開始寄存器寫1,來最終發起該次DMA讀請求。代碼仿真提示信息如下圖fig.08,

14、3:fiQB4 駐時E 3:6aind regisDerCLdRuE/ceqhGQG0G0O-4 xcn3-= -f IZTLfreon- Tear-lno W ReadsDHwritetoaddzea-s出EOadlz*3J5DWux-lcatoaicLdzo-aAbuffer L ce ro coi匚B - ddiiJcdin-Liris匚-三曰三 fidrtddr2_l - crad._riia1t j占匚 tlnu - - : *ro aildzaaja-c-t-i ddr I_5odlnini_13i31. 5drBiniddr2_2 . cnjcL-aakri at t imn-E

15、 =P-=IBTO; PreclLBTge bank IffFC: PrecliBxge baiLk Cfig.08PC發出的MWr包,即PC初始化設備端的DMA寄存器組的仿真波形如下圖fig.09,fig.09放大第一個MWr包,波形如下圖f ig.10,EH* tm_rdei.y.tjrn_lilMy_Sfn * |戒#恒仕 令 lkjtK dalafig.10由fig.10知,PC 向設備端發的請求包數據:0 x4000_0001_5500_000f + 0 xff4f_fc10_0000_0000(共 3DW),根據 pcie 協議分析得,該包為 MWr TLP 1DW 的有 效數據,

16、要寫入地址為0 xff4ffc10,寫入數據為0 x000000000結合DMA控制器源代碼和參考設計手冊知,pcie域的基地址0 xff4ffc00,即基址寄存 器BAR0的值為0 xff4ffc00,其中0 xff4ffc10存放的是DMA讀操作時主存的地址。所以該包的目的在于告知DMA控制器,從PC主存的0 x00000000地址上開始讀數據 (當然這都是tb.v在模擬PC機的動作,不是真的從主存讀數據,數據都是tb.v給定的)。pcie_dma_top.v接收tb.v的MWr請求,波形如下圖fig.11fig.11pcie_dma_top.v接收來自tb.v的MWr請求,根據包中的地址

17、,把相應數據寫入到DMA控制寄存器組中。DMA寄存器組內的值改變如下圖fig.12fig.11經驗證,寫入dma寄存器組的值與請求包所帶的數據相同,表明DMA寄存器組初始 化成功。3、在tb.v置位DMA讀開始寄存器后,該包被pcie_dma_top.v接收到后,pcie_dma_top立 即響應一個MRd(讀內存)請求到tb.v ; tb.v收到設備端的讀內存請求之后,馬上開始發 送完成包(完成包中即包含讀取的主存中的數據,該模型中一個完成包有64B的有效數據),pcie_dma_top,v從接收到的完成包中提取出數據,存到DDR2中。發送完成包過程中的 代碼提示信息如下圖fig.12,tb

18、rddr2_sc. adzomddrronri_csak: at: time j:.? IFO:bankrowit cb.dadxirnddrs ac time? f 2 . :es lNYG sJkcclvaLe soaiikraw 澆 WSe-nding i ccnrEleter with =Late. p-acbce-t# TOC o 1-5 h z 361LBttIfl36129H3612C#P3612.1#19fig.12tb.v向pcie_dma_top發送完成包的波形如下圖fig.13所示,Fig.13因為pcie配置為了一次完成包支持的最大數據量為68B,而該次DMA讀請求要求

19、128B 數據,所以該次設備端的DMA讀請求的完成包要分兩次傳輸,第二次傳輸如圖fig14 48921ns 處。把第一個包放大,波形如下圖fig.14所示,Fig.14由 fig.14,完成包攜帶的數據為:0 x0100_0000_0200_0000 + 0 x0300_0000_0400_0000, 即,要把這些數據寫入到DDR2中。卜面打開DDR2模型的memory如下圖fig.15所示,g Memory Data - /tb/ddr2_Eodimm_inEt/sdramddr2_l/ineniory -Memory Csta -/tb/ddr2 sodirTTn instJsdramdc

20、lr2i,menory zCOG3OCOO00000001C0000002COOOOC03叫徹皿00000005COOOOOOfiCOOOOCO?C00fi000e0a0a00080c06000409020000C01e0Glc30ia00ie0G16301403120010002t002c002a002BOC26D02409220020C03f003G003a003SOC3fi003403320030 如4新ScaEHai誨湘.加4皺0仙踴 C050C5c-305a005S0C55D05403520050G06e0C6c306a006S0C66D0(403620060007007c007a0

21、0780076D07403720070r.n n - .n a n - a n n . nn n a in nn r n n n .1 nn n % 月 nn tcoooocooGOQDOOOlOODOOC0260000(303CQOOOC04C00Q0C05COOOOGOfiCOO3OCO7ooooocoaOOOOOOOCOODOOOOOOOOOOOOOOGOODOC00000006000000000000003000000000COODOOOCOOOOOOOOOOOCOODOOOOOOOOt!OOOOOOCOOOOOOOOOOOCOOOOOCOOOOOCOOQOOOCOOOOOOOOOOO

22、nooooooc.OODOCOOOOOOOCOODOOOOOOOOOOODOOOOOOOOaCOOOOOOCOOOOOOOOOOOQOODOOOGOOOOO0003000c00000000000c003000c00000COO0OOOCOOOOOOOOOOOQOOOOOOCOO3OC曹 Memory 屏ta - /tbiydi-Scdinimjnst/sdramddrZ-VmenwrYMsmor/ 如切-/W/ddrZ E?dinin iri5ti,sdraTiddr2 4/,nen(?r/00000000 00000001 0000000: 000000030000000400000005

23、OOOOOOOt 00000007 n 00 00 00 e00000009DODDODdDODijD0033007000520030001D0UD0LdD0LbD013J017J015J013Q011D02fOO:dD02b3D293027D02530230021003f003d003b00393037D03530330031D04f004d004bi)04947454304105fD65d005b00533057n05530530d51006fD06dD06bD063067306500630061D07fDQ7dD07bD0793Q773075307300710OBf0OBd0OBbDO293O973O353OS3OO31D03fD09dD09b30999097309530930091DOOOOCOOOOOOGCOl0

溫馨提示

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

評論

0/150

提交評論