`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
额,用注释中的写法没有成功,不太清楚原因