顶层模块的信号问题

现在有一个问题:
顶层top模块中调用的几个模块aa.v,bb.v,cc.v都要输出一个状态变量state[7:0]
dd.v需要用到全部的三个模块的输出state[7:0],但是如果直接将三个模块式输
出接到dd.v的输入上又会产生问题(会多驱动,信号会产生冲突),
不知道我说清楚了没有,希望大牛们给予解答,谢谢!!
我也来说两句 查看全部回复

最新回复

  • huangdao (2008-7-21 18:01:59)

    或者是设计不合理, 或者是你表述不清楚。 这个问题不好回答
    三个的输出 同时控制一个东西 总有个仲裁  不可能同时起作用。
  • shanchao (2008-7-21 22:40:09)

    总有个仲裁  不可能同时起作用
  • sunsibing (2008-7-21 23:03:32)

    如果确实都同时用到,在dd.v中起三个不同的名字就好了,这样就可以同时用了
  • xjtu_zhanglei (2008-7-22 11:15:11)

    确实是设计上有欠缺的地方,但是这三个模块的输出不会同时起作用。从逻辑上讲不会出现冲突的现象。比如前三个模块是初始化模块,建立连接模块,发送数据模块
    每个模块完成一定功能的时候都要输出一个状态位,而这个状态位又控制sram的行为
    这三个模块的状态位不会同时有效,但是他们进入sram控制模块后又必须以一个变量的形式存在……
    我都觉得有些乱了,是不是这样根本不可能?
  • giyim (2008-7-22 11:20:38)

    模块划分问题,你应该设计一个状态机,来控制这四个模块的工作模式,设计专门的controller模块
  • qingchuyu (2008-7-22 11:24:26)

    a simple way to solve it is to use a encoder
    case({state1,state2,state3})beign
         first_case: out=~~~~~;
         second_case: out=~~~~~;
         third_case: out=~~~~~;
         default: out=~~~~~;
    end
    encase
    you can try it
  • qingchuyu (2008-7-22 11:26:10)

    this is a good style  of design
    FSM control the state,and generate this signal!
  • ericwang622 (2008-7-22 11:26:46)

    既然不会同时驱动,那么根据你的工作时序要求,加上选择器不可以吗?
  • xjtu_zhanglei (2008-7-22 11:30:38)

    感谢楼上各位的解答
    写一个控制模块确实是个好办法!
  • coco81925 (2008-7-22 20:40:38)

    4楼说的不对,其实这个问题很好解决,加一个控制器就好,这个控制器主要是实现多选一
  • liuliqiang (2008-7-23 12:42:24)

    楼上说的对,加一个多选一选择器就可以了
  • cryinrain_cug (2008-7-23 13:15:56)

    mux就ok了.
  • dyxing2000 (2008-7-23 13:34:33)

    状态机