ECEN 449 - Lab Report Lab Number: 1
Introduction
The purpose of this lab was to familiarize ourselves with FPGA design flow using Vivado and
learn how to use the lab equipment. This includes the ZYBO board and the software used in this
lab.
Procedure
The first step of the lab was creating a new project on Vivado to get started with the lab. Next,
we were given a simple function that we ha
...[Show More]
ECEN 449 - Lab Report Lab Number: 1
Introduction
The purpose of this lab was to familiarize ourselves with FPGA design flow using Vivado and
learn how to use the lab equipment. This includes the ZYBO board and the software used in this
lab.
Procedure
The first step of the lab was creating a new project on Vivado to get started with the lab. Next,
we were given a simple function that we had to run that turned on a LED when the
corresponding switch was flipped. After the example, we were instructed to create a 4-bit counter
that has the option to count up or down. The final step of the lab was creating a jackpot game
where all the LED lights turn on when certain conditions are met. The LEDs would turn on in a
certain pattern, and if correct switch was toggled when the correct LED was lit, all the conditions
would be met.
Results:
During the lab we were instructed to create three separate files, counter.v, counter.xdc, and
jackpot.v. The first one, counter.v, was the 4-bit counter that could count up or down. A challenge
I faced coding this counter was regarding the clock divider. I was not too sure how to code a
clock divider and it took several tries to get it right. Overall, the end result was positive, and it
successfully ran on the Zybo board.
Conclusion
In conclusion, this lab taught me the basics of design flow and creating a new project, then
putting said project onto a Zybo board. This lab refreshed my memory on a lot of things, such as
clock dividers and counters. The knowledge and materials of this lab will be used in future labs.
Questions
a. Button 0: K18
Button 1: P16
Button 2: K19
Button 3: Y16
b. Edge detection allows the code to trigger a change at certain times. For example, the
positive or negative edge of a clock cycle. In this lab, the positive edge is used to make
sure the game works. By using the positive edge of the clock cycle as the timing device,
this stops the game from “winning” when the switch is already toggled, and the
sequential LED to that switch is lit
[Show Less]