芋头 发表于 2014-8-10 22:07:39

用quartusII编程3-8译码器,时序仿真出错,类似延迟,求指教

代码如下:
// decoder 3 to 8 decoder with an enable control;
module decoder ( y , en , a );
output [ 7:0 ] y;   // 八位输出
input en;    // 使能端
input [ 2:0 ] a;   // 三位地址端

reg [ 7:0 ] y;
always @ ( en or a )
         if ( en )
               case ( a )
                         3'b000 : y = 8'b1111_1110;
                         3'b001 : y = 8'b1111_1101;
                         3'b010 : y = 8'b1111_1011;
                         3'b011 : y = 8'b1111_0111;
                         3'b100 : y = 8'b1110_1111;
                         3'b101 : y = 8'b1101_1111;
                         3'b110 : y = 8'b1011_1111;
                         3'b111 : y = 8'b0111_1111;
                         default : y = 8'b1111_1111;
               endcase
         else
               y = 8'b1111_1111;
         
endmodule // end of decoder;

产生的波形文件见下图。
本来应该是,en=1,a=000的时候,输出y=1111_1110;结果y=1111_1110却跑到a=001的时候去了。。。。。
本人小白,刚学verilog hdl,写一个3-8译码器就出错了,还望各位大哥大姐多多指教!
页: [1]
查看完整版本: 用quartusII编程3-8译码器,时序仿真出错,类似延迟,求指教