0. 引言 在UVM支持的寄存器操作中,有get、update、mirror、write等等一些方法,在这里整理一下他们的用法。在寄存器模型中专门有个值来尽可能与DUT中寄存器的值保持一致,叫镜像值(mirrorred value)。寄存器模型中还有一个值叫期望值(respected value),这个值保存我们希望写入寄存器的值。比如希望向DUT某个寄存器写入'h1,用set函数设
转载
2024-07-14 08:18:10
234阅读
寄存器模型寄存器是模块之间相互交谈的窗口,可以通过读取寄存器的状态获取硬件得当前状况,在验证过程中 ,对寄存器进行验证也是必需的,为了保证硬件与硬件之间正确的交谈。 在没有寄存器模型之前,只能启动
sequence
通过前门(
FRONTDOOR
)访问的方式来读取寄存器,局限较大,在 scoreboard(或者其他
component
)中难以控制。而有了寄存器模型之后,
寄存器模型的意义寄存器模型的搭建寄存器模型的FAQ 寄存器模型的意义寄存器模型,字面理解,跟参考模型类似。就是为工程里的寄存器提供一个参考模型。 这个模型里,包括各个寄存器字段描述、寄存器、寄存器组、寄存器地址映射等信息。有如下好处: 寄存器模型建立的目的,初始目的,是为了验证寄存器配置过程的。 uvm里提供内置sequence,可以实现后门访问的路径检查、寄存器初始值的检查、寄存器读写属性的
DUT中寄存器的值可能是实时变更的, 寄存器模型并不能实时地知道这种变更, 因此, 寄存器模型中的寄存器的值有时与DUT中相关寄存器的值并不一致。 对于任意一个寄存器, 寄存器模型中都会有一个专门的变量用于最大可能地与DUT保持同步, 这个变量在寄存器模型中称为DUT的镜像值( mirrored value) 。寄存器模型中还有一个值叫期望值(respected value),这个值保
前门访问:指的是通过模拟cpu在总线上发出读指令,进行读写操作。在 这个过程中,仿真时间($time函数得到的时间)是一直往前走的。有了寄存器模型后,可以在任何耗费时间的phase中使用寄存器模型以前门访问或后门(BACKDOOR)访问的方式来读取寄存器的值。后门访问:从广义上来说,所有不通过DUT的总线而对DUT内部的寄存器或者存储器进行存取的操 作都是后门访问操作。不通过总线进行读写操作,而是
创建如下所示的目录结构:2.在tb的文件下:顶层的testbench如下:在tb中,第24行的代码将uvm宏相关的内容include进来,第26行的代码把uvm_pkg包导入进来,然后将agent相关的包(ahb_pkg/sram_pkg),testcase相关的包(uvm_ahb_sram_test_pkg)以及env相关的包(uvm_ahb_sram_env_pkg)都导入进来,在第38行和3
转载
2024-05-16 21:02:12
82阅读
在之前的文章中,我们已经了解寄存器模型的相关概念以及如何访问寄存器。本文中将给出一个完整的例子,理解下如何写一个完成的寄存器模型、如何把寄存器模型集成到环境中以及如何进行读写操作。RTL设计下面的设计具可以通过APB接口可访问的寄存器和字段。该设计本质上为一个可以通过写入某些控制寄存器来配置的红绿灯控制器。CTL寄存器包含启动模块的字段,以及将其配置为黄闪或红闪模式字段。状态寄存器是只读的,该
(11)UVM 寄存器模型概览概述UVM寄存器中心化管理方式UVM_reg相关概念UVM_reg使用流程 概述寄存器是模块之间互相交谈的窗口,一方面可以通过读出寄存器的状态,获取硬件当前的状况,另外一方面也可以通过配置寄存器,使得寄存器工作在一定的模式下。在验证的过程中,寄存器的验证排在了验证清单的前列,只有首先保证寄存器的功能正确,才会使得硬件与硬件之间的交谈是“语义一致”的。如果寄存器配置结
一、硬件 对于许多TI的芯片来说,引脚复用的配置是在Control Module(配置模块)的寄存器里配置的,(这个和三星的CPU有点不同,三星的一般在GPIO的寄存器中配置)。所以当你需要配置这些寄存器的时候,请到数据手册的Control Module的Pad Control Registers查找。 TI的CPU芯片手册有两种:一种是datasheet(DS
文章目录一、对寄存器模型的操作是怎么反映到总线上?二、怎么保证寄存器模型与DUT的寄存器保持一致 ?1.预测更新1.1.1 自动预测(auto predication)1.1.2 显示预测2.mirror( )更新三、使用寄存器模型的优点?1.提高了 sequence 的复用性2.提供了后门访问方式 ?寄存器模型的基础知识可以看:UVM寄存器模型 ?这篇文章随着工作年限的增加,会持续更新…寄存器
转载
2024-06-20 10:25:23
283阅读
变量存储器 V变量存储器是最常用的存储器。可以用它存储程序执行过程中控制逻辑操作的中间结果,也可以用它来保存与工序或任务相关的数据。并且可以按位、字节、字或双字来存取变量存储区存储区中的数据。不同型号的CPU的V存储区的大小不一样。标志存储器(位存储器) MM存储区在功能和用法上与V存储区类似,但是M存储区很小,只有32个字节。M存储区有一点特殊,对于MBO-MB13这14个字节可设置成保存在
转载
2024-05-01 23:58:10
334阅读
一、 UVM_PREDICT_DIRECT功能与mirror操作UVM提供mirror操作,用于读取DUT中寄存器的值并将它们更新到寄存器模型中。它的函数原型为:task uvm_reg::mirror(output uvm_status_e status,
input uvm_check_e check = UVM_NO_
转载
2024-08-07 15:26:26
509阅读
0. 引言 在UVM支持的寄存器操作中,有get、update、mirror、write等等一些方法,在这里整理一下他们的用法。在寄存器模型中专门有个值来尽可能与DUT中寄存器的值保持一致,叫镜像值(mirrorred value)。寄存器模型中还有一个值叫期望值(desired value),这个值保存我们希望写入寄存器的值。1.
一、存储器映射与重映射物理存储器分配逻辑地址的过程就称为存储器映射,通过这些逻辑地址就可以访问到相应的存储器的物理存储单元。如果给存储器再分配一个地址就叫存储器重映射。STM32,对于片上外设,它们以四个字节为一个单元,共32bit,每一个单元对应不同的功能,当我们控制这些单元时就可以驱动外设工作。我们可以找到每个单元的起始地址,然后通过C语言指针的操作方式来访问这些单元,如果每次都是通过这种地址
1.上一节,没有考虑总线的重用。集成到芯片时,芯片都有自己的配置总线,经过仲
原创
2023-07-31 17:35:07
260阅读
1.为7.1.1的DUT建立寄存器模型。只有一个寄存器invert。首先从uvm_reg
原创
2023-07-31 17:29:07
199阅读
一.代码 和 汇编 和 二进制之间的关系 二.复习一下计算机组成原理的知识1.寄存器计算机中有三个存储 32位cpu提供的寄存器有三种类型8位 16位 32位 64位的只是32位的扩展 并且程序大多是32位 以下是32位的8个通用寄存器(有宽度) 2.
1.两级寄存器模型:2.加入一个用时,lock后要reset。2)一般将具有同一基地址的寄存器作为整体加入一个uvm_reg_block中。
原创
2023-07-31 17:31:43
127阅读
寄存器映射什么是寄存器寄存器映射寄存器映射的实现方法寄存器地址计算通过结构体完成寄存器映射总结 上期我们复习了C语言的一些知识,现在我们来学习什么是寄存器映射什么是寄存器如果你有学习过51单片机,那么你一定对配寄存器这个环节相当熟悉了,那么,我们之前配了那么久的寄存器,到底什么是寄存器呢?寄存器是CPU内部用来存放数据的一些小型存储区域,用来暂时存放参与运算的数据和运算结果,其本质也是一种存储器
转载
2024-07-12 01:57:07
89阅读
uvm_event 与 system Verilog 中的 event 是类似的,只是 uvm中将 sv的 event进行了 封装和升级,uvm提供了一些额外的方法,有需要的可以看看源码。 uvm_event支持的方法有如下表所示:序号方法 描述1wait_on等待事