【UVM源码学习】uvm_recorder


  uvm_recorder.svh里实现了两个类:uvm_recorderuvm_text_recorder。uvm recorder规定了如何把field记录到record中,是uvm_tr_stream中record的抽象表示方法。

  uvm_recorder类直接派生自uvm_object,定义的主要方法如下表所示。uvm_text_recorder类直接派生自uvm_recorder,是uvm_text_tr_database的默认recorder,具体实现了uvm_recorder类中的钩子函数及空函数。

序号方法描述
1get_stream返回创建当前record的stream引用参数reference,若record未初始化就调用了该函数会报warning,do_open函数值会对record进行初始化
2close在uvm_tr_stream::open_recorder打开recorder之后,调用该函数关闭recorder并记录close_time。关闭recorder意味着当前transaction的结束。如果已关闭则直接退出,否则调用钩子函数do_close进行关闭。
3freefree,释放recorder,用于解决数据库实现跨语言边界的问题。释放recorder意味着当前stream及数据库可以释放recorder的reference参数。若recorder已被释放则世界退出,若recorder未close先close再调用钩子函数do_free释放,并清理stream/recorder状态。
4is_open返回recorder是否open,1代表open
5get_open_time返回recorder open时间
6is_closed返回recorder是否close,1代表close
7get_close_time返回recorder close时间
8m_do_open调用钩子函数do_open初始化recorder内部状态,free前重复初始化会报error,
9m_free_id根据recorder id删除recorder及其对应的id
10get_handle采用inst_id作为recorder的handle并返回handler,若当前recorder的id不是inst_id,以inst_id取而代之
11get_recorder_from_handle根据handle(inst_id)获取recorder
12record_feild调用对应的钩子函数来记录当前类型的参数
13record_field_int调用对应的钩子函数来记录当前类型的参数
14record_real调用对应的钩子函数来记录当前类型的参数
15record_object调用对应的钩子函数来记录当前类型的参数
16record_string调用对应的钩子函数来记录当前类型的参数
17record_time调用对应的钩子函数来记录当前类型的参数
18record_generic调用对应的钩子函数来记录当前类型的参数
19use_record_attribute用以表示是否支持使用uvm_record_attribute宏,默认返回0不支持
20get_record_attribute_handle提供兼容uvm_record_attribute宏的工具指定的handle,默认采用get_handle的值




  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MangoPapa

请作者喝瓶可乐吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值