VHDL Assignment

whdydwns
Assignment2.pdf

CKRE110 Assignment 2:

Complex Combinational Logic

Assignment Description:

In this assignment we will put in practice the topics covered in Modules 4 and 5. There are two

parts to this assignment: the first is to implement the 4-bit adder discussed in Module 5; the

second is to take the output from the 4-bit adder and implement a decoder to display the result on

the 7-segment display.

Figure 1 – Assignment 2 block diagram

4-bit Adder

The inputs to the adder should be connected to the toggle switches SW0-7 where SW7-4

represent one number and SW3-SW0 represent the other.

7-Segment Display

Seven LEDs can be arranged in a pattern to form different digits as shown in Figure 2. Also

shown in Figure 2 are the two different configurations: common-anode is where all the LED

anodes are all connected to positive voltage; common-cathode is where all the cathodes are

connected to ground. The 7-segments displays on the Basys3 board are common-anode. In this

case, an output of 0 will turn on an LED and an output of 1 will turn it off.

Figure 2 – 7-segment display configurations

The design of the 7-segment decoder should have 4-bit hex number as input, x(3:0), and the

outputs are the 7-segment values a – g. The table shown in Figure 3 describes the output cathode

values for each segment a – g needed to display all hex values from 0 – F. Since the 4-bit adder

has an extra carry bit, we will connect it directly to the decimal point on the 7-segment display.

X a b c d e f g

1 = off

0 = on

0 0 0 0 0 0 0 1

1 1 0 0 1 1 1 1

2 0 0 1 0 0 1 0

3 0 0 0 0 1 1 0

4 1 0 0 1 1 0 0

5 0 1 0 0 1 0 0

6 0 1 0 0 0 0 0

7 0 0 0 1 1 1 1

8 0 0 0 0 0 0 0

9 0 0 0 0 1 0 0

A 0 0 0 1 0 0 0

b 1 1 0 0 0 0 0

C 0 1 1 0 0 0 1

d 1 0 0 0 0 1 0

E 0 1 1 0 0 0 0

F 0 1 1 1 0 0 0

Figure 3 – Segment values required to display hex digits 0 – F

Hint: Use case and/or if/else statements to implement the 7-segment decode.

Below are some examples showing the appropriate inputs and outputs of a properly functioning

program. Note that these show the Basys2, but the output should look the same on the Basys3.

Example 1

Example 2

What to hand in:

o The constraints file (*.xdc) o All vhdl files that you wrote (*.vhd) o The compiled program (.bit file)