Xilinx ISE环境,三态总线例程描述,两个源程序如下,仿真不对,求大神指教

2019-07-15 20:39发布

这两个模块都是编写的一个4位4通道的三态总线驱动器,编译后RTL图是一样的
第二个模块仿真是没有问题的,输出都是正常的
但,第一个模块从仿真上看,当en 为“00”时输出是正常的,en其余状态时,输出dout均为高阻态
不知道第一个模块的程序有什么问题,小白求指教
//=========================================
module TriBUS4_01(in0, in1, in2, in3, en, dout);
    input [3:0] in0, in1, in2, in3;
         input [1:0] en;
         output [3:0] dout;
         //---------------------------
         reg [3:0] dout;
         //---------------------------
         always @(en, in0)
           begin
                  if(en == 2'b00) dout = in0;
                  else dout = 4'HZ;
                end
        //----------------------------
         always @(en, in1)
           begin
                  if(en == 2'b01) dout = in1;
                  else dout = 4'HZ;
                end               
        //----------------------------
         always @(en, in2)
           begin
                  if(en == 2'b10) dout = in2;
                  else dout = 4'HZ;
                end
        //----------------------------
         always @(en, in3)
           begin
                  if(en == 2'b11) dout = in3;
                  else dout = 4'HZ;
                end
endmodule

//========================================

//========================================

module TriBUS4_02(in0, in1, in2, in3, en, dout);
    input [3:0] in0, in1, in2, in3;
         input [1:0] en;
         output [3:0] dout;
         //---------------------------
    assign dout = (en == 2'b00) ? in0 : 4'hz;
         assign dout = (en == 2'b01) ? in1 : 4'hz;
         assign dout = (en == 2'b10) ? in2 : 4'hz;
         assign dout = (en == 2'b11) ? in3 : 4'hz;
endmodule

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
uglyugly
1楼-- · 2019-07-16 01:07
 精彩回答 2  元偷偷看……
warloc
2楼-- · 2019-07-16 05:30
reg型变量不能够在多个always中赋值,这个问题ISE确实可能不会报错,但会出问题

一周热门 更多>