FPGA Lab 1 and 2


These labs covered the basics of implementing digital circuitry using a field-programmable gate array (FPGA). We reviewed how one builds the program in Quartus and compiles it onto the FPGA. We also reviewed how one can constructs complex circuits very easily in Quartus and show the result using a 7-segment display. This lab was very helpful in providing the necessary building blocks for future projects involving FPGAs as it showed how one can encode the necessary logic to execute a desired task.


Lab 1 briefly introduced the FPGAs we will be using for the rest of the quarter. We started off by hooked up a few LEDs to switches to see that they worked as intended. When using these DIP switches, the ON position corresponded to the LED being off because we drove the LEDs with an inverter by changing the settings. Afterwards, I implemented more complicated logic using the predefined gates in Quartus. I then compiled and loaded the circuit onto the FPGA and verified that the board performed as intended by activating the switches located on the FPGA.

Lab 2 covered two different aspects of digital circuitry: 7-segment displays and more complex gates or blocks. I began by looking at the display logic for the displays and verified it worked by activating the switches to send hexideicaml numbers to the displays to show. I then implemented a circuit to display gray code which was much faster to test since I only have to flip one at a time. Afterwards, I hooked up a few inputs to a previously defiend submodule to display the sum of two hexidecimal numbers on the display. Then, I implemented my own submodule which squared a hexidecimal number and displayed it on an array of 7-segment displays. Finally, I used Quartus’s Megafunction Wizard to make a submodule that would divide a number by ten. Using 8 of them, I was able to display the circuit designed in the previous part in decimal which was much easier to debug. This lab was extremely useful in providing examples that demonstrate the necssary steps to construct more complicated circuits and provide more complicated feedback than an LED indicator.


Lab 1

Section 1.1 covered how one attaches a sepcific DIP switch on the FPGA to a red LED located on the same board. This was acheived by dragged a connection between the