module encoder128(datain,dataout); input [127:0] datain; output [6:0] dataout; reg [6:0] dataout; always @(datain) begin case (datain) 128'h00000000000000000000000000000001 : dataout<=7'b0000000; 128'h00000000000000000000000000000002 : dataout<=7'b0000001; 128'h00000000000000000000000000000004 : dataout<=7'b0000010; 128'h00000000000000000000000000000008 : dataout<=7'b0000011; 128'h00000000000000000000000000000010 : dataout<=7'b0000100; 128'h00000000000000000000000000000020 : dataout<=7'b0000101; 128'h00000000000000000000000000000040 : dataout<=7'b0000110; 128'h00000000000000000000000000000080 : dataout<=7'b0000111; 128'h00000000000000000000000000000100 : dataout<=7'b0001000; 128'h00000000000000000000000000000200 : dataout<=7'b0001001; 128'h00000000000000000000000000000400 : dataout<=7'b0001010; 128'h00000000000000000000000000000800 : dataout<=7'b0001011; 128'h00000000000000000000000000001000 : dataout<=7'b0001000; 128'h00000000000000000000000000002000 : dataout<=7'b0001101; 128'h00000000000000000000000000004000 : dataout<=7'b0001110; 128'h00000000000000000000000000008000 : dataout<=7'b0001111; 128'h00000000000000000000000000010000 : dataout<=7'b0010000; 128'h00000000000000000000000000020000 : dataout<=7'b0010001; 128'h00000000000000000000000000040000 : dataout<=7'b0010010; 128'h00000000000000000000000000080000 : dataout<=7'b0010011; 128'h00000000000000000000000000100000 : dataout<=7'b0010100; 128'h00000000000000000000000000200000 : dataout<=7'b0010101; 128'h00000000000000000000000000400000 : dataout<=7'b0010110; 128'h00000000000000000000000000800000 : dataout<=7'b0010111; 128'h00000000000000000000000001000000 : dataout<=7'b0011000; 128'h00000000000000000000000002000000 : dataout<=7'b0011001; 128'h00000000000000000000000004000000 : dataout<=7'b0011010; 128'h00000000000000000000000008000000 : dataout<=7'b0011011; 128'h00000000000000000000000010000000 : dataout<=7'b0011000; 128'h00000000000000000000000020000000 : dataout<=7'b0011101; 128'h00000000000000000000000040000000 : dataout<=7'b0011110; 128'h00000000000000000000000080000000 : dataout<=7'b0011111; 128'h00000000000000000000000100000000 : dataout<=7'b0100000; 128'h00000000000000000000000200000000 : dataout<=7'b0100001; 128'h00000000000000000000000400000000 : dataout<=7'b0100010; 128'h00000000000000000000000800000000 : dataout<=7'b0100011; 128'h00000000000000000000001000000000 : dataout<=7'b0100100; 128'h00000000000000000000002000000000 : dataout<=7'b0100101; 128'h00000000000000000000004000000000 : dataout<=7'b0100110; 128'h00000000000000000000008000000000 : dataout<=7'b0100111; 128'h00000000000000000000010000000000 : dataout<=7'b0101000; 128'h00000000000000000000020000000000 : dataout<=7'b0101001; 128'h00000000000000000000040000000000 : dataout<=7'b0101010; 128'h00000000000000000000080000000000 : dataout<=7'b0101011; 128'h00000000000000000000100000000000 : dataout<=7'b0101000; 128'h00000000000000000000200000000000 : dataout<=7'b0101101; 128'h00000000000000000000400000000000 : dataout<=7'b0101110; 128'h00000000000000000000800000000000 : dataout<=7'b0101111; 128'h00000000000000000001000000000000 : dataout<=7'b0110000; 128'h00000000000000000002000000000000 : dataout<=7'b0110001; 128'h00000000000000000004000000000000 : dataout<=7'b0110010; 128'h00000000000000000008000000000000 : dataout<=7'b0110011; 128'h00000000000000000010000000000000 : dataout<=7'b0110100; 128'h00000000000000000020000000000000 : dataout<=7'b0110101; 128'h00000000000000000040000000000000 : dataout<=7'b0110110; 128'h00000000000000000080000000000000 : dataout<=7'b0110111; 128'h00000000000000000100000000000000 : dataout<=7'b0111000; 128'h00000000000000000200000000000000 : dataout<=7'b0111001; 128'h00000000000000000400000000000000 : dataout<=7'b0111010; 128'h00000000000000000800000000000000 : dataout<=7'b0111011; 128'h00000000000000001000000000000000 : dataout<=7'b0111000; 128'h00000000000000002000000000000000 : dataout<=7'b0111101; 128'h00000000000000004000000000000000 : dataout<=7'b0111110; 128'h00000000000000008000000000000000 : dataout<=7'b0111111; 128'h00000000000000010000000000000000 : dataout<=7'b1000000; 128'h00000000000000020000000000000000 : dataout<=7'b1000001; 128'h00000000000000040000000000000000 : dataout<=7'b1000010; 128'h00000000000000080000000000000000 : dataout<=7'b1000011; 128'h00000000000000100000000000000000 : dataout<=7'b1000100; 128'h00000000000000200000000000000000 : dataout<=7'b1000101; 128'h00000000000000400000000000000000 : dataout<=7'b1000110; 128'h00000000000000800000000000000000 : dataout<=7'b1000111; 128'h00000000000001000000000000000000 : dataout<=7'b1001000; 128'h00000000000002000000000000000000 : dataout<=7'b1001001; 128'h00000000000004000000000000000000 : dataout<=7'b1001010; 128'h00000000000008000000000000000000 : dataout<=7'b1001011; 128'h00000000000010000000000000000000 : dataout<=7'b1001000; 128'h00000000000020000000000000000000 : dataout<=7'b1001101; 128'h00000000000040000000000000000000 : dataout<=7'b1001110; 128'h00000000000080000000000000000000 : dataout<=7'b1001111; 128'h00000000000100000000000000000000 : dataout<=7'b1010000; 128'h00000000000200000000000000000000 : dataout<=7'b1010001; 128'h00000000000400000000000000000000 : dataout<=7'b1010010; 128'h00000000000800000000000000000000 : dataout<=7'b1010011; 128'h00000000001000000000000000000000 : dataout<=7'b1010100; 128'h00000000002000000000000000000000 : dataout<=7'b1010101; 128'h00000000004000000000000000000000 : dataout<=7'b1010110; 128'h00000000008000000000000000000000 : dataout<=7'b1010111; 128'h00000000010000000000000000000000 : dataout<=7'b1011000; 128'h00000000020000000000000000000000 : dataout<=7'b1011001; 128'h00000000040000000000000000000000 : dataout<=7'b1011010; 128'h00000000080000000000000000000000 : dataout<=7'b1011011; 128'h00000000100000000000000000000000 : dataout<=7'b1011000; 128'h00000000200000000000000000000000 : dataout<=7'b1011101; 128'h00000000400000000000000000000000 : dataout<=7'b1011110; 128'h00000000800000000000000000000000 : dataout<=7'b1011111; 128'h00000001000000000000000000000000 : dataout<=7'b1100000; 128'h00000002000000000000000000000000 : dataout<=7'b1100001; 128'h00000004000000000000000000000000 : dataout<=7'b1100010; 128'h00000008000000000000000000000000 : dataout<=7'b1100011; 128'h00000010000000000000000000000000 : dataout<=7'b1100100; 128'h00000020000000000000000000000000 : dataout<=7'b1100101; 128'h00000040000000000000000000000000 : dataout<=7'b1100110; 128'h00000080000000000000000000000000 : dataout<=7'b1100111; 128'h00000100000000000000000000000000 : dataout<=7'b1101000; 128'h00000200000000000000000000000000 : dataout<=7'b1101001; 128'h00000400000000000000000000000000 : dataout<=7'b1101010; 128'h00000800000000000000000000000000 : dataout<=7'b1101011; 128'h00001000000000000000000000000000 : dataout<=7'b1101000; 128'h00002000000000000000000000000000 : dataout<=7'b1101101; 128'h00004000000000000000000000000000 : dataout<=7'b1101110; 128'h00008000000000000000000000000000 : dataout<=7'b1101111; 128'h00010000000000000000000000000000 : dataout<=7'b1110000; 128'h00020000000000000000000000000000 : dataout<=7'b1110001; 128'h00040000000000000000000000000000 : dataout<=7'b1110010; 128'h00080000000000000000000000000000 : dataout<=7'b1110011; 128'h00100000000000000000000000000000 : dataout<=7'b1110100; 128'h00200000000000000000000000000000 : dataout<=7'b1110101; 128'h00400000000000000000000000000000 : dataout<=7'b1110110; 128'h00800000000000000000000000000000 : dataout<=7'b1110111; 128'h01000000000000000000000000000000 : dataout<=7'b1111000; 128'h02000000000000000000000000000000 : dataout<=7'b1111001; 128'h04000000000000000000000000000000 : dataout<=7'b1111010; 128'h08000000000000000000000000000000 : dataout<=7'b1111011; 128'h10000000000000000000000000000000 : dataout<=7'b1111000; 128'h20000000000000000000000000000000 : dataout<=7'b1111101; 128'h40000000000000000000000000000000 : dataout<=7'b1111110; 128'h80000000000000000000000000000000 : dataout<=7'b1111111; default: dataout<=7'b0000000; endcase end endmodule