首页 > 其他分享 >UVM:3.3.2 field_automation 机制常用的函数

UVM:3.3.2 field_automation 机制常用的函数

时间:2023-07-31 18:38:13浏览次数:38  
标签:compare bytes automation field 实例 UVM unpack 打包 pack


1.copy

UVM:3.3.2 field_automation 机制常用的函数_内存空间

要把A的实例复制到B实例中,应该使用B.copy(A),使用前,B必须使用new分配好内存空间。


2.compare

比较A 与 B是否一样,可以使用A.compare(B),也可以使用B.compare(A)。相等时,返回1;否则为 0 。


3.pack_bytes 将所有字段打包成bytes流。

UVM:3.3.2 field_automation 机制常用的函数_字段_02

返回的是size。


4.unpack_bytes:将byte 流逐一恢复到某个class的实例中。

5.pack 将所有字段打包成bit 流。

6.unpack将一个bit流逐一恢复到某个类的实例中。

7.pack_ints 将所有字段打包成int。

8.unpack_ints:把一个int流恢复到某个类的实例中。

9.print。

10.clone。

11.config_db::set。

标签:compare,bytes,automation,field,实例,UVM,unpack,打包,pack
From: https://blog.51cto.com/u_11309773/6911043

相关文章

  • UVM:2.1_验证平台的组成
    1.首先看下面的结构吧:这个结构虽然不是一个严格满足官方规范的架构,但它真的可以跑.1).driver:产生最原始的data,发送给两部分。一个是DUT,另一个是referencemodel。2) referencemodel:是一个和DUT逻辑上相同的模块,可以sv,也可以通过DPI实现。我遇到的问题是,如果referencemodel和DU......
  • UVM:5.1.6 build 阶段出现UVM_ERROR停止仿真
    1.在build_phase使用uvm_error,也会退出:2.结果:3.在end_of_elaboration_phase之前的phase中,如果出现UVM_ERROR,UVM就认为出现了致命错误,会调用uvm_fatal结束仿真。4.小设计看不出优势,大设计有用。......
  • UVM:3.4.2 重载打印信息的严重性
    1.所有warning替换成error:2.只对某个特定id起作用:3.重载严重性是没有递归函数的。4.可以在命令行中实现:<simcommand>+uvm_set_severity=<comp>,<id>,<currentseverity>,<new_severity><simcommand>+uvm_set_severity="uvm_test_top.env.i_agt.drv,my_driver,......
  • UVM:4.1.1 验证平台内部的通信
    1.两个components通信可以有如下方法:1)设置全局变量。2)设置public让外部访问。3)写一个新的class,uvm_object,用config_db(config_object)配置,被配置的components去吃这个新的class。但是都不好!!!!!!!!!!!!!!!!2.1)上面的方法如果加入阻塞和非阻塞的概念,会更复杂。2)scoreboard主动要求数据,又怎么实现......
  • UVM:5.1.8 phase 机制的必要性
    1.可以这么写:第三行在第二行后面就可以。2.将顺序降到最低,也可以这么写:3.UVM将例化放在build_phase,连接放在connect_phase,这就是phase的来源。方便用户。......
  • UVM:4.1.3 UVM 中的PORT 与 EXPORT
    1.UVM中常用的PORT有:总结到一起:1)put,get,transport都是3个。2)peek与get类似,都是主动获取数据。是有区别的。。。3)get_peek结合了get和peek的功能。4)前12个的参数就是PORT中的数据类型,后3个是request的类型和response的类型。5)如果没有指定是否阻塞,则都可以当。(都可以作只是端口......
  • UVM:6.3.3 uvm_rand_send 系列宏
    1.uvm_rand_send系列宏有如下几个:1)和uvm_send的唯一区别是它会对transaction进行随机化。2)使用前提是transaction被分配了空间,(就是uvm_create)2.uvm_rand_send系列宏及uvm_send系列宏的意义在于,如果一个transaction占用内存较大,希望前后两次发送的transaction都是用同一块内......
  • UVM:6.4.4 p_sequencer 的使用
    1.考虑如下情况,sequencer有如下变量:2.在sequence发送transaction时,必须设置此dmac和smac,sequence的body如何得到这两个值呢?1)在介绍sequence时,内部有m_sequencer,直接使用m_sequencer得到这两个变量:编译错误:因为m_sequencer是uvm_sequencr_base(uvm_sequencr的基类)类型,而不......
  • UVM:6.3.1 uvm_do系列宏
    1.uvm_do系列宏主要有以下8个:1)uvm_do_on用于显式指定那个sequencer发送此transaction。第一个是transaction指针,第二个是sequencer指针。2)使用uvm_do时,默认的sequencer就是此sequence启动时为其指定的sequencer,sequence将这个sequencer的指针放在其成员变量m_sequencer中。......
  • UVM:6.2.3 sequencer 的grab 操作
    1.grab比lock优先级更高。2.lock是插到sequencer仲裁队列的后面。3.grab则是插到前面,一发出就拥有sequencer的所有权。4.如果遇到lock,grab不会打断lock,等待lock完成。5.两个grab试图获取,和lock一样,先获得先用,用完再给另外一个。6.my_case0:7.结果......