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
==================
编译上面的没有问题
求教!
文件: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版本,但是从你的代码分析来看,根本就没错。除非你上面的示例有问题