在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 2001|回复: 0

[求助] ovm_update_sequence_lib_and_item与ovm_update_sequence_lib区别

[复制链接]
发表于 2014-11-5 15:26:34 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
看了下ovm库里面,他们俩的区别就是有两点,但是小弟对这两点理解得不是很透彻,希望大神多指点。




  1. // MACRO: `ovm_update_sequence_lib
  2. //
  3. // This macro populates the instance-specific sequence library for a sequencer.
  4. // It should be invoked inside the sequencer¿s constructor.

  5. `define ovm_update_sequence_lib \
  6.   m_add_builtin_seqs(0); \
  7.   ovm_update_sequence_lib();


  8. // MACRO: `ovm_update_sequence_lib_and_item
  9. //
  10. // This macro populates the instance specific sequence library for a sequencer,
  11. // and it registers the given ~USER_ITEM~ as an instance override for the simple
  12. // sequence's item variable.
  13. //
  14. // The macro should be invoked inside the sequencer's constructor.

  15. `define ovm_update_sequence_lib_and_item(USER_ITEM) \
  16.   factory.set_inst_override_by_type( \
  17.     ovm_sequence_item::get_type(), USER_ITEM::get_type(), \
  18.     {get_full_name(), "*.item"}); \
  19.   m_add_builtin_seqs(1); \
  20.   ovm_update_sequence_lib();


复制代码




1.ovm_update_sequence_lib_and_item会将里面simple sequence的item类型改变为user定义的sequence里面的item类型
这个的话还比较好理解
2.m_add_builtin_seqs()这个函数参数一个是0,一个是1

我看了下这个函数的内容,如下。感觉就是添加了三个默认的系统自带的sequence。前两个自带的sequence会默认执行user定义的某些sequence,但最后一个simple_sequence的作用我还是真没看懂。




  1.   virtual function void m_add_builtin_seqs(bit add_simple = 1);
  2.     if(!sequence_ids.exists("ovm_random_sequence"))
  3.       add_sequence("ovm_random_sequence");
  4.     if(!sequence_ids.exists("ovm_exhaustive_sequence"))
  5.       add_sequence("ovm_exhaustive_sequence");
  6.     if(add_simple == 1)
  7.       if(!sequence_ids.exists("ovm_simple_sequence"))
  8.         add_sequence("ovm_simple_sequence");
  9.   endfunction


复制代码



那么好,问题来了,请问ovm_update_sequence_lib_and_item与ovm_update_sequence_lib分别用在哪里?(自己感觉前者用于base的sequencer,后者用于extend的sequencer)
还有就是这个m_add_builtin_seqs的意义是什么?
simple_sequence难道会对应一个user自己定义的sequence来进行执行吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

×

小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-13 13:56 , Processed in 0.013632 second(s), 6 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表