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

 找回密码
 注册

手机号码,快捷登录

手机号码,快捷登录

搜帖子
查看: 2217|回复: 5

[求助] 一段systemverilog求助

[复制链接]
发表于 2015-5-14 22:37:21 | 显示全部楼层 |阅读模式

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

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

×
class Transaction;
  bit[31:0] addr,crc,data[8];
  Statistics stats;//4
  static int count=0;
  int id;
  function new;
    stats=new();//8
    id=count++;
endfunction
function Transaction copy;
  copy=new();
  copy.addr=addr;
  copy.crc=crc;
  copy.data=data;
  copy.stats=stats.copy();
  id=count++;
endfunction
endclass
class Statistics;
  time startT,stopT;
  static int ntrans=0;
  static time total_elapsed_time=0;
function time how_long;
  how_long=stopT-startT;
  ntrans++;
  total_elapsed_time+=how_long;
endfunction
function void start;
  startT=$time;
endfunction
function Statistics copy();
  copy=new();
  copy.startT=startT;
  copy.stopT=stopT;
endfunction
endclass

** Error: H:/systemverilog/work/q.sv(4): Invalid type 'Statistics'. Please check the type of the variable 'stats'.
** Error: H:/systemverilog/work/q.sv(8): (vlog-2730) Undefined variable: 'stats

class不是相当于module吗,不能包含其它类吗?这问题该怎么解决
发表于 2015-5-15 08:14:26 | 显示全部楼层
编译顺序呢? 有没有把Statistics class 放在之前编译
回复 支持 反对

使用道具 举报

发表于 2015-5-15 20:22:50 | 显示全部楼层
typedef class
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-5-17 14:03:51 | 显示全部楼层
回复 2# h646598660
我是将它作为一个完整代码进行编译的,verilog中module模块不是可以那样一起编译吗?这个需要分开按顺序编译?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-5-17 14:08:03 | 显示全部楼层
回复 2# h646598660
把下面一个class放上面编译通过了,为什么这样呢,verilog可以自顶向下,这个不能?
回复 支持 反对

使用道具 举报

发表于 2015-5-18 10:02:00 | 显示全部楼层
是这样的,编译时需要先后顺序,先声明才能使用,或者使用上面有人提到的typedef class statistics放在前面即可。编译时加include+env路径也可以
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

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


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

GMT+8, 2025-9-13 18:25 , Processed in 0.023498 second(s), 6 queries , Gzip On, Redis On.

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