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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 8936|回复: 15

[求助] system verilog 代码请教一个问题

[复制链接]
发表于 2012-10-9 15:10:59 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 hhc789 于 2012-10-9 15:31 编辑

各位大侠,下面是我在资料上看的一段代码,编译的时候提示这个错误,can not find package. 下面是代码:

先定义了一个包:
  //---file.sv
   package a ;
     ...
      class am_c ;
     ...
  endpackage

//----file2.sv

module mm();
  import a::* ;
  ...
  ...
endmodule

//----file3.sv
在file3中用到了file.sv中定义的类 am_c,怎么讲这个类包含到file3.sv中?

编译的时候提示在file2.sv中,找不到a这个包。 小弟不明白,求解答啊。

2 import a::* 中的通配符,在我用的gvim中怎么像一个小五角星,不是现在这个六边的,是不是这个原因啊?
发表于 2012-10-9 20:35:59 | 显示全部楼层
看看你的package的那个file1.sv有没有先编译。
发表于 2012-10-9 22:11:50 | 显示全部楼层
用incdir把package的路径加到编译命令里面去
 楼主| 发表于 2012-10-10 08:28:59 | 显示全部楼层
回复 2# 仙福永享


    我是在qutasim下面点击全部编译的那个按钮的。应该是都编译了。
 楼主| 发表于 2012-10-10 08:31:56 | 显示全部楼层
回复 3# tbb2009


    我是在qutasim下面,直接点击编译的那个按钮,?
   你说的加入到编译路径我不太明白?请教一下
发表于 2012-10-10 23:30:03 | 显示全部楼层
回复 4# hhc789

我没用过qutasim,在vcs里面,因为编译要写一个filelist,我以前碰到过类似的问题,你如果把package a所在的file.sv放在后面编译:由于编译器在检查file2.sv中的"import a::* ;"时,会去package的naming scope里面检查是不是有一个a,而此时编译器没有编译file.sv,因此没有这个package存在,所以编译器自然会报错了。这个跟你有没有点击全部编译时没有关系的。你可以做个实验,把这几个.sv的内容放都放在一个.sv里面,按照你现在的顺序再编译下,看看有没有问题,然后你把package a的内容放在最后,看看有没有问题。
发表于 2012-10-10 23:37:18 | 显示全部楼层
楼上的正解!
 楼主| 发表于 2012-10-12 16:31:40 | 显示全部楼层
回复 6# 仙福永享


    好的,我试试这个。
发表于 2012-10-12 22:28:35 | 显示全部楼层
再试试`include file1.sv 到file2.sv的最前面,总之就是这几个文件没有找到依赖关系。
发表于 2012-10-13 15:20:05 | 显示全部楼层
看看你的package的那个file1.sv有没有先编译。用incdir把package的路径加到编译命令里面去
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

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

GMT+8, 2024-5-10 06:27 , Processed in 0.033462 second(s), 8 queries , Gzip On, Redis On.

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