PCIe 调试

ISE 生成PCIe核之后, 在ipcore_dir目录下会产生以下文件目录

具体目录树如下:

 1 myPCIe
 2 │  s6_pcie_readme.txt
 3 │
 4 ├─doc
 5 │      s6_pcie_ds718.pdf
 6 │      s6_pcie_ug654.pdf
 7 │
 8 ├─example_design
 9 │      pcie_app_s6.v
10 │      PIO.v
11 │      PIO_32_RX_ENGINE.v
12 │      PIO_32_TX_ENGINE.v
13 │      PIO_EP.v
14 │      PIO_EP_MEM.v
15 │      PIO_EP_MEM_ACCESS.v
16 │      PIO_TO_CTRL.v
17 │      xilinx_pcie_1_1_ep_s6.v
18 │      xilinx_pcie_1_lane_ep_xc6slx45t-fgg484-2.u
19 │
20 ├─implement
21 │      implement.bat
22 │      implement.sh
23 │      xst.prj
24 │      xst.scr
25 │
26 ├─simulation
27 │  ├─dsport
28 │  │      gtx_drp_chanalign_fix_3752_v6.v
29 │  │      gtx_rx_valid_filter_v6.v
30 │  │      gtx_tx_sync_rate_v6.v
31 │  │      gtx_wrapper_v6.v
32 │  │      pcie_2_0_rport_v6.v
33 │  │      pcie_2_0_v6_rp.v
34 │  │      pcie_brams_v6.v
35 │  │      pcie_bram_top_v6.v
36 │  │      pcie_bram_v6.v
37 │  │      pcie_clocking_v6.v
38 │  │      pcie_gtx_v6.v
39 │  │      pcie_pipe_lane_v6.v
40 │  │      pcie_pipe_misc_v6.v
41 │  │      pcie_pipe_v6.v
42 │  │      pcie_reset_delay_v6.v
43 │  │      pcie_upconfig_fix_3451_v6.v
44 │  │      pci_exp_usrapp_cfg.v
45 │  │      pci_exp_usrapp_com.v
46 │  │      pci_exp_usrapp_pl.v
47 │  │      pci_exp_usrapp_rx.v
48 │  │      pci_exp_usrapp_tx.v
49 │  │      xilinx_pcie_2_0_rport_v6.v
50 │  │
51 │  ├─functional
52 │  │      board.f
53 │  │      board.v
54 │  │      isim_cmd.tcl
55 │  │      simulate_isim.bat
56 │  │      simulate_isim.sh
57 │  │      simulate_mti.do
58 │  │      simulate_ncsim.sh
59 │  │      simulate_vcs.sh
60 │  │      sys_clk_gen.v
61 │  │      sys_clk_gen_ds.v
62 │  │      wave.do
63 │  │      wave.sv
64 │  │      wave.tcl
65 │  │      wave.wcfg
66 │  │
67 │  └─tests
68 │          tests.v
69 │
70 └─source
71         gtpa1_dual_wrapper.v
72         gtpa1_dual_wrapper_tile.v
73         myPcie.v
74         pcie_brams_s6.v
75         pcie_bram_s6.v
76         pcie_bram_top_s6.v

其中除了doc中包含了iP核相关文档,主要还包括以下两方面的内容

The example simulation design consists of two discrete parts:

  • The Root Port Model, a test bench that generates, consumes, and checks PCI Expressbus traffic.
  • The Programmed Input/Output (PIO) example design, a completer application for PCI Express. The PIO example design responds to Read and Write requests to its memory space and can be synthesized for testing in hardware.

用户可以通过root port model来仿真实现PCIe事务层的操作,并通过相应的数据收发模块实现对PCIe功能的仿真。Root Port Model包含以下功能

  • Test Programming Interface (TPI), which allows the user to stimulate the Endpoint device for the PCI Express
  • Example tests that illustrate how to use the test program TPI
  • Verilog or VHDL source code for all Root Port Model components, which allow the user to customize the test bench

Root Port Model仿真模块和PCIe PIO设计的耦合关系如图所示

PCIe 调试

时间: 2024-08-29 12:46:16

PCIe 调试的相关文章

PCIe调试心得_DMA part2

作者:East  FPGA那点事儿 上一章讲述了PCIe总线DMA的原理和XAPP1052存在的问题. 本章以服务器常用的4通道1000M以太网卡为例讲述如何提高DMA的效率. 1.内存重分配Windows操作系统会划分一部分硬盘空间作为虚拟内存,将长时间不用得应用程序或内存交换到硬盘中,而释放出一部分内存空间供其他应用程序使用,提高计算机的性能. 或者操作系统会定进行内存碎片整理,将应用程序中零散的内存收集起来重新分配,减少内存碎片. 但是如果被交换或整理的是DMA使用的内存就麻烦了.操作系统

PCIe调试心得_DMA part3

作者: East  FPGA那点事儿 上一章讲述了PCIe总线如何提高DMA的效率. 本章以服务器常用的4通道1000M以太网卡为例讲述如何实现多个虚拟DMA通道. 1.多通道DMA发 4通道以太网卡的数据相互独立,需要4个虚拟DMA发通道实现4路数据独立传输.4个虚拟DMA发通道如下: 多通道DMA发比较简单,因为TLP包中已经包含了具体的物理地址,4个虚拟通道可以向4个不同的物理内存位置写数据.所以DMA发逻辑与单通道DMA发逻辑没有什么不同,关键点在增加的总线仲裁逻辑. 4个网口都有数据要

PCIE hotplug 调试小结

PCIE 卡的热插拔调试小结 PCI Hot plug的规范虽然早在二十世纪末就出现,但并没有规定统一的实现方式.当需要把PCIE卡换到其他槽位,或者替换有故障的卡时,PCIE卡热插拔的特性能够避免服务器宕机,改善用户使用体验.但时至今日,并非所有的服务器都支持PCIE卡热插拔.本人就有幸碰到这种服务器,最近就在为它增加hotplug的支持. 我的任务是解决上电后PCIE不能LinkRe-train 成功的问题,调试过程中发现一个让人百思不得其解的问题:我的shell脚本运行得跟期望的一样,能够

NTB调试常见问题指南

作为实现不同PCI域乃至跨节点数据传输的重要器件,NTB在服务器和存储领域实现双控.内存互访等方面发挥着重要的作用.由于它本身既作为virtual port出现,又可以被互联的结点通过pci scan看到,作为一个link port出现,加之其上实现的地址转换和转发功能,在实际工程项目中,难免会碰到各种问题.本文结合笔者最近的工作,分享了NTB调试过程中常见的问题和解决思路和办法. 从问题的现象来看,具体常见问题包括: 找不到NTB设备: NTB mailbox无法传送数据: ReqID 无法探

PCI/PCIe接口卡Windows驱动程序(4)- 驱动程序代码(源文件)

本篇文章将对PCIe驱动程序的源文件代码作详细解释与说明.整个WDF驱动程序工程共包含4个头文件(已经在上篇文章中讲解)和3个.c文件(Driver.c  Device.c   Queue.c) Driver.c 在看复杂的代码前,先给出程序流程图 1 #include "driver.h" 2 #include "driver.tmh" 3 4 #ifdef ALLOC_PRAGMA 5 #pragma alloc_text (INIT, DriverEntry)

PCI/PCIe接口卡Windows驱动程序(3)- 驱动程序代码(头文件)

在WDF的PCIe驱动程序中,共有四个.h文件(Public.h  Driver.h  Device.h  Trace.h).本文将分别对四个文件源代码进行详细的解释. Public.h 1 #ifndef _USER_H 2 #define _USER_H 3 // 4 // Define an Interface Guid so that app can find the device and talk to it. 5 // 6 #include <initguid.h> 7 // {4

PCI/PCIe接口卡Windows驱动程序(1)-WDF概述及开发环境搭建

本科毕业设计是这方面的工作,所以想开几篇博客来介绍使用WDF开发PCI/PCIe接口卡的驱动程序方法. 这个系列的博客将首先用一个篇幅为不懂Windows 下PCI/PCIe驱动开发的介绍WDF和开发环境搭建,接下来几篇将直接讲述程序编写, 看完这几篇后,希望能够帮助读者了解如何通过500行左右的代码实现一个标准的PCIe接口卡驱动程序. 毕设题目的PCIe板卡是BAR0下映射两个5K的内存,偏移地址为0x20000和0x22000,源代码在: https://github.com/luluji

基于WDF的PCI/PCIe接口卡Windows驱动程序(5)-如何为硬件移植驱动程序

原文地址:http://www.cnblogs.com/jacklu/p/6139347.html 正如前几篇博客所说,使用WDF开发PCIe驱动程序是我本科毕业设计的主要工作.在读研的两年,我也分别为所在课题组移植了自己编写的驱动程序,在Windows 32位和64位平台下的PXI.PXIe.PCI.PCIe板卡分别得到了验证. 这篇文章根据自己最新编写的驱动代码(源代码请找博主索取),主要讲述如何为自己的硬件板卡移植驱动程序,并简单讲述如何使用Altera系列FPGA配置PCI IP核,然后

PCI/PCIe接口卡Windows驱动程序(2)-开发者需要了解的WDF中的一些重要的概念

本科毕业设计是这方面的工作,所以想开几篇博客来介绍使用WDF开发PCI/PCIe接口卡的驱动程序方法. 在上一篇简要介绍了WDF和开发环境搭建后,本篇将讲述几个WDF中的概念,对开发者了解WDF非常有帮助,属于“内功部分”: 本篇文章结构将没那么清晰,当句句都是作者通过看书.看论文.看MSDN提炼出来的,希望对读者能够有所帮助. 1.WinDBG是唯一的内核驱动调试利器,但是开发PCIe的WDF驱动可以采用“黑盒”方式,所以windbg不是必须的: 2.WDF比WDM好,别再用WDM了: 3.驱