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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 7165|回复: 16

[求助] uvm reg_model 求助

[复制链接]
发表于 2015-5-28 10:11:24 | 显示全部楼层 |阅读模式

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

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

x
在vsequence中,定义了两个sequence,
task body();
  cpu_sequence cpu_seq;
  send_sequence send seq;

`uvm_do_on(send_seq,p_sequencer.send_seq);

`uvm_do_on(cpu_seq,p_sequencer.cpu_seq);
endtask

第一个sequence(send_seq)已经跑完,
跑到第二个sequence(cpu_seq)的task body时报错,
task cpu_sequence::body();
  uvm_status_e status;
  reg_model.TXRX.write(status,32'h00_00_00_01);//在这一行报错
endtask

错误如下:
The object at deference depth 1 is being used defore it was constructed/allocted.

请问有可能是什么原因?是reg_model没有实例化一个对象还是怎么的?
reg_model是在env里实例化的吗?
发表于 2015-5-28 11:49:40 | 显示全部楼层
你没有进行连接,当然找不到reg_model了。使用uvm_config_db#(reg_model)方式,注意层次路径,否则找不到
 楼主| 发表于 2015-5-28 11:51:45 | 显示全部楼层
回复 2# qyxu1979

放在哪个模块链接呢??
 楼主| 发表于 2015-5-28 12:07:38 | 显示全部楼层
回复 2# qyxu1979
reg_model已经在env模块实例化了,你说的连接,是什么的连接?
发表于 2015-5-28 14:14:24 | 显示全部楼层
就是在你的cpu_seq这个类中使用了reg_model,但没有在这个类中实例化或其他地方实例化但没有进行句柄copy,就不能使用。

不是说对象实例化就能可以任意使用了,可以任意使用的就是全局的了,要考虑类的特性
发表于 2015-5-28 14:26:18 | 显示全部楼层
简单的说就是要在seq执行write的地方,拿到reg_model的句柄。
可以:
1.通过参数传递的方法取得
2.通过config机制,配置
3.通过hierarchy直接调用,找到你例化的reg_model
等等。
 楼主| 发表于 2015-5-28 21:19:02 | 显示全部楼层
回复 6# admiral1

在env里把reg_model和vsequence实例化,


然后,
uvm_config_db#(reg_model)::set(this,"vseq.cpu_sequence","regmodel",regmodel);





在cpu_sequence里,

task body();

  uvm_config_db#(reg_model)::get(this,"","regmodel",regmodel)//这一行报错
endtask



Incompatible complex type usage in task or function call.

The flowing epression is incompatible with the formal parameter of the function.
The type of the actual
is 'class $unit::cpu_sequence',while the type of the formal is 'class uvm_pkg::uvm_component'.



是不是因为env和sequence之间不能直接用config传递数据。





怎么才能把在env里实例化的regmodel传递到cpu_sequence内?
 楼主| 发表于 2015-5-29 08:52:02 | 显示全部楼层
回复 6# admiral1

config_db机制只能在component之间传输,怎么把在env里实例化的句柄传递到sequence里?
 楼主| 发表于 2015-5-30 13:02:58 | 显示全部楼层
??????????????
发表于 2015-5-30 16:32:17 | 显示全部楼层
uvm_config_db#(reg_model)::set(this,“*”,“reg_model”,reg_model);
uvm_config_db#(reg_model)::get(get_sequencer(),“”,“reg_model”,reg_model);
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

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

GMT+8, 2024-11-22 07:09 , Processed in 0.023664 second(s), 10 queries , Gzip On, Redis On.

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