Introduction: Basys 3 Morse Decoder
This is a project for a college class. This project is written in VHDL in a program called Vivado. The tasks to create all the modules necessary to implement a Morse Decoder using the Basys 3 board. The board is used to take in morse code from a switch and it will display the letter on the seven segment display.
To do a Dot - turn the switch on and off without waiting
To do a Dash - turn the switch on for 2 second, then turn it off
Step 1: Install Xilinx Vivado Webpack
The Vivado webpack can be downloaded at xilinx.com. Use this getting started guide to walk through the download and installation steps.
Step 2: Create a New Project
- Open vivado. Then Click “Create New Project”
- Click “Next”. Name the the project and choose the project location. Our project name was MorseDecoder and was stored on a USB drive.
- Choose RTL Project.
- Click “Next”.
- Click “Next” to bypass AddSources
- Click “Next” to bypass Add Existing Ip
- Click “Next” to bypass Add Constraints Choose your board based on the picture provided.
- Click “Next”
- Click “Finish”
Step 3: Create Dot/Dash Input Module
This module tracks when the button is pressed, and how long it is pressed and translates it into Morse code.
- Go to the Sources window, Right Click, and click “Add Sources”
- Select “Add or Create Design source”
- Click “Create File”
- Change the file type to “VHDL”
- Name your file (ours is named DD ) and click “OK”
- Click “Finish”
- Click “OK” to bypass the “Define Module” window
- Copy and Paste our provided code with Comments
Step 4: Create Seven Segment Display Output Module
This Module is in charge of changing the morse code into the correct letter in a bitstream form that the seven segment display can actually display.
- Follow the instructions in Step 3 again, but this time, copy in the “SSD” file.
Step 5: Create the Top Module
This is the overarching Module that will take in the Morse Code input and Output the letter on the seven segment display.
- Follow the instructions in Step 3 yet again, this time copying in the “MorseDecoder” file.
Attachments
Step 6: Create the Constraints File
We need to select the physical hardware to use on the basys board. This will include using the seven segment display, as well as using a switch to pass in the Morse Code.
- Click in the source window and select “Add Sources” again.
- Select “Add or Create Constraints”, then click next.
- Click “Create File”, and leave the filetype unchanged. Name the file “MorseDecoder”.
- Click “Finish”.
- Copy and Paste our provided code with Comments.
Attachments
Step 7: Synthesize the Design
- Go to the Flow Navigator and click “Run Synthesis” in the Synthesis section
Step 8: Implement the Design
Once you have successfully run the synthesis, there will be a pop up window to ask you to run the implementation. Click “OK” to continue. If this window doesn't pop up, follow the instructions below:
- Go to the Flow Navigator and click “Run Implementation” in the Implementation section
Step 9: Generate the Bitstream
- Go to the Flow Navigator and click “Generate Bitstream” in the Program and Debug section
Step 10: Target the Hardware
- Make sure your Basys3 board is plugged into the computer Vivado is being run on. The board should have the microUSB end of a cable plugged in, with the regular USB end of that cable plugged into your computer.
- Go down to “Open Hardware Manager” in the Program and Debug section, then click the small triangle to the left to open it.
- Click the “Open Target” button, and select “Auto Connect”
Step 11: Program the Device
- Select “Hardware Manager”
- Click “Program Device”
- Select the device that pops up
- Click “Program”