UVM 寄存器模型

文摘   2024-11-12 07:00   上海  

UVM 寄存器模型
通用验证方法 (UVM) 标准定义了芯片和知识产权 (IP) 的设计验证过程。UVM 测试平台和模型对于验证的许多方面都至关重要,该标准具有许多旨在帮助完成特定任务的功能。其中之一就是对设计中的寄存器进行验证。

UVM 对于硬件验证至关重要
当今庞大而复杂的 IP 和片上系统 (SoC) 设计需要在制造芯片之前进行彻底验证。设计人员进行最低限度的测试并等到芯片在启动实验室中可用已不再是一种可接受的方法,因为芯片周转成本非常高。需要使用最新方法的专用验证团队。
SystemVerilog 语言提供了解决方案的第一部分,其构造支持约束随机验证和功能覆盖,以评估自动化测试的有效性。由于它是一种标准,因此它受到许多电子设计自动化 (EDA) 工具的支持,并且 UVM 验证环境可在 EDA 供应商之间移植。
第二部分是 UVM,这是基于 SystemVerilog 的标准化验证方法,它提供构建块库并定义测试、模型和测试台的结构。面向对象的技术扩展了标准基类库和方法集,可用于广泛的项目,使所有团队都可以进行高级验证。




寄存器验证是一项要求
IP 和 SoC 设计包含许多内存映射寄存器,这些寄存器是硬件软件接口 (HSI) 的一部分。它们使驱动程序和嵌入式软件能够在接收返回状态的同时配置和控制设计。确保寄存器传输级 (RTL) 设计中的寄存器按预期工作是硅前验证的关键部分。
作为寄存器验证的一个例子,UVM 测试可能会检查设计中的每个寄存器是否可以读取和写入,可能应用“walking 0s”和“walking 1s”模式。这些测试还可以检查特定寄存器类型的预期行为,例如验证只读寄存器是否无法写入以及影子寄存器是否始终匹配。
UVM 承认寄存器验证的重要性,并包含特定的支持功能。该标准包括寄存器抽象层 (RAL),正是为此目的。UVM RAL 提供了一个标准的基类和方法库,以及一组规则,以最大限度地减少从 UVM 测试台访问寄存器的工作量。

UVM 是寄存器验证的理想选择
RAL 类用于为验证设计 (DUV) 中的内存映射寄存器创建高级面向对象模型。UVM RAL 提供使用用户定义名称读取和写入 DUV 寄存器的高级抽象。可以通过 RTL 设计中的总线接口访问寄存器,也可以通过调用读/写方法独立访问寄存器。
UVM RAL 提供了一个测试序列库,其中包含可用于验证 DUV 寄存器的预定义测试用例。如上图所示,这些测试由复杂的序列组成,这些序列直接将刺激应用于 DUV 输入。监视器在测试结束时检查寄存器内容,以确保值等于预测/预期结果。
UVM 库注册类不包含任何内置覆盖率模型,但它提供了一个应用程序编程接口 (API) 来控制用户定义覆盖率模型的实例化和采样。这为验证团队提供了最大的灵活性,同时承认功能覆盖率在确定测试对设计的执行效果方面的重要性。




Register Manager 提供最佳 UVM RAL 解决方案
Register Manager 自动生成 UVM RAL 验证环境,与手动编码和手动设置相比,可节省大量工作量。该过程从设计中的寄存器定义开始。Register Manager 支持分层寄存器块、分层寄存器文件、任意数量的寄存器、寄存器内任意数量的字段以及字段内任意数量的位。
Register Manager 对标准的承诺意味着支持多种指定寄存器的方式。这些包括 IP-XACT 和寄存器定义语言(如 SystemRDL)。对于喜欢图形规范的用户,Register Manager 提供了 Microsoft Word、Microsoft Excel 和 OpenOffice 插件以及强大的寄存器编辑器。
寄存器规范是一项简单的任务,利用现有的标准描述或填写表单中的条目。从简单的抽象输入文件,Register Manager 生成复杂的 SystemVerilog/UVM 代码来定义、实例化和验证寄存器。它生成新类来定义寄存器,从标准 UVM 库扩展“uvm_reg”基类

Register Manager 超越其他解决方案
鉴于 UVM RAL 是一种标准,它受到许多工具和供应商的支持。但是,没有其他解决方案像 IDS-Verify 一样广泛或强大。当今 SoC 和 IP 设计中使用了数百种特殊寄存器类型,包括间接、索引、只读/只写、别名、锁定、影子、FIFO、缓冲区、中断、计数器、分页、虚拟、外部、读/写对以及这些的组合。
Register Manager 支持所有这些特殊类型的寄存器,生成每种类型 100% 验证覆盖率所需的特定测试。它还支持内存,通过扩展“uvm_mem”基类生成新类,在验证环境中实例化它们并生成测试。 IDS-Verify 的其他独特 UVM RAL 功能包括:
  • 支持多种类型的覆盖模型
  • 支持交叉覆盖,例如两个寄存器字段
  • 自定义覆盖和约束的规范
  • 为别名寄存器生成 UVM 回调
  • 在更新 RTL 寄存器时自动镜像以更新 UVM 寄存器模型
  • 可选择使用 UVM“工厂”注册寄存器和内存类

Register Manager 涵盖所有基础
UVM 是验证 SoC 和 IP 设计的广泛接受的方法。验证设计中的寄存器和内存是此过程的关键方面之一。IP-Verify 为 UVM RAL 自动化提供了无与伦比的解决方案,可根据标准描述生成所有文件。每次寄存器随着设计的发展而发生变化时,只需按一下按钮即可重新生成 UVM 环境。
用户还可以生成用于寄存器配置和验证、硬件/软件协同仿真环境、寄存器文档甚至实际 RTL 寄存器设计的 C/C++ 测试。对于添加、验证、编程和确认 IP 和 SoC 寄存器而言,没有比这更好的解决方案了。

软硬件协同设计 HW-SW Co-Design
欢迎后台留言,AI 客服全天在线。脱离物理硬件,开发测试和调试软件。基于虚拟原型的软硬件协同设计,提前一年实现产品上市创收,降低一半开发时间。
 最新文章