/* this module takes a 16 hex digits and 
 converts them to the ascii equivalent for the LCD 
 16 hex = 64 bits 
 1 hex = 8bit ascii 
 16 hex = 128 bit total (ascii) 
 */ 
module hex_to_ascii(in,out); 
   input wire [63:0] in; 
   output wire [127:0] out; 

   wire [7:0]            lut[15:0]; 

   assign lut[0]=8'h30;    	// ascii 0 
   assign lut[1]=8'h31;     //  ascii 1
   assign lut[2]=8'h32;    	// ascii 2 
   assign lut[3]=8'h33;    	// ascii 3 
   assign lut[4]=8'h34;    	// ascii 4 
   assign lut[5]=8'h35;    	// ascii 5 
   assign lut[6]=8'h36;    	// ascii 6 
   assign lut[7]=8'h37;    	// ascii 7 
   assign lut[8]=8'h38;    	// ascii 8 
   assign lut[9]=8'h39;    	// ascii 9 
   assign lut[10]=8'h41;    //  ascii A
   assign lut[11]=8'h42;     //  ascii B
   assign lut[12]=8'h43;    //  ascii C
   assign lut[13]=8'h44;    //  ascii D
   assign lut[14]=8'h45;    //  ascii E
   assign lut[15]=8'h46;    //  ascii F


   assign out = {lut[in[63:60]],lut[in[59:56]],lut[in[55:52]],lut[in[51:48]], 
    	 lut[in[47:44]],lut[in[43:40]],lut[in[39:36]],lut[in[35:32]], 
    	 lut[in[31:28]],lut[in[27:24]],lut[in[23:20]],lut[in[19:16]], 
    	 lut[in[15:12]],lut[in[11:8]],lut[in[7:4]],lut[in[3:0]]}; 


endmodule //  hex_to_ascii