0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

NVMe高速传输之摆脱XDMA设计24: UVM 验证包设计

高速传输与存储 来源:高速传输与存储 作者:高速传输与存储 2025-09-14 11:29 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

UVM 验证包设计结构如图 1 所示。 UVM 验证包的主要功能是对 DUT 提供激励, 仿真验证对应的功能, 并对测试结果进行自动对比分析与统计。 验证包包含一个NoPHAE_env 验证环境, 验证环境下包含 axi4_lite_agent、 axi4_agent、 tlp_agent、NoPHAE_ref_model、 NoPHAE_scorebarod 组件。

wKgZPGixSDOAQXQSAACbxnKYYNQ381.png

图1 UVM 验证包设计结构图

Axi4_lite_agent 负责对接 AXI4-Lite 接口。 在 DUT 使用的三个接口中, AXI4-Lite接口用于连接系统控制模块, 实现系统控制功能, 所以激励的添加主要通过 AXI4-Lite接口。 在 axi4_lite_agent 中包含 axi4_lite_drv、 axi4_lite_mon、 axi4_lite_sqr 三个组件,分别提供 axi4_lite 总线的主机驱动器( driver)、 监测器( monitor) 和序列发生器(sequencer)。 驱动器从序列发生器获取事务, 并将其转换为 AXI4-Lite 接口信号;监测器从接口上监测信号, 将其组成事务发送到参考模型和计分板; 序列发生器根据测试用例产生事务。

Axi4_agent 负责监测 AXI4 总线接口。 由于 AXI4 总线接口用于进行数据传输,在验证平台中该总线接口实际与 AXI BRAM IP 对接, 不需要添加特殊的激励。 因此, axi4_agent 中只包含了一个 monitor, 将总线信号转换为 AXI4 事务发送到计分板。

Tlp_agent 负责监测分离的 PCIE 集成块接口, 分别是一个 cfg_mgmt 接口, 四个axis 接口, 这些接口信号均可转换为 PCIe TLP 事务。 这些接口与 NVMe 子系统模型对接, 因此 tlp_agent 中只包含一个 monitor, 将监测到的 PCIe TLP 事务发送到计分板。

NoPHAE_ref_model 是模拟 DUT 设计功能的参考模型, 该模型从 axi4_lite_agent的监测器获取寄存器配置信息, 根据这些信息将预期的 AXI4 事务和 PCIe TLP 事务发送到 NoPHAE_scorebarod。

NoPHAE_scorebarod 计分板负责收集各个接口监测器监测到的传输事务, 并将这些事务与参考模型给出的预期事务进行对比, 并统计对比结果, 根据结果判断测试用例执行是否成功。

B站已给出相关性能的视频,如想进一步了解,请搜索B站用户:专注与守望
链接:https://space.bilibili.com/585132944/dynamic?spm_id_from=333.1365.list.card_title.click

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • PCIe
    +关注

    关注

    16

    文章

    1423

    浏览量

    87569
  • UVM
    UVM
    +关注

    关注

    0

    文章

    183

    浏览量

    19947
  • 高速存储
    +关注

    关注

    0

    文章

    15

    浏览量

    6061
  • nvme
    +关注

    关注

    0

    文章

    287

    浏览量

    23722
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    NVMe高速传输摆脱XDMA设计九:队列管理模块设计(上)

    本帖最后由 xianuser2012 于 2025-7-30 15:57 编辑 注:这是采用PCIe设计NVMe,并非调用XDMA方式,后者在PCIe4.0时不大方便,故团队直接采用PCIe
    发表于 07-27 17:41

    NVMe高速传输摆脱XDMA设计18:UVM验证平台

    验证的硬核 IP,因此在验证过程中可以只使用其接口进行模拟,这将极大减小验证平台复杂度和构建难度,同时对验证的完备性影响较小.验证平台由
    发表于 07-31 16:39

    NVMe高速传输摆脱XDMA设计14: PCIe应答模块设计

    应答模块的具体任务是接收来自PCIe链路上的设备的TLP请求,并响应请求。由于基于PCIe协议的NVMe数据传输只使用PCIe协议的存储器读请求TLP和存储器写请求TLP,应答模块也分别针对两种
    发表于 08-04 16:44

    NVMe高速传输摆脱XDMA设计20: PCIe应答模块设计

    应答模块的具体任务是接收来自PCIe链路上的设备的TLP请求,并响应请求。由于基于PCIe协议的NVMe数据传输只使用PCIe协议的存储器读请求TLP和存储器写请求TLP,应答模块也分别针对两种
    发表于 08-12 16:04

    NVMe高速传输摆脱XDMA设计23:UVM验证平台

    验证的硬核 IP,因此在验证过程中可以只使用其接口进行模拟,这将极大减小验证平台复杂度和构建难度,同时对验证的完备性影响较小.验证平台由
    发表于 08-26 09:49

    NVMe高速传输摆脱XDMA设计24UVM 验证设计

    UVM 验证设计结构如图 1 所示。 UVM 验证的主要功能是对 DUT 提供激励, 仿真
    发表于 08-29 14:33

    NVMe高速传输摆脱XDMA设计30: NVMe 设备模型设计

    NVMe 设备模型一方面模拟 PCIe EP 设备功能, 另一方面模拟 NVMe 行为功能,实现 NVMe 协议事务的处理。 PCIe EP 设备具有 TYPE0 类型的配置空间, 要模拟NV
    发表于 09-29 09:31

    NVMe高速传输摆脱XDMA设计42:DMA 读写功能验证与分析

    事务, 数据通过 AXI 总线写入 BRAM 仿真模型。 DMA 结束后写数据计数寄存器为 256, 表示传输数据量为 256*16B 即 4KB。 图1 DMA 读测试仿真波形 NVMe 设备模型
    发表于 10-27 09:10

    NVMe高速传输摆脱XDMA设计43:如何上板验证

    本文主要交流设计思路,在本博客已给出相关博文几十篇,希望对初学者有用。注意这里只是抛砖引玉,切莫认为参考这就可以完成商用IP设计。若有NVME或RDMA 产品及项目需求,请看B站视频后联系。 在完成
    发表于 10-30 18:10

    NVMe IP over PCIe 4.0:摆脱XDMA,实现超高速

    基于NVMe加速引擎,它直接放弃XDMA,改为深度结合PCIe,通过高速传输机制开发。同时利用UVM验证
    的头像 发表于 04-16 14:57 814次阅读
    <b class='flag-5'>NVMe</b> IP over PCIe 4.0:<b class='flag-5'>摆脱</b><b class='flag-5'>XDMA</b>,实现超<b class='flag-5'>高速</b>!

    NVMe IP高速传输却不依赖XDMA设计八:系统初始化

    采用XDMA是许多人常用xilinx库实现NVMe或其他传输的方法。但是,XDMA介绍较少,在高速存储设计时,尤其是PCIe4.0模式下,较
    的头像 发表于 07-26 15:14 655次阅读
    <b class='flag-5'>NVMe</b> IP<b class='flag-5'>高速</b><b class='flag-5'>传输</b>却不依赖<b class='flag-5'>XDMA</b>设计<b class='flag-5'>之</b>八:系统初始化

    NVMe高速传输摆脱XDMA设计25:UVM验证平台

    抽象为 PCIeTLP 事务,因此为了方便的在事务层构建复杂的测试用例,项目基于 UVM 搭建验证平台进行功能验证
    的头像 发表于 08-04 16:52 638次阅读
    <b class='flag-5'>NVMe</b><b class='flag-5'>高速</b><b class='flag-5'>传输</b><b class='flag-5'>之</b><b class='flag-5'>摆脱</b><b class='flag-5'>XDMA</b>设计25:<b class='flag-5'>UVM</b><b class='flag-5'>验证</b>平台

    NVMe IP高速传输却不依赖XDMA设计九:队列管理模块(上)

    这是采用PCIe设计NVMe,并非调用XDMA方式,后者在PCIe4.0时不大方便,故团队直接采用PCIe设计,结合UVM验证加快设计速度。 队列管理模块采用队列的存储与控制分
    的头像 发表于 08-04 09:53 603次阅读
    <b class='flag-5'>NVMe</b> IP<b class='flag-5'>高速</b><b class='flag-5'>传输</b>却不依赖<b class='flag-5'>XDMA</b>设计<b class='flag-5'>之</b>九:队列管理模块(上)

    NVMe高速传输摆脱XDMA设计17:PCIe加速模块设计

    PCIe加速模块负责实现PCIe传输层任务的处理,同时与NVMe层进行任务交互。PCIe加速模块按照请求发起方分为请求模块和应答模块。
    的头像 发表于 08-09 14:38 4589次阅读
    <b class='flag-5'>NVMe</b><b class='flag-5'>高速</b><b class='flag-5'>传输</b><b class='flag-5'>之</b><b class='flag-5'>摆脱</b><b class='flag-5'>XDMA</b>设计17:PCIe加速模块设计

    NVMe高速传输摆脱XDMA设计23:UVM验证平台

    抽象为 PCIeTLP 事务,因此为了方便的在事务层构建复杂的测试用例,项目基于 UVM 搭建验证平台进行功能验证
    的头像 发表于 08-25 18:53 2709次阅读
    <b class='flag-5'>NVMe</b><b class='flag-5'>高速</b><b class='flag-5'>传输</b><b class='flag-5'>之</b><b class='flag-5'>摆脱</b><b class='flag-5'>XDMA</b>设计23:<b class='flag-5'>UVM</b><b class='flag-5'>验证</b>平台