`timescale 1ns/1ns module encoder_83( input [7:0] I , input EI , output wire [2:0] Y , output wire GS , output wire EO ); wire [8:0] temp; reg gs ,eo; reg [2:0] y; assign temp={EI,I[7:0]}; always @(*) begin casex(temp) 9'b0_????_????:begin y=3'B000;gs=1'b0;eo=1'b0; end 9'b1_0000_0000:begin y=3'B000;gs=1'b0;eo=1'b1; end 9'b1_1???_????:begin y=3'B111;gs=1'b1;eo=1'b0; end 9'b1_01??_????:begin y=3'B110;gs=1'b1;eo=1'b0; end 9'b1_001?_????:begin y=3'B101;gs=1'b1;eo=1'b0; end 9'b1_0001_????:begin y=3'B100;gs=1'b1;eo=1'b0; end 9'b1_0000_1???:begin y=3'B011;gs=1'b1;eo=1'b0; end 9'b1_0000_01??:begin y=3'B010;gs=1'b1;eo=1'b0; end 9'b1_0000_001?:begin y=3'B001;gs=1'b1;eo=1'b0; end 9'b1_0000_0001:begin y=3'B000;gs=1'b1;eo=1'b0; end endcase end assign Y=y; assign GS=gs; assign EO=eo; endmodule