在UVM中注册模型的目的是什么?

时间:2017-09-04 18:42:31

标签: system-verilog uvm

在UVM中,测试平台无法看到DUT的内部寄存器。那么为什么在UVM测试平台架构中存在镜像和创建Register模型?它有什么用途?

测试平台不会知道DUT内是否有任何状态位等更新,因为它只能访问其输入输出端口。

3 个答案:

答案 0 :(得分:1)

DUT可能没有通过端口直接访问内部寄存器,但某些寄存器可通过接口协议访问。寄存器模型主要用于这些寄存器。但是你可以通过后门访问设计中的任何寄存器(但并不总是需要,因为它需要更多的工作来设置和维护)。

镜像存储测试平台认为的值是DUT的寄存器值。当您执行.mirror()时,寄存器模型会将寄存器值(实际)与镜像(预期)进行比较。

状态位通常很难预测。为了简化操作,您可以关闭字段(或注册)与.set_compare(UVM_NO_CHECK)的比较。如果在字段级别禁用检查,则仍将比较同一寄存器中的其他字段。

如果您想要进行更多复杂的预测/镜像比较状态位,那么您确实有选项,例如注册回调或扩展uvm_reguvm_reg_field类来覆盖.predict.mirror方法。

答案 1 :(得分:1)

UVM RAL提供了多种好处

  1. 它为您的设计中的读写寄存器提供高级抽象。当您从其他描述编译寄存器的RTL时,这尤其有用。所有地址和位字段都可以替换为人类可读的名称。
  2. 您的测试可以独立于物理总线接口编写。只需调用读/写方法即可。
  3. 镜像寄存器使您可以轻松了解DUT的状态/配置,而无需添加自己的镜像变量集或执行额外的读取操作。

答案 2 :(得分:-1)

寄存器模型是一个实体,代表每个寄存器及其单独字段的类对象的分层数据结构。寄存器模型(或寄存器抽象层)可以是一组类,它们对DUT中寄存器和存储器的存储器映射行为进行建模,以促进激励的产生。我们可以使用RAL模型对设计执行读取和写入操作。它通过在验证环境中建立模型来镜像设计寄存器。通过将刺激应用于寄存器模型,实际的设计寄存器可以展示出刺激施加的变化。

RAL模型的优势来自所提供的高度抽象。它为寄存器和存储器提供后门访问权限,并且在UVM验证环境中具有易于集成的责任。每当执行读或写操作时,RAL模型将自动更新。它支持具有多个物理接口的设计。

有关更多信息,请使用此link

谢谢, 玛雅克