Problem:
In this problem you will be writing your name on the LCD display which is mounted on the header above X1 on the BORG board. You will use the Xilinx Foundation Series Project Manager to enter and simulate your design and SIS/eqn2xnf to enter the instruction logic.
The LCD can display two lines of 16 characters.
Operation RS R/W DB7...DB0 Clear Display 0 0 0000 0001 Function Set 0 0 0011 00** Display ON 0 0 0000 1100 Entry Mode Set 0 0 0000 0110 Write Character 1 0 DDDD DDDD Backspace 0 0 0001 00** Return Home 0 0 0000 001* Read Character 1 1 DDDD DDDD(This is enough info to do the project but if you want to know more you can consult the company's Application Notes. App Notes). The timing constraints that must be satisfied when writing information to the display are a little complicated. Basically, the display samples the RS line on the rising edge of the enable signal (E) and the DB lines on the falling edge of E. To keep things simple, the set up and hold time for RS should be one cycle before and after the rising edge of E, respectively: similarly for the DB lines and the falling edge of E.
Since you don't need to perform read operations for this problem, the R/W control line can be tied directly to GND. For normal character write operations, the RS signal should be 1. To execute a command, the RS signal should be 0. The easiest way to perform a write is by asserting the enable signal (E) for one clock cycle during which RS and data are both stable. So the signals generated by your interface should look like:
The LCD is mounted on the top header of X1 on the BORG board. The pins of the LCA are connected to the LCD pins as follows:
| D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 | E | R/W | RS |
| P9 | P8 | P7 | P6 | P5 | P4 | P3 | P80 | P81 | P78 | P77 |
Design a circuit which will issue the 4 initialization instructions above and then 12 instructions to write the first 12 characters of your name (if your name is too short or too long use some variation to make it between 10-12 characters long).
The built-in reset GSR should be used to activate your machine. Remember to add the STARTUP symbol in your top level schematic and connect the BORG's reset switch (via P10) to the STARTUP's GSR pin thru an inverter.
You will be using the BORG clock which is already connected to pin 13. Remember to connect your clock (after the BUFGP) to the STARTUP's CLK pin. The 8MHz or 20MHz clock on the BORG is too fast for the LCD. You will need to make sure your state machine does not cycle through the instructions too quickly.
Since you are issuing 16 9-bit instuctions to the LCD, your design should have a combinational logic block which decodes the 16 instructions from 4 bits. Use a pla file to describe this logic and the SIS/eqn2xnf tools to translate the pla file into a macro that can be included in a schematic. To do this follow the directions in
You must show me your working circuit by the due date.
You should submit: