VHDL Project II: Array Multiplier

Slides:



Advertisements
Similar presentations
Digital Logic with VHDL EE 230 Digital Systems Fall 2006 (10/17/2006)
Advertisements

LECTURE 4: The VHDL N-bit Adder
Quad 2-to-1 and Quad 4-to-1 Multiplexers Discussion D2.4 Example 7.
Arbitrary Waveform Discussion 5.5 Example 34.
Multiplexer as a Universal Element Discussion D2.6 Example 9.
1 VLSI DESIGN USING VHDL Part II A workshop by Dr. Junaid Ahmed Zubairi.
Ring Counter Discussion D5.3 Example 32. Ring Counter if rising_edge(CLK) then for i in 0 to 2 loop s(i)
Generic Multiplexers: Parameters Discussion D2.5 Example 8.
Mridula Allani Fall 2010 (Refer to the comments if required) ELEC Fall 2010, Nov 21(Adopted from Profs. Nelson and Stroud)
FPGAs and VHDL Lecture L12.1. FPGAs and VHDL Field Programmable Gate Arrays (FPGAs) VHDL –2 x 1 MUX –4 x 1 MUX –An Adder –Binary-to-BCD Converter –A Register.
Lab 2 4-Bit Adder Digilent Spartan 3 Board Lecture L2.3.
4-to-1 Multiplexer: case Statement Discussion D2.3 Example 6.
Kazi Fall 2006 EEGN 4941 EEGN-494 HDL Design Principles for VLSI/FPGAs Khurram Kazi Some of the slides were taken from K Gaj’s lecture slides from GMU’s.
Programming in VHDL Using Processes. How Processes Run A process is either in suspend mode or is running. For a process to run, there has to be a change.
ECE 448 Lecture 3 Combinational-Circuit Building Blocks Data Flow Modeling of Combinational Logic ECE 448 – FPGA and ASIC Design with VHDL.
CSET 4650 Field Programmable Logic Devices Dan Solarek VHDL Behavioral & Structural.
ECE 448: Lab 4 FIR Filters.
 Seattle Pacific University EE Logic System DesignCADNumbers-1 Arithmetic and CAD Tools CAD tools work great with arithmetic functions Adding,subtracting,multiplying,
ECE 448: Spring 12 Lab Midterm Exam Review. Part 1: Detailed discussion of a selected midterm from Spring Part 2: Review & discussion of common.
A.7 Concurrent Assignment Statements Used to assign a value to a signal in an architecture body. Four types of concurrent assignment statements –Simple.
DSD,USIT,GGSIPU1 Entity declaration –describes the input/output ports of a module entity reg4 is port ( d0, d1, d2, d3, en, clk : in std_logic; q0, q1,
Figure 5.1 Conversion from decimal to binary. Table 5.1 Numbers in different systems.
CprE / ComS 583 Reconfigurable Computing Prof. Joseph Zambreno Department of Electrical and Computer Engineering Iowa State University Lecture #17 – Introduction.
A VHDL Tutorial ENG2410. ENG241/VHDL Tutorial2 Goals Introduce the students to the following: –VHDL as Hardware description language. –How to describe.
1 Part I: SYSTEM DESIGN. 2 Packages and Components Functions and Procedures Problem (Design & Implementation) Additional System Designs.
VHDL Project I: Introduction to Testbench Design Matthew Murach Slides Available at:
ENG2410 Digital Design LAB #8 LAB #8 Data Path Design.
VHDL in 1h Martin Schöberl. AK: JVMHWVHDL2 VHDL /= C, Java,… Think in hardware All constructs run concurrent Different from software programming Forget.
Language Concepts Ver 1.1, Copyright 1997 TS, Inc. VHDL L a n g u a g e C o n c e p t s Page 1.
RTL Hardware Design by P. Chu Chapter Basic VHDL program 2. Lexical elements and program format 3. Objects 4. Data type and operators RTL Hardware.
Carry look ahead adder P (I) = a(I) xor b(I); G(I) = a(I) and b(I); S(I) = p(I) xor c(I); Carry(I+1) = c(I)p(I) + g(I)
Basic Overview of VHDL Matthew Murach Slides Available at:
VHDL for Combinational Circuits. VHDL We Know Simple assignment statements –f
VHDL Project II: Array Multiplier Matthew Murach Slides Available at:
ENG2410 Digital Design LAB #5 Modular Design and Hierarchy using VHDL.
Generate Statements Instructors: Fu-Chiung Cheng ( 鄭福炯 ) Associate Professor Computer Science & Engineering Tatung University.
Modern VLSI Design 4e: Chapter 8 Copyright  2008 Wayne Wolf Topics VHDL register-transfer modeling: –basics using traffic light controller; –synthesis.
Generate Statement A generate statement provides a mechanism for iterative or conditional elaboration of a portion of description. The iterative elaboration.
VHDL Project II: Bubble Sorter Matthew Murach Slides Available at:
CEC 220 Digital Circuit Design More VHDL Fri, February 27 CEC 220 Digital Circuit Design Slide 1 of 15.
2/10/07DSD,USIT,GGSIPU1 BCD adder KB3B2B1B0CD3D2D1D
Digital System Projects
CWRU EECS 318 EECS 318 CAD Computer Aided Design LECTURE 3: The VHDL N-bit Adder Instructor: Francis G. Wolff Case Western Reserve.
5-1 Logic System Design I VHDL Design Principles ECGR2181 Reading: Chapter 5.0, 5.1, 5.3 port ( I: in STD_LOGIC_VECTOR (1 to 9); EVEN, ODD: out STD_LOGIC.
BASIC VHDL LANGUAGE ELEMENTS Digital Design for Instrumentation with VHDL 1.
ECOM 4311—Digital System Design with VHDL
Digital Design Using VHDL and PLDs ECOM 4311 Digital System Design Chapter 1.
VHDL ELEC 311 Digital Logic and Circuits Dr. Ron Hayne Images Courtesy of Cengage Learning.
VHDL Project I: Serial Adder Matthew Murach Slides Available at:
1 Introduction to Engineering Spring 2007 Lecture 18: Digital Tools 2.
1 Computer Architecture & Assembly Language Spring 2009 Dr. Richard Spillman Lecture 11 – ALU Design.
LAB #5 Modular Design and Hierarchy using VHDL
Combinational logic circuit
A Case Study of the Rehosting from VHDL to Matlab/C
Subject Name: FUNDAMENTALS OF HDL Subject Code: 10EC45
Structural style Modular design and hierarchy Part 1
ENG6530 Reconfigurable Computing Systems
Combinational Circuits Using VHDL
LIBRARY IEEE; Include Libraries for standard logic data types USE IEEE.STD_LOGIC_1164.ALL; -- Entity name normally the same as file name.
UNIT 2: Data Flow description
LIBRARY IEEE; Include Libraries for standard logic data types USE IEEE.STD_LOGIC_1164.ALL; -- Entity name normally the same as file name.
Getting Started with Vivado
VHDL (VHSIC Hardware Description Language)
VHDL Structural Architecture
Chapter 5 – Number Representation and Arithmetic Circuits
ECE 331 – Digital System Design
Figure 8.1. The general form of a sequential circuit.
Four Bit Adder Sum A Cin B Cout 10/9/2007 DSD,USIT,GGSIPU.
4-Input Gates VHDL for Loops
Digital Logic with VHDL
Presentation transcript:

VHDL Project II: Array Multiplier Slides Available at: www.pages.drexel.edu/~mjm46 Matthew Murach

Today’s Agenda Finish up the processing element design Work on array multiplier design/layout Today’s quiz will be given in the last 30 minutes of the lab period. The quiz is timed and all quizzes will be collected at 11:00 am.

Recall from last time… The array multiplier that we are designing involves the use of processing elements (PE) to breakdown the task of multiplying an n-bit vector by a n-bit vector. Using a serial approach much like the adder project the operation should take roughly ~n operations (slight larger) To design a high performance multiplier we can perform some operations in parallel rather then in serial.

Array Multiplier Layout 4x4 B(0) F(0) B(1) F(1) B(2) F(2) B(3) F(3) F(7) F(6) F(5) F(4)

Sample Run 1011010 = 90 Verify! Say we have, 1010 x1001 0000 + 1010 + 1010 1010 x1001 0101 +0000 1010 x1001 0010 +0000 1010 x1001 0001 +1010 1011 Partial Sum 1st bit of answer 2nd bit of answer 3rd bit of answer The rest of the answer 1011010 = 90 Verify!

For-if generation constructs Elements can be easily duplicated in a design using for-if-generate notation. The syntax for this arrangement is shown below Gen_name_0 : For i in 0 to N-1 generate gen_name_1 : if(condition) generate cell : component_name port map (stuff); end generate gen_name; gen_name_2 : if (condition) generate end generate gen_name_2; End generate gen_name_0; Note that generate statements go after the first begin.

What in the world does this synthesize to ? Example Super Buffer -- Example of Cell Generation Library IEEE; Use ieee.std_logic_1164.all; Entity of sbuf is Port( A : in std_logic Z : out std_logic); End sbuf; Architecture Behav of Buffer is Component PE Port(A : in std_logic; B : out std_logic); End component; -- Signal Declarations Signal x : std_logic_vector(4 downto 0); Begin -- Port Map section GI : for i in 0 to 5 Generate G1 : if (I = 0) generate -- 1st generate Cell : PE port map(A, x(i)); End generate G1; G2 : if (I < 5 and I > 0) generate -- 2nd generate Cell : PE port map( x(I-1),x(I)); End generate G2; G3 : if (I = 5) generate Cell : PE port map (x(I-1),Z); -- 3rd generate End generate G3; End generate GI; End Behav; -- Example of cell Entity of PE is Port(A : in std_logic; B : out std_logic); End PE; Architecture Behav of PE is Begin Process(A) B <= not A; End process; End Behav; What in the world does this synthesize to ? See the Next Slide for Details 

Synthesis Results Red circle denotes region G1 Cell:3 Cell:2 Cell:1 Cell:0 Cell:5 Cell:4 A Z X(0) X(1) X(2) X(3) X(4) I=0 I=2 I=3 I=4 I=5 I=1 For I in 0 to 5 generate Red circle denotes region G1 Yellow circles denote region G2 Green circle denotes region G3 Green arrows indicate A Red arrows indicate -A

Array Multiplier Layout 4x4 B(0) F(0) B(1) F(1) B(2) F(2) B(3) F(3) F(7) F(6) F(5) F(4)

Array Multiplier Architecture behav of Array_Mult is -- Define Signals Here -- Define your PE component Begin -- Declare boundary conditions using for-generate GI : for i in 0 to N-1 Generate GJ : for j in 0 to N-1 Generate -- Subclasses of networks inside multiplier -- Top or middle nodes G1 : if (i < N-1) and (j < N-1) and (j > 0) Generate cell : PE port map (x(i,j),y(i,j),c(i,j),p(i,j), x(i+1,j),y(i,j+1),c(i,j+1),p(i+1,j-1)); End Generate G1; -- Fill in the other four sections here End Generate GJ; End Generate GI; End behav;

Project Guidelines Teams: It is suggested that you should work in groups of two on this assignment. Reports should be 2~3 pages in length and have all the source code included. Email or Paper submittal is acceptable. E-mail is the preferred submission method Reports submitted should detail the methodology used to obtain the final work. All code submitted should be well commented and should follow good coding guidelines. The deadline for this project April 27th Tuesday @ 11:59:59 pm