一、硬件    对于许多TI的芯片来说,引脚复用的配置是在Control Module(配置模块)的寄存器里配置的,(这个和三星的CPU有点不同,三星的一般在GPIO的寄存器中配置)。所以当你需要配置这些寄存器的时候,请到数据手册的Control Module的Pad Control Registers查找。 TI的CPU芯片手册有两种:一种是datasheet(DS
转载 6月前
37阅读
文章目录一、对寄存器模型的操作是怎么反映到总线上?二、怎么保证寄存器模型与DUT的寄存器保持一致 ?1.预测更新1.1.1 自动预测(auto predication)1.1.2 显示预测2.mirror( )更新三、使用寄存器模型的优点?1.提高了 sequence 的复用性2.提供了后门访问方式 ?寄存器模型的基础知识可以看:UVM寄存器模型 ?这篇文章随着工作年限的增加,会持续更新…寄存器
 0. 引言  在UVM支持的寄存器操作中,有get、update、mirror、write等等一些方法,在这里整理一下他们的用法。在寄存器模型中专门有个值来尽可能与DUT中寄存器的值保持一致,叫镜像值(mirrorred value)。寄存器模型中还有一个值叫期望值(respected value),这个值保存我们希望写入寄存器的值。比如希望向DUT某个寄存器写入'h1,用set函数设
变量存储 V变量存储是最常用的存储。可以用它存储程序执行过程中控制逻辑操作的中间结果,也可以用它来保存与工序或任务相关的数据。并且可以按位、字节、字或双字来存取变量存储区存储区中的数据。不同型号的CPU的V存储区的大小不一样。标志存储(位存储) MM存储区在功能和用法上与V存储区类似,但是M存储区很小,只有32个字节。M存储区有一点特殊,对于MBO-MB13这14个字节可设置成保存在
创建如下所示的目录结构: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
前门访问:指的是通过模拟cpu在总线上发出读指令,进行读写操作。在 这个过程中,仿真时间($time函数得到的时间)是一直往前走的。有了寄存器模型后,可以在任何耗费时间的phase中使用寄存器模型以前门访问或后门(BACKDOOR)访问的方式来读取寄存器的值。后门访问:从广义上来说,所有不通过DUT的总线而对DUT内部的寄存器或者存储进行存取的操 作都是后门访问操作。不通过总线进行读写操作,而是
  在之前的文章中,我们已经了解寄存器模型的相关概念以及如何访问寄存器。本文中将给出一个完整的例子,理解下如何写一个完成的寄存器模型、如何把寄存器模型集成到环境中以及如何进行读写操作。RTL设计下面的设计具可以通过APB接口可访问的寄存器和字段。该设计本质上为一个可以通过写入某些控制寄存器来配置的红绿灯控制。CTL寄存器包含启动模块的字段,以及将其配置为黄闪或红闪模式字段。状态寄存器是只读的,该
1.上一节,没有考虑总线的重用。集成到芯片时,芯片都有自己的配置总线,经过仲
原创 2023-07-31 17:35:07
260阅读
1.为7.1.1的DUT建立寄存器模型。只有一个寄存器invert。首先从uvm_reg
原创 2023-07-31 17:29:07
199阅读
1.两级寄存器模型:2.加入一个用时,lock后要reset。2)一般将具有同一基地址的寄存器作为整体加入一个uvm_reg_block中。
原创 2023-07-31 17:31:43
127阅读
0. 引言       在UVM支持的寄存器操作中,有get、update、mirror、write等等一些方法,在这里整理一下他们的用法。在寄存器模型中专门有个值来尽可能与DUT中寄存器的值保持一致,叫镜像值(mirrorred value)。寄存器模型中还有一个值叫期望值(desired value),这个值保存我们希望写入寄存器的值。1. 
转载 10月前
264阅读
寄存器模型寄存器是模块之间相互交谈的窗口,可以通过读取寄存器的状态获取硬件得当前状况,在验证过程中 ,对寄存器进行验证也是必需的,为了保证硬件与硬件之间正确的交谈。 在没有寄存器模型之前,只能启动 sequence 通过前门( FRONTDOOR )访问的方式来读取寄存器,局限较大,在 scoreboard(或者其他 component )中难以控制。而有了寄存器模型之后,
        uvm_event 与 system Verilog 中的 event 是类似的,只是 uvm中将 sv的 event进行了 封装和升级,uvm提供了一些额外的方法,有需要的可以看看源码。        uvm_event支持的方法有如下表所示:序号方法  描述1wait_on等待事
lab0查看class中实例:方法一:打开local窗口,会显示实例名和**@类名(实例类型)@创建该类型对象的次数**。要在创建对象实例后设置断点,不让仿真结束,不然就看不到了。方法二:view→class browser→class instances(会打开一个class instances窗口)→transcript窗口,仿真语句后加上“ -classdebug”,回车→sim窗口点击实例
1.uvm_reg_field:寄存器模型中的最小单位。2.uvm_reg:比uvm_reg_fiel
原创 2023-07-31 17:29:09
160阅读
1.验证两大问题:向DUT 灌激励,为DUT 配置参数。2.随机化:3.缩小随机化范围:1)2)或者整体:3)factory 重载:
原创 2023-07-31 17:29:34
138阅读
寄存器模型的意义寄存器模型的搭建寄存器模型的FAQ 寄存器模型的意义寄存器模型,字面理解,跟参考模型类似。就是为工程里的寄存器提供一个参考模型。 这个模型里,包括各个寄存器字段描述、寄存器寄存器组、寄存器地址映射等信息。有如下好处: 寄存器模型建立的目的,初始目的,是为了验证寄存器配置过程的。 uvm里提供内置sequence,可以实现后门访问的路径检查、寄存器初始值的检查、寄存器读写属性的
1.上节的invert 寄存器取反时,reference model 也要此值。refe
原创 2023-07-31 17:32:03
205阅读
1.实际DUT中,有些寄存器会同时即发出两个
原创 2023-07-31 17:31:34
174阅读
1.某个寄存器有三个域,低两位是fieldA,接着3位是fieldB,接着4位是fie
原创 2023-07-31 17:29:20
114阅读
  • 1
  • 2
  • 3
  • 4
  • 5