Continue to Site

Welcome to

Welcome to our site! is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

need help with verilog coding a morse code to ascii decoder


May 28, 2024
Reaction score
Trophy points
Activity points
have an homework about a decoder The unit receives short and long press signals and converts it to alphabet. The letters of the alphabet is output as 8-bit 8 ASCII numbers.
I made a project to do the same thing running in BASIC on my Commodore VIC20 & C64. Morse broadcast could be heard only on my BFO-capable short-wave radio. I made a circuit to feed it to one pin of the game port.

This project touches on several elements. Can you tell us which aspects of the project you have made progress in?

Do you intend to press a key imitating dots & dashes? Or do you have the capability to feed audio into your programmable unit? In modern days you might find recorded morse signals on the internet.

It's convenient to start the program by building an array of alphabetical characters via binary patterns. decimal numbers in the form of

Each dot or dash only lasts a few milliseconds. Set a cut-off time to distinguish a dot from a dash. Whenever a tone begins start a timer. When a tone ends read the timer to tell you whether to append a '0' or a '1'. Your aim is to build a binary number.

If you hear silence for half a second then end the build, convert binary to decimal, locate its array value and print the character which is stored at that array position. Or convert it to ASCII.
1. for the Mods - This thread needs to be under the ASIC or FPGA forum.
2. For the OP - show us what you have done or tried to do! In this forum we do not just give out solutions. Show us/tell us the problem you are facing.
It is in the FPGA forum.

I have never done it and I confess to not being an expert in FPGA design, the last I did was about 10 years ago!
However, my approach would be to (assuming it is on/off keying and not needing a tone decoder) make a long shift register, long enough to hold a bit for each 'on' and 'off' and an additional 5 'off' bits. Shift the Morse in at one end and pattern match for 5 'off's, that being the gap between characters. Use the next 'on' as the start of data marker and then decode all the bits until the next successive 5 'off's are detected. Standard Morse timing is one bit length for a dot '.', 3 for a dash '-' and 5 for the gap between characters.


LaTeX Commands Quick-Menu:

Part and Inventory Search

Welcome to