|  | 
 
| 大家好,我是一个Verilog新手。 最近经常遇到一个多驱动源的问题,很是头痛,想请教大家一下。 
 问题是这样的:一个主模块M,这个主模块包含3个子模块,M1,M2,M3。
 
 Module M(clk, rst, din, cs, we,dout)
 input             clk, rst;
 output           cs, we;
 output [7:0]  dout;
 wire ....
 reg....
 
 M1(   .m1_clk(clk),
 .m1_rst(rst),
 .m1_cs(cs),
 .m1_we(we)
 .m1_dout(dout)
 );
 
 M2(   .m2_clk(clk),
 .m2_rst(rst),
 .m2_cs(cs),
 .m2_we(we)
 .m2_dout(dout)
 );
 
 M3(   .m3_clk(clk),
 .m3_rst(rst),
 .m3_cs(cs),
 .m3_we(we)
 .m3_dout(dout)
 );
 ....
 endmodule
 
 因为m1,m2和m3的代码比较多,所以写成了这种2层的结构,把他们对应到主模块m里面。
 
 但是象上面这样写,系统提示,多驱动错误,即m1,m2,m3中的cs,we 和dout 信号都同时对应到了,主模块中的 cs, we, dout信号。
 
 修改了一下,分别取了不同的名字,但向下就不知道怎么操作了,
 
 M1(   .m1_clk(clk),
 .m1_rst(rst),
 .m1_cs(cs_1),
 .m1_we(we_1)
 .m1_dout(dout_1)
 );
 
 M2(   .m2_clk(clk),
 .m2_rst(rst),
 .m2_cs(cs_2),
 .m2_we(we_2)
 .m2_dout(dout_2)
 );
 
 M3(   .m3_clk(clk),
 .m3_rst(rst),
 .m3_cs(cs_3),
 .m3_we(we_3)
 .m3_dout(dout_3)
 );
 
 请高人指点,不胜感激
 | 
 |