Note: You may experience a peculiar problem with HyperTerminal that the MSB of the character changes when you repeatedly press the same key on the keyboard. If this happens to you, here is the fix.
Reconfigure HyperTerm as its settings are causing the problem. When you run HyperTerm you should see "4800 8-N-1" at the bottom of the window, as shown in the red circle in the figure. If it instead says Auto-Detect you need to stop the session by clicking on the Disconnect button (circled in green) and goto the File menu, and Select properties. Click on configure. Ensure that the settings are correct and also make sure that you click the apply button. (If apply is greyed out, make a change then change it back then click apply). Now hit the Connect button and check to see if 4800 8-N-1 comes up.
To create your own design for this project, load the following files into Active-HDL:
Documentation for the LCD module is available here or from the manufacturer's web page.You will need to set the contrast for the LCD screen. For this, we have to apply a voltage at the Vo pin that we can obtain using the voltage divider circuit shown in the figure below. This circuit will generate a voltage for Vo of approximately 1/(1+4) of VCC or .2 of 5 volts or 1 volt. If you look at the LCD screen specs you will find the location of the Vo pin. In your kit we have included a 3.9K ohm resistor and a 1K ohm resistor. You can determine the resistance value of a resistor by the color coded bands on the resistor (see explanation of how the color coded system works and an automated calculator).
Place the PAL into the programmer as close to the lever as possible (shown the in figure below where your PAL fits into the red box.)
NOTE the location of PIN 1. This means the notch on top of the PAL must be place opposite from the lever.
Programming Steps
If ANY of these steps fail try your other PAL. Contact the course staff to help you deal with failures in these steps.
Please be careful with the programmers. Take the time to ensure that you are putting the chip in correctly and that you are following the steps correctly. Refer back to the tutorial for further details.
Creating a wiring file for your PAL
To create a wiring file for your PAL you need to create your own CTL file. Refer back to laboratory assignment 7 for an example on proper syntax. Essentially you are creating an attribute by concatenating the various wiring assignments ending the attribute with a semicolon. One important thing to note is that the following 4 items should have the exact same name or you control file might not work.
The sender module of the project schematic is implemented by the PC and the serial_buffer module is already loaded into the FPGA (see schematic). We'll need LEDs connected to the "received" and "charRcvd" outputs of the FPGA ("received" is already connected to LD7, wire O2 to one of the other LEDs) and a switch connected to the "displayed" input of the FPGA (O3). The system already has a reset, use push-button BTN1 to indicate a reset. The LD6 output of the FPGA makes reset available after it is synchronized and debounced so that you can use it in the rest of your circuit (it is also connected to LD6 for easy viewing). Power-up the board and start HyperTerminal on the PC. Send a character over the RS232 cable with HyperTerminal by typing a character on the PC keyboard. (Make sure to configure HyperTerminal correctly by following the instructions above.) You should see the "received" LED light up after you type a character on the keyboard. What is the value of charRcvd? Shift out the character one bit at a time by using BTN4. You'll want to look for a start bit followed by the 8-bit ASCII code of the character and then a stop bit. Did you see the code for your character delivered serially on "charRcvd"?
Verify the operation of your circuit a piece at a time. Compare against your simulation waveforms as you single step. Demonstrate it to the TAs by sending a few characters to the display. Also, demonstrate any extra credit commands you may have implemented.