c program language Homework

profilemalshaefathirah
lab2.pdf

EECE 343 Lab 2 Fall 2016

Lab 2: Value Display in Hex and Decimal

Prof. Kredo

Due by 23:59 Friday, September 23

Objectives

• Produce a hierarchical design using Verilog submodules • Develop a testbench for a module • Implement a design on the DE2 board

Constraints

Overview

In this lab you will extend the adder you developed in Lab 1 to display the operands and sum on the 7-segment displays of the DE2 board.

Details

As your first steps in using the DE2 board, you will implement the adder you developed in Lab 1 by taking input from switches and displaying the operands and result on 7-segment displays. Your design should be entirely combinational, so as the user toggles the switches the display should change to match.

You are free to use any modeling technique that you determine is appropriate for the design. You may reuse your adder from Lab 1, you may recreate or modify your adder to match the Lab 2 requirements, or you may implement Lab 2 without a separate adder module.

In addition to implementing the adder, you will also develop a testbench for one submodule. A blank project is provided for you on Learn, which includes the top-level module definition. Do not

change the top-level module definition. To open the project for the first time, download the file to your system, open Quartus II, select Restore Archived Project from the Project menu, and select project file in the Archive Name field. After you have restored the project, you can open it through the normal process to open a project.

To help debug your system, the blank project includes a testbench for the top-level module. You can run the simulation by selecting Tools→Run Simulation Tool→RTL Simulation. If the waveform appears correct and you receive a message in the Transcript window (you may have to scroll up) that there are no errors, then your lab likely works correctly.

After your system passes the testbench, you will want to program the design into the DE2. Ensure you create the appropriate pin constraints so your design uses the correct FPGA pins. The DE2 User Manual lists all pinout information for the DE2 board.

Input

The operands to add together will come from the switches on the DE2 board. Each operand will be an 8-bit value with SW[16:9] producing one operand and SW[7:0] producing the other operand. SW[8] and SW[17] will not be used.

EECE 343 Lab 2 Fall 2016

7-Segment Display

Use the following representations for values displayed on the 7-segment displays. While there are other valid representations, the testbench provided to you expects these formats. Note that 1 should appear on the right vertical segments.

_ _ _ _ _ _ _ _ _ _ _ _

| | | _| _| |_| |_ |_ | |_| |_| |_| |_ | _| |_ |_

|_| | |_ _| | _| |_| | |_| _| | | |_| |_ |_| |_ |

Operand Display

The operands should be displayed to the user on the 7-segment displays HEX7 through HEX4 in hexadecimal. The operand specified by SW[16:9] should be displayed on HEX7 and HEX6, with HEX7 the more significant digit. Similarly, the operand from SW[7:0] should be displayed on HEX5 and HEX4, with HEX5 the more significant digit.

Result Display

The result of the addition should be displayed on the 7-segment displays HEX3 through HEX0 in decimal. HEX3 is the most significant digit and HEX0 is the least significant digit. In order to display the result in decimal, you will need a BCD converter. A BCD converter appropriate for this lab is provided for you to use. Since your operands are each of 8 bits, your result must be of 9 bits to account for the carry that might occur.

Testbench

Testbenches provide a powerful mechanism for testing module functionality. Your task is to create a testbench for the BCD converter module provided to you. Your testbench should provide an exhaustive (all possible inputs) test of the BCD converter and display useful messages. You are encouraged, but not required, to create testbenches for other modules as well.

Name your testbench for the BCD converter bcd_converter_tb. Create a Test Bench entry in your project for the BCD converter testbench that you create.

When creating your BCD converter testbench, remember that Verilog has many useful mathematical operators, such as modulus.

Grading

The lab will be graded based on the following point distribution. Partial credit may be given as appropriate.

• 40 points: Operands display correctly • 40 points: Result display correctly • 20 points: BCD converter testbench

Submission

Submit your lab as a project archive (qar file). Select Archive Project from the Project menu, ensure the archive name and location is appropriate, and press the Archive button. Submit the archive file to Learn. It is your responsibility to ensure the archive file is correct, so you may want to restore the archived project you submit in a new location to verify what you submit.