`timescale 1ns/1ns module encoder_83( input [7:0] I , input EI , output [2:0] Y , output GS , output EO ); assign GS=(EI == 0 || (EI == 1 && I == 0)) ? 1'b0 : 1'b1; assign EO=(EI==1 && I==0) ? 1 :0; assign Y = ((EI == 0) || (EI == 1 && I == 0)) ? 3'b000 :(EI && I[7]) ? 3'b111 :(EI && I[6]) ? 3'b110 :(EI && I[5]) ? 3'b101 :(EI && I[4]) ? 3'b100 :(EI && I[3]) ? 3'b011 :(EI && I[2]) ? 3'b010 :(EI && I[1]) ? 3'b001 : 3'b000; endmodule
EI是标志按下还是没按下的标志信号
重点是Y的优先级比较写法