CE433 Embedded Systems
Tutorial 1: Verilog and FPGA Basics
Name: Audra Benally
Email: albenally1@fortlewis.edu
1. Title: Verilog and FPGA Basics
2. Introduction: This was the first tutorial of the semester and
goes over the basics of verilog and vivado. This tutorial goes over the
gvim commands for creating a .v file module and testbench. Vivado use
and simulations are also covered in this tutorial.
3. Materials and Methods:
Materials:
- Computer
- Vivado Software
- GVim Software
Methods:
This tutorial was an
introduction to verilog. We were tasked with running simulations for
sections 2.1, 2.2, and 2.3 without knowing what the testbench looked
like. Then we copied the example in 2.4 and created a testbench to show
the difference between blocking and nonblocking methods. Task 3 was to
repeat the simulation in 2.5 in vivado. Task 4 was also the simulation
in 2.5 but with the delay in out1t instead of out2t. This task also
asked we hand draw the simulation in the same format as the given
graph. Finally, task 5 was replicating the example in 2.6.
4. Results:
Task 1: Use gvim and vivado to simulate 2.1, 2.2, and 2.3
Figure 1. Behavioral model files and simulation.
Figure 2.
Structural modeling method testbench and simulation results.
Figure 3. Dataflow modeling method.
Task 2: Run a simulation to show the difference of blocking and non-blocking (2.4)
Figure 4. Results from the blocking / nonblocking simulation.
Task 3: Repeat the simulation example in 2.5
Figure 5. Simulation from the example in part 2.5
Task 4: Run the same 2.5 simulation with the 20ns delay in line 24.
Figure 6.
Simulation with the "#20" delay in output 1 instead of output 2.
Figure 7. Hand drawn results of the simulation.
Task 5: Repeat the example in 2.6
Figure 8.
Simulation results from the example in section 2.6.
5. Discussion
For this tutorial, I thought it was very interesting learning and
practicing vim commands in the gvim editor. I had trouble trying to
figure out the testbenches for the first tasks but after awhile the
files made more sense to me. In the dataflow modeling method I could
not figure out why the simulation stopped at 400ns while all the others
continued on to 700ns. For task 2, I had trouble figuring out how to
attach the components and I think that may be why my simulation did not
turn out well. I'm also unsure if I wrote a workable testbench for task
2 as well. Tasks 3, 4, and 5 were very straightforward. I started with
those first when working with vivado to get the hang of the program. I
had troubles figuring out how the simulation process worked but I think
I was able to understand it eventually. Overall, very fun and I'm
excited to work with the FPGA board.