Matrix Manipulation Using High Computing Field Programmable Gate Arrays

Similar documents
ELCT 501: Digital System Design

IA Digital Electronics - Supervision I

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

e-pg Pathshala Subject : Computer Science Paper: Embedded System Module: Introduction to Computing Module No: CS/ES/1 Quadrant 1 e-text

IT T35 Digital system desigm y - ii /s - iii

csitnepal Unit 3 Basic Computer Organization and Design

An FPGA Implementation of 8-bit RISC Microcontroller

IMPLEMENTATION OF DOUBLE PRECISION FLOATING POINT RADIX-2 FFT USING VHDL

Digital Logic Design Exercises. Assignment 1

CSE 260 Introduction to Digital Logic and Computer Design. Exam 1. Your name 2/13/2014

EE 3170 Microcontroller Applications

Today. Comments about assignment Max 1/T (skew = 0) Max clock skew? Comments about assignment 3 ASICs and Programmable logic Others courses

TOPIC: Digital System Design (ENEL453) Q.1 (parts a-c on following pages) Reset. Clock SREG1 SI SEN LSB RST CLK. Serial Adder. Sum.

Lab 3: Standard Combinational Components

Controller IP for a Low Cost FPGA Based USB Device Core

EITF35 - Introduction to the Structured VLSI Design (Fall 2016) Interfacing Keyboard with FPGA Board. (FPGA Interfacing) Teacher: Dr.

Computer Architecture

Lecture 3: Modeling in VHDL. EE 3610 Digital Systems

Software and Hardware

Adding the ILA Core to an Existing Design Lab

Hardware Description of Multi-Directional Fast Sobel Edge Detection Processor by VHDL for Implementing on FPGA

ENGIN 112 Intro to Electrical and Computer Engineering

Computer Architecture: Part III. First Semester 2013 Department of Computer Science Faculty of Science Chiang Mai University

DESIGN AND IMPLEMENTATION OF 32-BIT CONTROLLER FOR INTERACTIVE INTERFACING WITH RECONFIGURABLE COMPUTING SYSTEMS

3.1 Description of Microprocessor. 3.2 History of Microprocessor

CSE 141L Computer Architecture Lab Fall Lecture 3

High Speed Pipelined Architecture for Adaptive Median Filter

FPGA based Simulation of Clock Gated ALU Architecture with Multiplexed Logic Enable for Low Power Applications

Designing an Improved 64 Bit Arithmetic and Logical Unit for Digital Signaling Processing Purposes

SRM ARTS AND SCIENCE COLLEGE SRM NAGAR, KATTANKULATHUR

VLSI DESIGN OF REDUCED INSTRUCTION SET COMPUTER PROCESSOR CORE USING VHDL

Chapter 5. Digital Design and Computer Architecture, 2 nd Edition. David Money Harris and Sarah L. Harris. Chapter 5 <1>

2015 Paper E2.1: Digital Electronics II

CHAPTER 5 Basic Organization and Design Outline Instruction Codes Computer Registers Computer Instructions Timing and Control Instruction Cycle

Nikhil Gupta. FPGA Challenge Takneek 2012

Field Programmable Gate Array

EXPERIMENT NUMBER 11 REGISTERED ALU DESIGN

International Journal of Advanced Research in Electrical, Electronics and Instrumentation Engineering

Design of Dual Port SDRAM Controller with Time Slot Register

Efficient design and FPGA implementation of JPEG encoder

Contents. Chapter 9 Datapaths Page 1 of 28

1 MALP ( ) Unit-1. (1) Draw and explain the internal architecture of 8085.

FPGA Design Challenge :Techkriti 14 Digital Design using Verilog Part 1

SIR C.R.REDDY COLLEGE OF ENGINEERING, ELURU DEPARTMENT OF INFORMATION TECHNOLOGY LESSON PLAN

SIDDHARTH GROUP OF INSTITUTIONS :: PUTTUR Siddharth Nagar, Narayanavanam Road QUESTION BANK (DESCRIPTIVE) UNIT-I

A Novel Architecture of Parallel Multiplier Using Modified Booth s Recoding Unit and Adder for Signed and Unsigned Numbers

UNIT - V MEMORY P.VIDYA SAGAR ( ASSOCIATE PROFESSOR) Department of Electronics and Communication Engineering, VBIT

Fused Floating Point Arithmetic Unit for Radix 2 FFT Implementation

Design of a Pipelined 32 Bit MIPS Processor with Floating Point Unit

FPGA for Software Engineers

Verilog Module 1 Introduction and Combinational Logic

A Modified Radix2, Radix4 Algorithms and Modified Adder for Parallel Multiplication

ENGG3380: Computer Organization and Design Lab4: Buses and Peripheral Devices

Design of High Speed DMA Controller using VHDL

32 bit Arithmetic Logical Unit (ALU) using VHDL

UNIT-III REGISTER TRANSFER LANGUAGE AND DESIGN OF CONTROL UNIT

Computer Architecture and Organization:

Microcomputers. Outline. Number Systems and Digital Logic Review

CSE 260 Introduction to Digital Logic and Computer Design. Exam 1 Solutions

Binary Adders. Ripple-Carry Adder

Digital Logic & Computer Design CS Professor Dan Moldovan Spring 2010

Keywords: Soft Core Processor, Arithmetic and Logical Unit, Back End Implementation and Front End Implementation.

Lab # 2. Sequential Statements

INTERNATIONAL JOURNAL OF PURE AND APPLIED RESEARCH IN ENGINEERING AND TECHNOLOGY

In this lecture, we will focus on two very important digital building blocks: counters which can either count events or keep time information, and


Implementing Synchronous Counter using Data Mining Techniques

Design and Implementation of Hamming Code on FPGA using Verilog

Design and Implementation of 5 Stages Pipelined Architecture in 32 Bit RISC Processor

Interrupts. by Rahul Patel, Assistant Professor, EC Dept., Sankalchand Patel College of Engg.,Visnagar

Basic Computer Organization - Designing your first computer. Acknowledgment: Most of the slides are adapted from Prof. Hyunsoo Yoon s slides.

LOGIC DESIGN. Dr. Mahmoud Abo_elfetouh

Chapter 3 : Control Unit

Unit 7: Memory. Dynamic shift register: Circuit diagram: Refer to unit 4(ch 6.5.4)

Switching Circuits and Logic Design Prof. Indranil Sengupta Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur

EE 3170 Microcontroller Applications

Hardware Design I Chap. 10 Design of microprocessor

Optimized Design and Implementation of a 16-bit Iterative Logarithmic Multiplier

ENGG3380: Computer Organization and Design Lab5: Microprogrammed Control

Register Transfer Level in Verilog: Part I

LABORATORY MANUAL VLSI DESIGN LAB EE-330-F

Simulation & Synthesis of FPGA Based & Resource Efficient Matrix Coprocessor Architecture

A Review on Optimizing Efficiency of Fixed Point Multiplication using Modified Booth s Algorithm

Verilog Fundamentals. Shubham Singh. Junior Undergrad. Electrical Engineering

Task 8: Extending the DLX Pipeline to Decrease Execution Time

D I G I T A L C I R C U I T S E E

Microprocessor Architecture

Design and Simulation of UART for Serial Communication

Question Bank Microprocessor and Microcontroller

FPGA-BASED DATA ACQUISITION SYSTEM WITH RS 232 INTERFACE

FPGA Interfacing of HD44780 Based LCD Using Delayed Finite State Machine (FSM)

ECE 341 Midterm Exam

Prachi Sharma 1, Rama Laxmi 2, Arun Kumar Mishra 3 1 Student, 2,3 Assistant Professor, EC Department, Bhabha College of Engineering

Chapter 2 Logic Gates and Introduction to Computer Architecture

PSIM: Processor SIMulator (version 4.2)

FPGA design with National Instuments

Novel Design of Dual Core RISC Architecture Implementation

Design, Analysis and Processing of Efficient RISC Processor

Digital Design with FPGAs. By Neeraj Kulkarni

TSIU03, SYSTEM DESIGN LECTURE 2

Transcription:

Matrix Manipulation Using High Computing Field Programmable Gate Arrays 1 Mr.Rounak R. Gupta, 2 Prof. Atul S. Joshi Department of Electronics and Telecommunication Engineering, Sipna College of Engineering and Technology, S.G.B.Amravati University Amravati,444603, India Department of Electronics and Telecommunication Engineering, Sipna College of Engineering and Technology, S.G.B.Amravati University Amravati,444603, India ABSTRACT Matrix manipulation is very important in many types of applications. The suitability of reconfigurable hardware devices, in the form of field programmable gate arrays (FPGAs), is investigated as a low-cost solution for implementing two matrix manipulation operations. This paper present the design and implementation of matrix operations like addition, subtraction and multiplication using VHDL design approach, where the performances of programming language have been presented Solutions for processing different matrix operations. Advanced RISC Machine (ARM) is the Implementation result of the RISC microprocessor architecture. RISC introduces simpler hardware processor architecture because fixed length Instruction format with the opcode in the same bit position requires less decoding, allowing any register to be used in any context simplifies the compiler design and Complex addressing is performed through sequences of arithmetic and/or load store operations. Keywords: Coprocessor, FPGA, Matrix Manipulation, RISC, VHDL. 1. INTRODUCTION: Shift registers are a type of sequential logic circuit, mainly for storage of digital data. They are a group of flip flops connected in a chain so that the output from one flip -flop becomes the input of the next flip -flop. Most of the registers possess no characteristic internal sequence of states. All flip -flop is driven by a common clock, and all are set or reset simultaneously.

Fig.1 4- bit shift register A basic four-bit shift register can be constructed using four D flip -flops, as shown in Figure The operation of the circuit is as follows. 1.The register is first cleared, forcing all four outputs to zero. 2. The input data is then applied sequentially to the D input of the first flip -flop on the left (FF0). 3.During each clock pulse, one bit is transmitted from left to right. 4. Assume a data word to be 1001. 5. The least significant bit of the data has to be shifted through the register from FF0 to FF3. In order to get the data out of the register, they must be shifted out serially. This can be done destructively or non- destructively. For destructive readout, the original data is lost and at the end of the read cycle, all flip -flops are reset to zero. FF0 FF1 FF2 FF3 0 0 0 0 1001 The data is loaded to the register when the control line is HIGH (ie WRITE). The data can be shifted out of the register when the control line is LOW (ie READ). CLEAR FF0 FF1 FF2 FF3 1001 0 0 0 0 WRITE: FF0 FF1 FF2 FF3 1 0 0 1 0000

READ: FF0 FF1 FF2 FF3 1 0 0 1 1001 Now as shown in fig. 2 if we have desire for multiplication operation it should be perform by shift register in the multiple of 2. Let take an simple example using 0001.initially the value in the shift register is 1. After the first left shift, value in the shift register must be 2. After second left shift, this value should be 4 and finally after third shift it will give 8. So by using shift register we can perform multiplication operation in the multiple of 2 only. In this paper we designed a system that gives simple and faster matrix manipulation operations. Fig.2 Rotate Left Operation 2. System Building Blocks: The system can be best suitably planned around high performance programmable gate arrays. Fig. shows the proposed system build around Field Programmable Gate Arrays (FPGA).

Fig.3 Basic Building Blocks Out of all other intelligent devices, programmable gate arrays are excellent choice because of startling features like 16-bit LUT RAM, In-System Programming (ISP), Boundary scan and Read back ability. Out of available different versions and capacity FPGAs, XC2S200 is the best choice. 2.1 4x4 Hex Keypad: It Hex keypad is the matrix arrangement of 4x4 press to on switches. With 4x4 arrangements it becomes 16 possible values that can be encoded and designer can encode the values as per their convenience. For entering the values for matrix manipulation it is required to values to be input from the 4x4 matrix. 2.2 Hex Keypad Scanner: For the Matrix manipulation using high speed programmable gate arrays, the sixteen combinations are encoded into Hex Values i.e. values from 0 to 9 and characters from A to F. For encoding the values from the 4x4 hex keypad matrix, keypad scanning routine needs to be executed repeatedly, keypad can be scan by enabling only one row (or column) at a time and checking the individual column (or row). For each of the column in enabled row different values can be encoded. Fig. 4 shows the matrix like structure of the Hex-keypad. Same process can be repeated for remaining rows.

Fig. 4 Hex Keypad structure

3. Proposed Flow Diagram: Start Initialize the Display Select Operation Enter the first matrix Enter the Second matrix Execute Operation Display Computed Data Repeat the Process Fig.5 Flow Chart The process of matrix manipulation can be initiated by initializing the LCD display unit to following mode: a. 8-bit Interface Mode, b. Double Character Line Mode with 5x7 Dot Matrix

c. Display Curser On and d. Increment next character display address automatically. For initializing the LCD unit to the above mode data pattern of 38H, 0CH and 06H can be input to the control register with Register Select pin as Low. The above pattern can be loaded into the RS Register by each trailing edge of the pulse on Enable (E) pin. After such initialization the LCD unit is ready for the data displaying. The data once available inside the FPGA, it can be operated to get the desired operation by operating it using suitable algorithm for matrix manipulation. Algorithm can be designed to operate the Hex data directly or data can be first converted to decimal values and then operate on the converted data. It is also possible to convert the incoming data into binary format or octal format and then operate on the new data. After multiplication the result is displayed on the LCD. For any of the converted data manipulation algorithm data needs to be converted into ASCI value for displaying on the LCD unit. As the size of the matrix is large i.e. having atleast 4x4, which requires four rows to be displayed and the size of the LCD is of 2 rows. Hence to display total 4 rows, shift register can be designed internally and the top of the register bank can be used to display the complete 4 rows. This technique can be used to display N number of rows by using only 2 - Row LCD display. The operation result to be display is depending upon the control register LSB 2 bits as given in the following table: BIT1 BIT0 OPERATION 0 0 NO OPERATION 0 1 MULTIPLICATION 1 0 ADDITION 1 1 SUBTRACTION First all the coefficients of the both matrices are to be updated and then control register data should be updated else we may get wrong result. 4. Observation: entity MATRIX_MULT is GENERIC ( B: INTEGER :=8; --NUMBER OF BITS W: INTEGER :=7; --NUMBER OF ADDRESS BITS C: INTEGER :=16 --BUS WIDTH ); Port ( clock : in STD_LOGIC; reset : in STD_LOGIC; mult_en : in STD_LOGIC;

a11 : in signed ( B-1 downto 0); end MATRIX_MULT; COMPONENT ROW_COL_MULT GENERIC ( B: INTEGER; --NUMBER OF BITS W: INTEGER; --NUMBER OF ADDRESS BITS C: INTEGER --BUS WIDTH ); PORT( clock : IN std_logic; reset : IN std_logic; mult_en: IN std_logic; a_r1 : IN signed ( B-1 downto 0); a_r2 : IN signed ( B-1 downto 0); a_r3 : IN signed ( B-1 downto 0); a_r4 : IN signed ( B-1 downto 0); b_c1 : IN signed ( B-1 downto 0); b_c2 : IN signed ( B-1 downto 0); b_c3 : IN signed ( B-1 downto 0); b_c4 : IN signed ( B-1 downto 0); out1 : OUT signed ( C-1 downto 0) ); END COMPONENT; generic map ( B, W, C) PORT MAP ( clock=> clock, reset=> reset, mult_en=> mult_en, a_r1 => a11_sig, a_r2 => a12_sig, a_r3 => a13_sig, a_r4 => a14_sig, b_c1 => b11_sig, b_c2 => b21_sig, b_c3 => b31_sig, b_c4 => b41_sig, out1 => c11 ); element_c12: ROW_COL_MULT;

Waveform 1 Waveform 2 5. Acknowledgment: Thanks to department of Electronics and Telecommunication of SIPNA college of engineering and technology, Amravati. 6. Conclusion: Considering the market segment, different manufacturers supports different processors or co-processors that can be used to compute the complex algorithms. As compared to that the present system is more users friendly and demonstrates each and every step of execution of the complex algorithm. System is designed around high computing, high performance gate arrays that are extensively used for integrating parallel architecture and furnishes outstanding performances

when operated at frequencies in the range of and above 100 MHz. This system can be used for lab purposes for digital image processing and analysis. 7. References: [1] Digiital Logic and Computer Design, by Morris Mano: Advanced Digital Design fundamentals and Issues. [2] http://www.itu.dk/courses/isom/e2005/armv6architecture.pdf [3] http://www.arm.com/products/processors/index.php [4] http://www.graficaobscura.com/matrix/index.html [5] www.xilinx.com [6] http://www.sciencedaily.com/releases/2008/02/080208162238.htm [7] http://www.sciencedaily.com/releases/2008/02/080208162238.htm [8] http://books.google.com/books?id=c9uxoh5ehwyc&printsec=frontcover&source=gbsv2 _summary_r&cad=0#v=onepage&q&f=false [9] http://jnci.oxfordjournals.org/content/93/20/1563 [10] S. Vassiliadis, S. D. Cotofana, and P. Stathis. Vector isa extension for sprase matrix multiplication. In Proceedings of EuroPar 99 Parallel Processing, pages 708 715, September 1999. [11] S. Vassiliadis, S. D. Cotofana, and P. Stathis. Bbcs based sparse matrix-vector multiplication: initial evaluation. In Proc. 16th IMACS World Congress on Scientific Computation, Applied Mathematics and Simulation, pages 1 6, August 2000. [12] S. Vassiliadis, S. D. Cotofana, and P. Stathis. Block based compression storage expected performance. In Proc. 14th Int. Conf. on High Performance Computing Systems and Applications (HPCS 2000), June 2000. 8. Author Information: Mr. Rounak R. Gupta is currently working as a lecturer in Electronics and Telecommunication Engineering, Sipna College of Engineering, Amravati (India), since 2011. He is also pursuing his M.E. in Digital Electronics from the same institute. His areas of interest are Digital Image Processing, VLSI Design and Digital Signal Processing. Prof. Atul S. Joshi is currently working as Professor in Electronics and Telecommunication Engineering Department, Sipna College of Engineering, Amravati (India) since inception. He is also perusing his Ph.D. in the faculty of Electronics Engineering From SGB Amravati

University, Amravati (India). His areas of interest are Communication networks, Electronics Circuits and Communication Engineering.