is it possible for bcd to ascii module? if so, can you help me where to start?
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'
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.
John B. wrote: > is it possible for bcd to ascii module? Yes, it is possible. John B. wrote: > if so, can you help me where to start? a) convert 4 bit BCD to binary (easy: use a table) b) convert binary to ASCII digit (easy: add 0x30) Repeat for every digit.
what does this statement mean =(" parameter N_DIGITS = ...") Can you please explain, it's a bit of an emergency
What about Google like "verilog parameter"? Within seconds you find the explanation: http://www.asic-world.com/verilog/para_modules1.html
Harry wrote: > can anyone help me to wrie a multichannnel UART verilog code? Start a new thread for an new question! Provide something with a particular problem. No one will do your entire homework. Define more precisely what you mean with "multichannel UART".
Please log in before posting. Registration is free and takes only a minute.
Existing account
Do you have a Google/GoogleMail account? No registration required!
Log in with Google account
Log in with Google account
No account? Register here.