EEE 270 Advanced Topics in Logic Design: Lab - 1 Full Adder
EEE 270 Advanced Topics in Logic Design: Lab - 1 Full Adder
EEE 270 Advanced Topics in Logic Design: Lab - 1 Full Adder
PURPOSE
The main purpose of this lab is to develop familiarity with the software and hardware tools used
for this course. You will not write any VHDL code in this lab. You will run the code that is given
to you and implement it on the NEXYS4 DDR board.
As a running example, we will use a 1–bit Full Adder designed in VHDL.
STARTER PROJECT
Lab-1.zip. This folder contains 4 files that are necessary to start on the project.
BACKGROUND
A full adder adds binary numbers and accounts for values carried in as well as out. A one-bit full
adder adds three one-bit numbers. The full adder used in this project has x, y, and C_in as three
inputs: x and y are the input bits, and C_in is the input carry bit. The two outputs are S (for sum)
and C_out (for Carry out).
The working of the full adder is shown in the truth table below. The block diagram of a full
adder is in Figure – 0.
C_in y x S C_out
0 0 0 0 0 x S
0 0 1 1 0
0 1 0 1 0
1 – Bit
0 1 1 0 1
y
Full Adder
1 0 0 1 0
1 0 1 0 1
C_out
C_in
1 1 0 0 1
1 1 1 1 1
Figure – 0: Full Adder
TASKS
(1) Open Full_Adder_2.vhd file with notepad++ and understand the VHDL code.
(2) Create a ModelSim Library and successfully simulate a Full Adder. Verify the functionality
of the code for the full adder using simulations.
(3) Create a New Project in Xilinx Vivado and add the verified VHDL code file to the project
(4) Edit the constraints file (Full_Adder_2_Nexys4DDR_Master.xdc) to map the design ports
onto the pins of the Nexys 4 DDR board and add to the project in Vivado
(5) Synthesize, Implement and Generate a (*.bit) file
(6) Program the Board using the (*.bit) file you just created.
(7) Verify functionality on the board by using different input patterns