case恒输出0的一个BUG

时间:2021-08-17 20:34:32   收藏:0   阅读:12

module encoder8_3(
input wire clk,
input wire rst_n,
input wire [ 7:0] x,
output reg [ 3:0] y
);

// always @(x) begin
// case (x)
// 8‘b0000_0001 : y = 3‘b000; // 当 x=16‘b00000001, 则 y 输出为 3‘b000
// 8‘b0000_0010 : y = 3‘b001; // 当 x=16‘b00000010, 则 y 输出为 3‘b001
// 8‘b0000_0100 : y = 3‘b010; // 当 x=16‘b00000100, 则 y 输出为 3‘b010
// 8‘b0000_1000 : y = 3‘b011; // 当 x=16‘b00001000, 则 y 输出为 3‘b011
// 8‘b0001_0000 : y = 3‘b100; // 当 x=16‘b00010000, 则 y 输出为 3‘b100
// 8‘b0010_0000 : y = 3‘b101; // 当 x=16‘b00100000, 则 y 输出为 3‘b101
// 8‘b0100_0000 : y = 3‘b110; // 当 x=16‘b01000000, 则 y 输出为 3‘b110
// 8‘b1000_0000 : y = 3‘b111; // 当 x=16‘b10000000, 则 y 输出为 3‘b111
// default: y = 3‘b000;
// endcase
// end

当x的位宽定义为非7的时候,Y恒定输出0,因为x总是满足default的条件。

原文:https://www.cnblogs.com/wuyishaner/p/15153291.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!