EE261: Intro to Digital Design

Similar documents
Concurrent Signal Assignment Statements (CSAs)

Review. LIBRARY list of library names; USE library.package.object; ENTITY entity_name IS generic declarations PORT ( signal_name(s): mode signal_type;

Lecture 5: Aldec Active-HDL Simulator

Declarations of Components and Entities are similar Components are virtual design entities entity OR_3 is

VHDL Testbench. Test Bench Syntax. VHDL Testbench Tutorial 1. Contents

CCE 3202 Advanced Digital System Design

Digital Design Using VHDL Using Xilinx s Tool for Synthesis and ModelSim for Verification

Arithmetic Circuits. Nurul Hazlina Adder 2. Multiplier 3. Arithmetic Logic Unit (ALU) 4. HDL for Arithmetic Circuit

Abi Farsoni, Department of Nuclear Engineering and Radiation Health Physics, Oregon State University

Hardware Description Language VHDL (1) Introduction

1. Defining and capturing the design of a system. 2. Cost Limitations (low profit margin must sell millions)

Experiment 8 Introduction to VHDL

Digital Systems Design

LECTURE 4: The VHDL N-bit Adder

Design a 4 bit-adder. Then design a 4-7 decoder to show the outputs. Output Sum(4 bits) Adder. Output carry(1 bit)

Tutorial on VHDL Compilation, Simulation, and Synthesis

Lecture 7. Standard ICs FPGA (Field Programmable Gate Array) VHDL (Very-high-speed integrated circuits. Hardware Description Language)

Mridula Allani Fall Fall

VHDL. ELEC 418 Advanced Digital Systems Dr. Ron Hayne. Images Courtesy of Cengage Learning

VHDL Examples Mohamed Zaky

VeriLogger Tutorial: Basic Verilog Simulation

Chapter 6 Combinational-Circuit Building Blocks

Basic Language Concepts

Getting Started with Xilinx WebPack 13.1

ECE 448 Lecture 3. Combinational-Circuit Building Blocks. Data Flow Modeling of Combinational Logic

VHDL 2 Combinational Logic Circuits. Reference: Roth/John Text: Chapter 2

Solutions - Homework 2 (Due date: October 9:30 am) Presentation and clarity are very important!

ECE 545 Lecture 5. Data Flow Modeling in VHDL. George Mason University

VHDL Simulation. Testbench Design

ECE 448 Lecture 3. Combinational-Circuit Building Blocks. Data Flow Modeling of Combinational Logic

Experiment 0 OR3 Gate ECE 332 Section 000 Dr. Ron Hayne June 8, 2003

Digital Systems Design

Contents. Appendix D VHDL Summary Page 1 of 23

6.111 Lecture # 5. Entity section describes input and output. VHDL: Very High speed integrated circuit Description Language:

Lecture 1: VHDL Quick Start. Digital Systems Design. Fall 10, Dec 17 Lecture 1 1

Digital Design Using VHDL Using Xilinx s Tool for Synthesis and ModelSim for Verification Part II

ACS College of Engineering. Department of Biomedical Engineering. Logic Design Lab pre lab questions ( ) Cycle-1

IE1204 Digital Design L7: Combinational circuits, Introduction to VHDL

Digital Design Laboratory Lecture 2

Module 2.1 Gate-Level/Structural Modeling. UNIT 2: Modeling in Verilog

Sudhakar Yalamanchili, Georgia Institute of Technology, 2006

Tutorial 4 HDL. Outline VHDL PROCESS. Modeling Combinational Logic. Structural Description Instantiation and Interconnection Hierarchy

DIGITAL LOGIC WITH VHDL (Fall 2013) Unit 1

ELCT 501: Digital System Design

The block diagram representation is given below: The output equation of a 2x1 multiplexer is given below:

Digital Systems Design

Polusabirač. design.vhd. testbench.vhd. library ieee; use ieee.std_logic_1164.all; use ieee.numeric_std.all;

ECE 545 Lecture 8. Data Flow Description of Combinational-Circuit Building Blocks. George Mason University

ECE 545 Lecture 4. Simple Testbenches. George Mason University

Test Benches - Module 8

ECE 545 Lecture 12. FPGA Resources. George Mason University

-- Fill in values for each generic. -- Fill in values for each signal. SIGNAL load_start : std_ulogic := '1'; SIGNAL clock : std_ulogic := '0';

VHDL: Modeling RAM and Register Files. Textbook Chapters: 6.6.1, 8.7, 8.8, 9.5.2, 11.2

CMPT 250: Computer Architecture. Using LogicWorks 5. Tutorial Part 1. Somsubhra Sharangi

1. DESCRIPCION EN VHDL DE UN BIESTABLE D SINCRONO POR FLANCO ASCENDENTE CON RESET SINCRONO

TUTORIAL On USING XILINX ISE FOUNDATION DESIGN TOOLS: Mixing VHDL and Schematics

Digitaalsüsteemide disain

DOD, VHSIC ~1986, IEEE stnd 1987 Widely used (competition Verilog) Commercial VHDL Simulators, Synthesizers, Analyzers,etc Student texts with CDROMs

ANADOLU UNIVERSITY. EEM Digital Systems II

Review of Digital Design with VHDL

CCE 3202 Advanced Digital System Design

CSCI Lab 3. VHDL Syntax. Due: Tuesday, week6 Submit to: \\fs2\csci250\lab-3\

Outline. CPE/EE 422/522 Advanced Logic Design L05. Review: General Model of Moore Sequential Machine. Review: Mealy Sequential Networks.

PLD (eg. PAL) Typically 8 logic elements Technology: AND-OR array. William Sandqvist

The VHDL Hardware Description Language

2/14/2016. Hardware Synthesis. Midia Reshadi. CE Department. Entities, Architectures, and Coding.

FINAL PROJECT DESIGN OF HOUGH TRANSFORM ON A CORDIC CONFIGURABLE ALGORITHM

Control and Datapath 8

JUNE, JULY 2013 Fundamentals of HDL (10EC45) PART A

What Is VHDL? VHSIC (Very High Speed Integrated Circuit) Hardware Description Language IEEE 1076 standard (1987, 1993)

ECEU530. Schedule. ECE U530 Digital Hardware Synthesis. Datapath for the Calculator (HW 5) HW 5 Datapath Entity

ECEU530. Last Few Lectures. ECE U530 Digital Hardware Synthesis. What is on Quiz 2. Projects. Today:

Assignment 01 Computer Architecture Lab ECSE

CPE 626 Advanced VLSI Design Lecture 6: VHDL Synthesis. Register File: An Example. Register File: An Example (cont d) Aleksandar Milenkovic

Lecture 38 VHDL Description: Addition of Two [5 5] Matrices

UNIT I Introduction to VHDL VHDL: - V -VHSIC, H - Hardware, D - Description, L Language Fundamental section of a basic VHDL code Library :

Getting Started with VHDL

VHDL/Verilog Simulation. Testbench Design

Lecture 5: State Machines, Arrays, Loops. EE 3610 Digital Systems

C-Based Hardware Design

1. Using the for-generahon scheme, concurrent statements can be replicated a predetermined number of times.

PROJECT Report. Lecturer: Dr. Ronny Veljanovski FLOATING POINT ADDITION & SUBTRACTION. Student: IBRAHIM HAZMI REENA ASHANTI

ECE2029: Introduction to Digital Circuit Design. Lab 2 Implementing Combinational Functional Blocks

Lecture 14 Test Bench Design

Midterm Exam Thursday, October 24, :00--2:15PM (75 minutes)

Mid-Term Exam Solutions

3e library declarations library IEEE; use IEEE.std_logic_1164.all;

Modeling Complex Behavior

ENGIN 241 Digital Systems with Lab

Lecture 3: Modeling in VHDL. EE 3610 Digital Systems

Logic and Computer Design Fundamentals VHDL. Part 1 Chapter 4 Basics and Constructs

ANADOLU UNIVERSITY DEPARTMENT OF ELECTRICAL AND ELECTRONICS ENGINEERING. EEM Digital Systems II

VHDL: A Crash Course

VHDL Testbench Design. Textbook chapters 2.19, , 9.5

Department of Electrical and Computer Engineering Xilinx ISIM <Release Version: 14.1i> Simulation Tutorial Using Verilog

EEL 4712 Digital Design Test 1 Spring Semester 2008

Digital System Construction

ECE 152A LABORATORY 2

ECE U530 Digital Hardware Synthesis. Course Accounts and Tools

Advanced Electronics Lab.

Transcription:

2014 EE261: Intro to Digital Design Project 3: Four Bit Full Adder Abstract: This report serves to teach us, the students, about modeling logic and gives a chance to apply concepts from the course to a feasible application. It also gives us a chance to learn and/or practice technical writing. Zack Rauen Computer Engineering 0384482 rauenzi@clarkson.edu Jeremy Teed Electrical Engineering 0477392 teedjo@clarkson.edu Prof. Chen Liu Clarkson University 4/6/2014

TABLE of CONTENTS Title....... Page 1 Abstract... Page 1 Table of Contents..... Page 2 Objectives... Page 3 Discussion. Page 3 Schematics Page 4 Waveforms.. Page 5 Implementation Utilization.. Page 6 Self-Evaluations Page 6 Source Design Page 6 Test Bench.. Page 7 Zack Rauen & Jeremy Teed Page 2

Objectives: In this experiment the student will demonstrate: The ability to create logic design using VHDL with Xilinx PlanAhead Software. The characteristics of a four bit full adder. The ability to perform with design and time constraints Discussion: Design Characteristics of a four bit Full Adder: Must be represented by the following logic symbol Required to conform to the following truth table 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 0 0 1 0 0 1 1 0 0 1 1 0 1 1 0 1 0 1 1 1 1 1 1 Can be defined by the following Boolean equations o = o = +( ) Zack Rauen & Jeremy Teed Page 3

Characteristics of a four bit full adder: A four bit full adder takes 4 A inputs and 4 B inputs along with a carry in and adds the binary numbers together and represents it with 5 outputs. These outputs include 4 sums and 1 carry out. This is accomplished by hooking four of the previously described full adders together. The carry out of the individual adder gets hooked into each subsequent full adder as the carry in until the end where the carry out is the overall carry out. Schematics: Zack Rauen & Jeremy Teed Page 4

Waveforms: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 1 1 1 0 1 0 0 1 1 1 1 0 0 0 1 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 0 0 0 0 1 0 0 0 0 1 0 1 0 1 1 0 1 0 1 0 1 0 1 1 0 1 1 1 0 0 0 1 1 0 1 1 0 0 1 0 1 1 1 1 0 0 0 1 0 1 1 0 1 0 0 1 1 1 1 0 1 1 0 0 0 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 1 1 1 0 1 0000 + 0000 + 0 = 0000 1000 + 0100 + 1 = 1101 0111 + 1000 + 1 = 0000 carry 1 0101 + 0010 + 1 = 1000 1000 + 0101 + 0 = 1101 1010 + 1101 + 1 = 1000 carry 1 1011 + 0010 + 1 = 1110 0101 + 1010 + 0 = 1111 1100 + 0100 + 0 = 0000 carry 1 1111 + 1111 + 0 = 1110 carry 1 Waveform, truth table, and manual calculations all agree Zack Rauen & Jeremy Teed Page 5

Implementation Utilization LUT = 1%, Slice = 1%, IO = 6%. Self-Evaluation: Zack Rauen: When making the 4 bit adder, at first I neglected to change the name of the entity in the testbench so I kept receiving undefined outputs. I quickly noticed it and changed it to match the entity that I had named in the source file. Other than that, there were no issues with this project. Jeremy Teed: Deriving truth tables from the waveform was confusing at first because it involves a range of values and looks different than usual. Once I figured it out, the rest of the project was fairly straightforward. Appendices Source Design: library IEEE; use IEEE.STD_LOGIC_1164.ALL; entity FullAdd is Port ( A : in STD_LOGIC; B : in STD_LOGIC; Cin : in STD_LOGIC; Cout : out STD_LOGIC; Sum : out STD_LOGIC); end FullAdd; architecture Behavioral of FullAdd is begin Sum<=(A xor B) xor Cin; Cout<=(A and B) or (Cin and (A xor B)); end Behavioral; Zack Rauen & Jeremy Teed Page 6

LIBRARY IEEE; use IEEE.STD_LOGIC_1164.ALL; entity FourBitAdd is port (A, B: in std_logic_vector(3 downto 0); Cin: in std_logic; Sum: out std_logic_vector(3 downto 0); Cout: out std_logic); -- A,B,Sum are 4 bit arrays end entity FourBitAdd; architecture FourBitFunc of FourBitAdd is signal C: std_logic_vector(3 downto 1); -- array of internals component FullAdd is port (A, B: in std_logic; Cin: in std_logic; Sum: out std_logic; Cout: out std_logic); end component FullAdd; begin FA1: FullAdd port map(a=>a(0), B=>B(0), Cin=>Cin, Sum=>Sum(0), Cout=>C(1)); FA2: FullAdd port map(a=>a(1), B=>B(1), Cin=>C(1), Sum=>Sum(1), Cout=>C(2)); FA3: FullAdd port map(a=>a(2), B=>B(2), Cin=>C(2), Sum=>Sum(2), Cout=>C(3)); FA4: FullAdd port map(a=>a(3), B=>B(3), Cin=>C(3), Sum=>Sum(3), Cout=>Cout); end architecture FourBitFunc; Testbench: library IEEE; use IEEE.std_logic_1164.all; use IEEE.std_logic_unsigned.all; entity my_4bit_fa_testbench is end my_4bit_fa_testbench; architecture behavior of my_4bit_fa_testbench is Zack Rauen & Jeremy Teed Page 7

component FourBitAdd Port ( A : in std_logic_vector (3 downto 0); B : in std_logic_vector (3 downto 0); Cin : in std_logic; Sum : out std_logic_vector (3 downto 0); Cout : out std_logic); end component; signal A: std_logic_vector (3 downto 0); signal B: std_logic_vector (3 downto 0); signal Cin: std_logic; signal Sum: std_logic_vector (3 downto 0); signal Cout : std_logic; --local signal declaration begin -- Component Instantiation UUT : FourBitAdd port map( A => A, B => B, Cin => Cin, Sum => Sum, Cout => Cout); -- Cycle through test vectors and evaluate the results process begin A <= "0000"; B <= "0000"; Cin <= '0'; A <= "1000"; Zack Rauen & Jeremy Teed Page 8

B <= "0100"; Cin <= '1'; A <= "0111"; B <= "1000"; Cin <= '1'; A <= "0101"; B <= "0010"; Cin <= '1'; A <= "1000"; B <= "0101"; Cin <= '0'; A <= "1010"; B <= "1101"; Cin <= '1'; A <= "1011"; B <= "0010"; Cin <= '1'; Zack Rauen & Jeremy Teed Page 9

A <= "0101"; B <= "1010"; Cin <= '0'; A <= "1100"; B <= "0100"; Cin <= '0'; A <= "1111"; B <= "1111"; Cin <= '0'; wait; end process; END; Zack Rauen & Jeremy Teed Page 10