微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微电子和IC设计 > IC验证交流 > sv中interface报多驱动错误

sv中interface报多驱动错误

时间:10-02 整理:3721RD 点击:
代码如下:
文件:top.sv
代码:
module top;
test u_test();
myinf u_myinf();
assign u_myinf.u_myinfsub.a=0;
endmodule
文件:test.sv
代码:
module test;
myinf u_testmyinf();
assign u_testmyinf.u_myinfsub.a=0;
endmodule
文件:myinf.sv
代码:
interface myinf();
myinfsub u_myinfsub();
endinterface
文件:myinfsub.sv
代码:
interface myinfsub();
logic a;
endinterface

=================
编译时,报a多驱动错误!
如果只在top层下有两个a被赋值,则不会报错误。如:
文件:top.sv
代码:
module top;
//test u_test();
myinf u_myinf1();
myinf u_myinf2();
assign u_myinf1.u_myinfsub.a=0;
assign u_myinf2.u_myinfsub.a=0;
endmodule
文件:test.sv
代码:
module test;
myinf u_testmyinf();
//assign u_testmyinf.u_myinfsub.a=0;
endmodule
文件:myinf.sv
代码:
interface myinf();
myinfsub u_myinfsub();
endinterface
文件:myinfsub.sv
代码:
interface myinfsub();
logic a;
endinterface
==================
编译上面的没有问题
求教!

未做过interface嵌套interface的做法。可能内部interface是静态的,所以你多驱动了。

如果是 wire a; 就不会有问题感觉sverilog对logic类型,有较多限制。

内容 按照小编的第一个程序编写,并在vcs中仿真,没有任何错误,也没你说的问题

你VCS用的是哪个版本的?

我用questa10.0b也没有发现有报错误

我的vcs2012版本,但是从你的代码分析来看,根本就没错。除非你上面的示例有问题

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

网站地图

Top