module encode_83 ( input wire[7:0] x, output reg[2:0] y, output reg e ); integer i; integer j=0; always @(*) begin //*** for (i=0;i<8;i=i+1) begin if (x[i]==1) y<=i; else j=j+1; end if (j==8) e<=1; else e<=0; end endmodulemodule encode83_tb; reg[7:0] x; wire [2:0] y; wire e; encode_83 E(.x(x), .y(y), .e(e) ); initial begin x=8'b00000000;#100; x=8'b00000001;#100; x=8'b00000010;#100; x=8'b00000100;#100; x=8'b00001000;#100; x=8'b00010000;#100; x=8'b00100000;#100; x=8'b01000000;#100; x=8'b10000000;#100; end endmodule