mirror of
https://github.com/pConst/basic_verilog.git
synced 2025-01-14 06:42:54 +08:00
53 lines
1.4 KiB
Systemverilog
53 lines
1.4 KiB
Systemverilog
|
//------------------------------------------------------------------------------
|
||
|
// hex2ascii.sv
|
||
|
// published as part of https://github.com/pConst/basic_verilog
|
||
|
// Konstantin Pavlov, pavlovconst@gmail.com
|
||
|
//------------------------------------------------------------------------------
|
||
|
|
||
|
// INFO ------------------------------------------------------------------------
|
||
|
// Converts 8-bit human-readable ASCII char to 4-bit binary nibble
|
||
|
// For example, "F" char becomes 4'b1111, "4" char becomes 4'b0100
|
||
|
//
|
||
|
|
||
|
|
||
|
/* --- INSTANTIATION TEMPLATE BEGIN ---
|
||
|
|
||
|
ascii2hex AH (
|
||
|
.ascii( ),
|
||
|
.hex( )
|
||
|
);
|
||
|
|
||
|
--- INSTANTIATION TEMPLATE END ---*/
|
||
|
|
||
|
|
||
|
module ascii2hex (
|
||
|
input [7:0] ascii,
|
||
|
output [3:0] hex
|
||
|
);
|
||
|
|
||
|
always_comb begin
|
||
|
case( ascii[7:0] )
|
||
|
8'd48 : hex[3:0] = 4'h0;
|
||
|
8'd49 : hex[3:0] = 4'h1;
|
||
|
8'd50 : hex[3:0] = 4'h2;
|
||
|
8'd51 : hex[3:0] = 4'h3;
|
||
|
8'd52 : hex[3:0] = 4'h4;
|
||
|
8'd53 : hex[3:0] = 4'h5;
|
||
|
8'd54 : hex[3:0] = 4'h6;
|
||
|
8'd55 : hex[3:0] = 4'h7;
|
||
|
8'd56 : hex[3:0] = 4'h8;
|
||
|
8'd57 : hex[3:0] = 4'h9;
|
||
|
|
||
|
8'd65, 8'd97 : hex[3:0] = 4'hA; // lowercase and capital letters
|
||
|
8'd66, 8'd98 : hex[3:0] = 4'hB;
|
||
|
8'd67, 8'd99 : hex[3:0] = 4'hC;
|
||
|
8'd68, 8'd100: hex[3:0] = 4'hD;
|
||
|
8'd69, 8'd101: hex[3:0] = 4'hE;
|
||
|
8'd70, 8'd102: hex[3:0] = 4'hF;
|
||
|
|
||
|
default : hex[3:0] = 4'h0;
|
||
|
endcase
|
||
|
|
||
|
endmodule
|
||
|
|