CE 433 Embedded Devices

Lab2: FPGA Basics
Name: Lucien Verrone
Email: ljverrone@fortlewis.edu

Introduction:

This assignment was an intro into FPGA programming and more experience simulating in Vivado. Tasks included writing code in Vivado modeled off of the code shown in class, creating test benches to simulate in Vivado, and pushing .bit and .bin files for volatile and non-volatile storage.

Task 1:

Task one was to code an AND gate in Vivado along with a test bench. The test bench was then simulated to ensure finctionality before being edited to function on the FPGA board by changing the input ports to writeches and the output port to an onboard LED. The edited code is sythesised into .bit and .bin files before being uploaded to the FPGA board in bitstream format and binary format.
And gate code
And gate simulation
And gate FPGA code
Figure 1: (Left to right) AND gate simulation code, simulation results, FPGA code.



Figure 2: FPGA AND gate demonstration.

Task 2:

Task two was to implement an OR and XOR gate along with test benches and FPGA compatible code, replicating the process in task one.

Or gate code
Or gate simulation
Or gate FPGA code
Figure 3: (Left to right) OR gate simulation code, simulation results, FPGA code.



Figure 4: FPGA OR gate demonstration.

Xor gate code
Xor gate simulation
Xor gate FPGA code
Figure 5: (Left to right) XOR gate simulation code, simulation results, FPGA code.



Figure 6: FPGA XOR gate demonstration.

Task 3:

Task three was to demonstrate the difference between volatile and non-volatile storage on the FPGA board. This was done by loading the AND gate to the non-volatile storage and loading the OR gate to the volatile storage, then switching between the two.



Figure 7: Volatile/non-volatile demonstration.

Discussion:

This assignment was a good introduction to inplementing Vivado code on a FPGA board. This process included augmenting code to be compatable with the FPGA pins and ports. It also included trouble shooting some connection issues I had with the FPGA board. Overall, I feel very prepared to take on coming labs involving the FPGA board and I am excited to see the more complex things the board can do.