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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 5049|回复: 12

[求助] cast在sv中的用法,求分析

[复制链接]
发表于 2018-4-28 12:45:53 | 显示全部楼层 |阅读模式

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

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

x
class my_transaction extends uvm_sequence_item;
  5
  6    rand bit[47:0] dmac;
  7    rand bit[47:0] smac;
  8    rand bit[15:0] ether_type;
  9    rand byte      pload[];
10    rand bit[31:0] crc;
11
12    constraint pload_cons{
13       pload.size >= 46;
14       pload.size <= 1500;
15    }
16
17    function bit[31:0] calc_crc();
18       return 32'h0;
19    endfunction



virtual function void mid_do(uvm_sequence_item this_item);
17 my_transaction tr;
18 int p_sz;
19 `uvm_info("sequence0", "this is mid_do", UVM_MEDIUM)
20 void'($cast(tr, this_item));
21 p_sz = tr.pload.size();
22 {tr.pload[p_sz - 4],
23 tr.pload[p_sz - 3],
24 tr.pload[p_sz - 2],
25 tr.pload[p_sz - 1]} = num;
26 tr.crc = tr.calc_crc();
27 tr.print();
28 endfunction
为什么this_item能通过cast转给tr,tr不是其子类吗,this_item不用先转成子类的类型先吗
发表于 2018-4-28 13:19:13 | 显示全部楼层
$cast作用不就是类型转换么
 楼主| 发表于 2018-4-28 13:40:38 | 显示全部楼层
回复 2# wenhuajianyuan


   转换不是要同类型的才能转换吗,只有当前父类指针指向的对象和待转换对象的类型一致时,cast才会成功,我看的有点乱
发表于 2018-4-28 13:57:37 | 显示全部楼层
那这里uvm_sequence_item 不就是my_trans的父类么,和你说的一致啊
 楼主| 发表于 2018-4-28 14:08:03 | 显示全部楼层
回复 4# wenhuajianyuan

uvm_sequence_item 是my_trans的父类啊,但是不是一个是uvm_sequence_item类型一个是my_trans类型吗
 楼主| 发表于 2018-4-28 14:13:27 | 显示全部楼层
回复 4# wenhuajianyuan


   上面子类向父类进行数据传递时,显示不出$cast操作向下类型转换的优势,但父类向子类传递数据时,无法使用child_tr = father_tr,则必须要使用$cast操作。

使用$cast操作,直接使用$cast(child_tr, father_tr)是非法的,此时则要求基类的handle必须指向派生类的对象,即father_tr必须指向child_tr类型的对象&#8203;,因此一般会有如下几步操作:

1、定义一个派生类类型的对象:child1_tr = new;

2、&#8203;father_tr = child1_tr;

3、$cast(child_tr, father_tr);

以上第(3)步,$cast会做类型检查,若类型兼容返回1,否则返回0。&#8203;

就是看这段话看的有点乱

发表于 2018-4-28 15:23:59 | 显示全部楼层
你看看这个吧,看完你就懂了,http://bbs.eetop.cn/thread-456197-1-1.html
发表于 2018-4-28 15:48:28 | 显示全部楼层




   这是哪本书书上的?
 楼主| 发表于 2018-4-28 22:32:31 | 显示全部楼层
回复 8# uunn69


  我百度上看到的
 楼主| 发表于 2018-4-28 23:28:40 | 显示全部楼层
回复 7# wenhuajianyuan


   谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

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

GMT+8, 2024-5-26 13:08 , Processed in 0.028758 second(s), 6 queries , Gzip On, Redis On.

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