Goal: implement simple circuits in Verilog; download and run a sample circuit on the labkit.
Useful links
Exercise 1: Writing Verilog code
In this exercise you'll design a Verilog module that implements a 74LS163. Here are the steps:
# Starting test of LS163... # clear was asserted low, but counter didn't clear # out = xxxx, expected 0000 # Break at lab2_1.v line 48
These messages were generated by code inside the test module as it runs through various tests of the LS163 module. The LS163 module supplied in lab2_1.v is empty which is why the test failed. Your job is to fill in the body for the LS163 module, implementing the correct functionality. Refer to the 74LS163 datasheet to see what functionality your code needs to implement.
You can use the editor of your choice to edit lab2_1.v appropriately; Modelsim has a simple built-in editor which should be displaying lab2_1.v after you completed step 8. As you edit lab2_1.v, repeat steps 6 through 8 above to test your code. When you're successful you'll see
# Starting test of LS163... # Finished test of LS163...
Exercise 2: Compiling and running Verilog on the labkit
In this exercise you'll design a Verilog module that reads a 4-bit value from labkit's switches and displays the appropriate hex digit on a 7-segment display.
The labkit module (defined in labkit.v) has port declarations for all the labkit peripherals as well as supplying default values for all the output ports. This is the top-level module for all labkit projects -- you should make a copy of it using a meaningful file name (eg, lab2_2.v) and modify the copy to implement the circuitry for your project. labkit.ucf (which you'll never need to modify) specifies which FPGA pin is connected to which named port in labkit.v.
Compute the appropriate value for each of segment control signals and drive them onto the appropriate FPGA output pins (I used user1[7:0]). Note that you'll have modify or comment-out the existing line in the code that sets a default value for the output pins you're using.
Synthesize and implement your design. Generate a programming file and configure the FPGA. When your circuit is working, ask a staff member to check you off. For checkoff be prepared to show your circuit in operation, displaying different digits as the switches are turned on and off.