`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