微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微电子和IC设计 > IC验证交流 > 用modelsim编译systemverilog的问题

用modelsim编译systemverilog的问题

时间:10-02 整理:3721RD 点击:
由于条件不足,没有VCS想在windows下用modelsim跑systemverilog。但有如下代码用modelsim6.5D编译都不过,部分代码

  1. interface va7_if(input bit sclk);
  2. logicmode;
  3. logicset;
  4. logicsin;
  5. logicsout;
  6. logic[2:0]c_out;
  7. logicset_in;
  8. logice_out;
  9. logicout;

  10. clocking cb @(posedge sclk);
  11. default input #1 output #1;
  12. inputc_out;
  13. endclocking

  14. modport tb (
  15. outputmode,
  16. outputset,
  17. outputsin,
  18. inputsout,
  19. clockingcb,
  20. outputset_in,
  21. inpute_out,
  22. inputout);

  23. endinterface

复制代码


  1. program automatic test(
  2. input bit resetb,
  3. va7_if.tb va[num_chip]);

  4. `include "../tb/environment.sv"
  5. environment env;
  6. ....
  7. end program

复制代码


  1. module top;

  2. bit sclk, resetb;
  3. time half_clk;

  4. initial begin
  5. #1ns;
  6. forever #(half_clk) sclk = ~sclk;
  7. end

  8. va7_if va[num_chip](sclk);

  9. test t(resetb, va);
  10. endmodule

复制代码


以上的三个模块代码是三个独立的文件va7_if.svtop.svtest.sv
modelsim提示的错误为
program automatic test(
input bit resetb,
va7_if.tb va[num_chip]);
总是说va "already decleared in this scope"
这个program中端口的参数为形参,即使与top.sv中的参数同名应该也没什么关系啊
我已经将modelsim中的compile option改成了use systemverilog,但还是不行
modelsim6.5D已经支持sv了,是我的这种写法有语法错误还是这种写法modelsim不认识

另外,又发现如果像一个class和一个module top。在module中定义了一个int d=100。在class中定义一个int e=0。然后在module中 e=top.d,我就是想在类一级的作用域下调用顶层或上一层module或program的变量。这样的写法questa sim 10.0不认识总是报错
“Dotted name (top.d) not found in current scope.Note that hierarchical references are not allowed from within a package or $unit”

为什么没有人回复呢,只能自己顶个了

类定义里面不能 e = top.d什么的。 定义的时候压根就不知道top是什么。
可以实例化后再赋值。

最近刚接触sV,先学习

用Questa编译systemverilog会出问题不知道怎么解决

http://bbs.eetop.cn/thread-400268-1-1.html访问这里看看

学习一下~

kankan

学习了e

新手來學習學習

好难的

谢谢分享~

学习一下~

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top