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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 1820|回复: 5

[求助] 一段systemverilog求助

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

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

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

x
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路径也可以
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

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

GMT+8, 2024-12-21 10:22 , Processed in 0.023439 second(s), 9 queries , Gzip On, Redis On.

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