is it possible for bcd to ascii module?

Guest #5485876
Rate this post
useful
not useful
1. Ensure that BCD is in range of borders 0...99
2. Per Byte: Byte to Hi/Lo nibble ( shift by 4 and with 0x0F for hi, and 
with 0x0F for lo nibble)
3. Per Nibble: ASCII = nibblevalue + 0x30

See also wiki

ASCII      char 0x30 = '0'
Guest #5486966
Rate this post
useful
not useful
Something like
1
module bcd2ascii #(
2
    parameter N_DIGITS = ...
3
) (
4
    input wire [4*N_DIGITS-1:0] bcd_in,
5
    output reg [8*N_DIGITS-1:0] ascii_out
6
);
7

8
integer i;
9

10
always @ (*) begin
11
    for (i = 0; i < N_DIGITS; i = i + 1) begin
12
        ascii_out[i * 8 +: 8] = 8'h30 + bcd_in[4 * i +: 4];
13
    end
14
end
15

16
endmodule

Could be what you need. It would require some effort on your part to 
adapt this to your needs and make sure that it works. You didn't mention 
language, so I assumed Verilog.

Reply

Please log in before posting.

or

Log in with Google account

Registration is free and takes only a minute.

Register now