集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 2548|回复: 1

关于多驱动源的问题

[复制链接]
wo20092010 发表于 2010-9-6 07:06:47 | 显示全部楼层 |阅读模式
大家好,我是一个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)
         );

请高人指点,不胜感激
njithjw 发表于 2010-9-9 22:24:07 | 显示全部楼层
你这3个模块的输出应该不会同时有效,后面可以做1个MUX进行选择,只选择当前有效的数据输出。
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

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

QQ|小黑屋|手机版|Archiver|集成电路技术分享 ( 京ICP备20003123号-1 )

GMT+8, 2024-5-18 12:59 , Processed in 0.073713 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表