| |
Registers
了解与UVM Register Package相关的所有方法学。
寄存器章节内容:
Registers (this page)
Registers/Specification
Registers/Adapter
Registers/AdapterContext
Registers/Integrating
Registers/Integration
Registers/RegisterModelOverview
Registers/ModelStructure
Registers/QuirkyRegisters
Registers/ModelCoverage
Registers/BackdoorAccess
Registers/Generation
Registers/StimulusAbstraction
Registers/MemoryStimulus
Registers/SequenceExamples
Registers/BuiltInSequences
Registers/Configuration
Registers/Scoreboarding
Registers/FunctionalCoverage
Topic Overview
Introduction
UVM寄存器模型提供了跟踪DUT的寄存器内容和便利层的方式,用于访问DUT内的寄存器和存储器位置。
【此处省略一幅图】
寄存器模型抽象反映了硬件 - 软件寄存器规范的结构,因为这是硬件设计和验证工程师的通用参考规范,并且它也被开发固件层软件的软件工程师使用。非常重要的是,所有三个小组都参考了一个共同的规范,并且必须根据准确的模型验证设计。
UVM寄存器模型旨在促进可编程硬件的高效验证。当有效使用时,它会提高激励抽象的水平,并在DUT寄存器地址映射发生变化时,或者当DUT块作为子组件重用时,使得所得到的激励代码直接重用。
How The UVM Register Material Is Organised
可以从多个不同的视角考虑UVM寄存器模型,并将此页面分成不同的部分,以便您可以快速导航到最关注的材料。下图总结了使用寄存器模型的流程中的各个步骤,并概述了不同类别的用户。
【此处省略一幅图】
因此,不同的寄存器视角是:
VIP Developer Viewpoint
为了支持使用UVM寄存器封装,片上总线验证组件的开发人员需要开发适配器类。此适配器类负责在UVM寄存器包通用寄存器sequence_items和VIP特定sequence_items之间进行转换。开发适配器需要了解目标总线协议以及VIP sequence_item中的不同域如何与该协议相关。
适配器就位后,测试平台开发人员可以使用它将寄存器模型集成到UVM测试平台中。
要了解如何创建适配器,通过寄存器材料建议的路径是:
【此处省略一个表】
Creating A Register Model
寄存器模型可以使用寄存器生成器应用程序创建,也可以手动编写。在这两种情况下,起点都是硬件 - 软件寄存器规范,并将其转换为模型。
如果您正在使用生成器或根据寄存器规范编写寄存器模型,则应按以下顺序遵循这些主题。
【此处省略一个表】
Integrating A Register Model
Integration Pre-requisites
如果要将寄存器模型集成到测试平台中,那么先决条件是已经编写了寄存器模型,并且有一个适用于总线代理的适配器类将用于与DUT总线接口交互。
Integration Process
在测试平台中,需要构造寄存器模型对象,并且需要使用配置和/或资源机制在验证环境中传递句柄。
为了从寄存器模型驱动agent,需要在它与目标sequencer之间建立关联,以便当sequence调用其中一个寄存器模型method时,将总线级sequence_item发送到目标总线driver。
寄存器模型通过总线agent中的monitor使用当前硬件寄存器状态保持更新,并且predictor组件用于将总线agent analysis事务转换为寄存器模型的更新。
【此处省略一幅图】
测试平台集成商也可能参与实现参考寄存器模型的其他分析组件,这些组件将包括记分板和功能覆盖监视器。
对于测试平台集成商,通过寄存器材料的推荐路线如下表所示。
【此处省略一个表】