18.luck新利
的意见

加速模拟DMA作为PCIe控制器的应用

作为PCIe链接的加速训练和初始化过程,加上创建自定义testbenches能够动态地适应不同的IP的拓扑结构和配置。

受欢迎程度

对于内存密集型和高性能计算,直接内存访问(DMA)是必不可少的。典型的DMA操作的PCI Express(作为PCIe)包括系统内存的数据传输到终点设备使用点对点作为PCIe总线减少延迟和增加内存访问吞吐量和CPU之间的设备。

DMA引擎的验证是作为PCIe的集中在数据传输方面,主要存在的事务层。这些复杂的架构需要高度可伸缩和可配置testbench核查。

本文展示了验证工程师可以使用,验证IP (QVIP)导师,西门子的业务,提高生产力在作为PCIe设计与DMA引擎的功能验证。作为PCIe链接QVIP加快培训和初始化过程以及作为PCIe设备枚举。此外,QVIP的灵活性是关键从头开始创建自定义testbenches能够动态地适应不同的IP的拓扑结构和配置,混合作为PCIe接口与多个AMBA-AXI接口。

作为PCIe联系培训

作为PCIe主导技术硬件应用程序要求的高速网络之间的连接,存储、FPGA和GPGPU董事会服务器和桌面系统。是一个健壮的技术已经发展了几十年跟上进步的吞吐量和I / O连接计算速度的要求。

作为PCIe是建立在分层体系结构组成的载荷转移的事务处理层,数据链路层链接管理和物理层可靠的初始化和培训作为PCIe两个设备之间的联系。在作为PCIe验证方面,每一层都有自己的挑战和复杂性。

功能测试的基本步骤作为PCIe作为PCIe链接是执行培训和使用前初始化两个作为PCIe设备之间的数据传输可以开始。这一步是每个测试的重要组成部分,利用作为PCIe数据传输。优化作为PCIe连接将导致减少仿真运行时达到L0状态(能够全面运行链路状态数据传输)。

主要有四个州通过链接的训练状态状态机(LTSSM)遍历作为PCIe设备建立可靠作为PCIe链接:检测,轮询,配置,复苏(图1)。作为PCIe链接遍历这些四个主要国家(和各种内定义的子状态)从后检测和高亮显示的箭头所示的路径到达L0状态。

当验证工程师开发一个专门为验证DMA testbench环境特性,它是至关重要的,他们配置的LTSSM参数DUT的配置设置验证中使用的IP testbench同步,这样两个设备可以成功过渡LTSSM州作为PCIe链接步骤,实现相互减少模拟时间。

微调这些配置参数为设备可以变得相当繁琐和容易出错的任务,特别是如果这些参数不知道testbench开发人员。在这种情况下,有一个DUT和验证提供了一个高度可配置的IP设计组件成为绝对必要达到预期的优化。

除了这个微调,作为PCIe GEN5引入了一个可选的链接均衡旁路模式为更快的联系32 GT / s。训练作为PCIe链接32 GT / s,传统的变速过程由最初培训链接L0 2.5 GT / s,然后启动速度变化之后,链接均衡中间8 GT / s的速度,16吨/ s,最后32吨/ s。自均衡在每个数据速率大于或等于8 GT / s是一个重要的过程高连接可靠性和低比特误码率,表现时间的速度变化和均衡在每个速度消耗大约100毫秒的仿真运行时。均衡旁路模式,作为PCIe L0链接速度2.5 GT / s直接转换链接到32 GT / s,执行均衡一旦以最高的速度,从而消除步进的过程通过8 GT的中间数据率/ s和16 GT /执行均衡。

作为PCIe QVIP提供了一组记录标准的api来访问LTSSM相关配置变量包括训练序列操作系统计数器,超时,能力配置LTSSM状态和特定子状态超时配置。能够配置一个不同的组在QVIP LTSSM参数,必须保持尽可能简单的使用模型。为了便于使用,默认设置这些配置选择,QVIP达到一个优化LTSSM过渡作为PCIe链接起来。拥有一个高度可配置的QVIP和优化默认设置的可用性大大提高验证testbench IP。

QVIP枚举流

在功能验证环境中,QVIP被配置为根端口作为PCIe DUT的连接。枚举过程是一个漫长的序列配置QVIP执行读取和写入。QVIP内置的特性和功能,这个过程可以显著减少,减少的数量配置读写联系后,导致更短的模拟运行时设置。

下面的步骤描述QVIP终点设备发现的枚举流。

  1. 阅读所有的基地址寄存器(BAR),开始抵消10 h,以确定内存空间区域和这个物理内存大小要求的功能。
  2. 阅读能力指针偏移34 h。作为PCIe使用链表结构来访问标准的设备功能和扩展功能寄存器支持物理功能。
  3. 在阅读完整的功能列表出现在配置空间注册通过遍历链表的节点,枚举序列类似的方法支持SR-IOV物理功能。SR-IOV能力作为PCIe函数,定义了一组轻叫虚函数,共享一个或多个物理资源的物理功能。然后枚举序列类似的过程发现了虚函数支持的物理功能。
  4. 最后,枚举序列现在开始配置设备通过发行一系列配置写入设置设备,根据用户提供的设置在它发现QVIP代理配置和功能。这一系列的配置中有针对性的具体设置如下:
  • 酒吧地址初始化所有的物理功能和虚函数基于它的内存需求。
  • 初始化不同设备功能的电源管理,max-payload大小、最大读请求大小和阅读完成边界。
  • 启用总线控制功能作为PCIe总线上的设备的启动事务。
  • 初始化设备的MSI / MSI-X地址。

在执行枚举序列,QVIP存储和维护数据结构/作为PCIe DUT的物理功能,以便利用这些信息为特定于用户的测试场景开发测试阶段——枚举完成后。该特性使QVIP轻松执行广泛的验证场景设计能力的基础上,通过提供测试作家api查询DUT功能并提供地址偏移量更新DUT的空间配置寄存器。

的数量配置事务执行枚举中的序列有一个倍增系数依赖于物理函数和虚函数的数量/设备。这个设置阶段需要执行每个测试作为PCIe链接验证使用DMA功能。因此,模拟运行时增加之前任何实际执行特定于用户的测试场景。减少了仿真运行时通过降低配置交易的数量,显著提高设备所需的准备时间。

QVIP提供了两种验证枚举的功能序列,以减少运行时显著:快速枚举后门枚举

在快速枚举模式下,配置QVIP通过后门机制而DUT配置通过配置写道。这里的优势在于,构型空间读取的配置寄存器不发生,而不是QVIP并配置写入配置和设置设备。在这种模式下,运行时减少一半甚至更多(因为配置写的数量少于枚举期间执行的配置读取序列)。

在这种模式下,配置读取并不是由QVIP。不过,设备功能信息和内存资源需求进行配置写是必要的。这个关键信息是提供给QVIP使用内置的工具来准确地获取所需的设置在testbench可用的格式。以下是所需的步骤和饲料回QVIP提取这些信息。

  1. 运行一个测试用例,使用默认全枚举模式设置:

  1. 启用以下命令来捕捉设备的配置空间寄存器设置:

  1. 模拟运行测试,然后打开日志找到设置QVIP捕捉到,它将使用在配置阶段的测试:

横幅的FAST_BUS_ENUM配置之间的输出仿真日志直接复制到testbench配置QVIP走后门。一旦应用以上设置,测试用例配置完成,准备在快速枚举模式下运行。

为QVIP提供以上设置确保没有进一步配置读访问设备能力是必要的。QVIP现在将只执行必要的配置写需要设置装置正常操作模式。

在后门枚举模式下,配置读写不执行。配置空间寄存器QVIP通过后门和设备配置机制。在这种模式下不执行枚举序列。

这个特性依赖于DUT能够更新配置空间寄存器设置链接之前通过后门机制培训。作为PCIe设计IP建立这种能力可以利用这个特性在QVIP和进一步减少最初的模拟运行时,与快速的枚举。

提取配置空间设置的步骤类似于快速枚举模式与小更新配置选项作为PCIe QVIP分配给代理。

  1. 运行一个测试用例使用默认全枚举模式设置:

  1. 启用以下命令来捕捉设备的配置空间寄存器设置:

  1. 运行测试,然后打开模拟日志找到QVIP捕获的设置,将被用于QVIP配置阶段的测试:

这种模式下,输出横幅后门之间的配置在模拟日志直接复制到testbench配置QVIP走后门。一旦应用以上设置,测试用例配置完成,准备在后门枚举模式下运行。

提供QVIP以上设置确保不需要配置读访问设备的功能,和QVIP假定用户运行测试与后门枚举选项,配置也没有必要写。

当运行QVIP在这种模式下,建立后用户可以开始启动测试场景和保证QVIP设备已经完成了枚举的过程。

结论

QVIP加速最初作为PCIe设置和减少了初始模拟运行时需要设置测试针对作为PCIe与DMA控制器功能的验证。

作为PCIe链接初始培训和枚举过程是一个重要的组成部分,每一个使用作为PCIe DMA引擎的测试验证。平均而言,利用最QVIP辅助testbench优化设置,仿真运行时作为PCIe链接建立降低百分之二十。在这样一个典型的情况下,联系培训时间从61微秒减少到13微秒。减少模拟验证工程师开发测试的运行时提高了生产率,降低了总体周转时间进行调试和分析。

学习更多,了解QVIP作为PCIe验证用例,请下载白皮书作为PCIE模拟加速用导师QVIP PLDA作为PCIE DMA应用程序的控制器



留下一个回复


(注意:这个名字会显示公开)

Baidu