`timescale 1ns/1ns
module encoder_0(
input [8:0] I_n ,
output reg [3:0] Y_n
);
always@(*)begin
// if(!I_n)begin
// Y_n=0;
// end
// else begin
// Y_n=(I_n[8]=1)?(Y_n=4'b1001)
// :((I_n[7]=1)?(Y_n=4'b1000)
// :((I_n[6]=1)?(Y_n=4'b0111)
// :((I_n[5]=1)?(Y_n=4'b0110)
// :((I_n[4]=1)?(Y_n=4'b0101)
// :((I_n[3]=1)?(Y_n=4'b0100)
// :((I_n[2]=1)?(Y_n=4'b0011)
// :((I_n[1]=1)?(Y_n=4'b0010)
// :((I_n[0]=1)?(Y_n=4'b0001)))))))))
// end // 运行的不成功,不太清楚问题出在哪
casex(I_n)
9'b1_1111_1111:Y_n=4'b1111;
9'b0_xxxx_xxxx:Y_n=4'b0110;
9'b1_0xxx_xxxx:Y_n=4'b0111;
9'b1_10xx_xxxx:Y_n=4'b1000;
9'b1_110x_xxxx:Y_n=4'b1001;
9'b1_1110_xxxx:Y_n=4'b1010;
9'b1_1111_0xxx:Y_n=4'b1011;
9'b1_1111_10xx:Y_n=4'b1100;
9'b1_1111_110x:Y_n=4'b1101;
9'b1_1111_1110:Y_n=4'b1110;
9'b1_1111_1111:Y_n=4'b1111;
endcase
end
endmodule
额,用注释中的写法没有成功,不太清楚原因

京公网安备 11010502036488号