THREE BIT SUBTRACTION CIRCUIT VIA FIELD PROGRAMMABLE GATE ARRAY (FPGA) NOORAISYAH BINTI ARASID B

Similar documents
HIGH SPEED SIX OPERANDS 16-BITS CARRY SAVE ADDER AWATIF BINTI HASHIM

DEVELOPMENT OF PESONA RISC MICROPROCESSOR ARCHITECTURE IN FPGA MOHD FAHMIR ADZRAN BIN RAMLEE

Vol. 1, Issue VIII, Sep ISSN

HARDWARE/SOFTWARE SYSTEM-ON-CHIP CO-VERIFICATION PLATFORM BASED ON LOGIC-BASED ENVIRONMENT FOR APPLICATION PROGRAMMING INTERFACING TEO HONG YAP

MICRO-SEQUENCER BASED CONTROL UNIT DESIGN FOR A CENTRAL PROCESSING UNIT TAN CHANG HAI

Programmable Logic Devices

DESIGN AND IMPLEMENTATION OF A MUSIC BOX USING FPGA TAN KIAN YIAK

THE COMPARISON OF IMAGE MANIFOLD METHOD AND VOLUME ESTIMATION METHOD IN CONSTRUCTING 3D BRAIN TUMOR IMAGE

HARDWARE AND SOFTWARE CO-SIMULATION PLATFORM FOR CONVOLUTION OR CORRELATION BASED IMAGE PROCESSING ALGORITHMS SAYED OMID AYAT

DETECTION OF WORMHOLE ATTACK IN MOBILE AD-HOC NETWORKS MOJTABA GHANAATPISHEH SANAEI

AUTOMATIC RAILWAY GATE CONTROLLERUSING ZIGBEE NURLIYANA HAZIRAH BINTI MOHD SAFEE (B )

SMART AQUARJUM (A UTOMATIC FEEDING MACHINE) SY AFINAZ ZURJATI BINTI BAHARUDDIN

LOGICAL OPERATORS AND ITS APPLICATION IN DETERMINING VULNERABLE WEBSITES CAUSED BY SQL INJECTION AMONG UTM FACULTY WEBSITES NURUL FARIHA BINTI MOKHTER

Signature : IHSAN BIN AHMAD ZUBIR. Date : 30 November 2007

IMPLEMENTATION OF UNMANNED AERIAL VEHICLE MOVING OBJECT DETECTION ALGORITHM ON INTEL ATOM EMBEDDED SYSTEM

This item is protected by original copyright

INTRODUCTION TO FPGA ARCHITECTURE

International Journal of Advanced Research in Computer Science and Software Engineering

International Journal of Advanced Research in Computer Science and Software Engineering

HARDWARE-ACCELERATED LOCALIZATION FOR AUTOMATED LICENSE PLATE RECOGNITION SYSTEM CHIN TECK LOONG UNIVERSITI TEKNOLOGI MALAYSIA

ISOGEOMETRIC ANALYSIS OF PLANE STRESS STRUCTURE CHUM ZHI XIAN

FINGERPRINT DATABASE NUR AMIRA BINTI ARIFFIN THESIS SUBMITTED IN FULFILMENT OF THE DEGREE OF COMPUTER SCIENCE (COMPUTER SYSTEM AND NETWORKING)

FPGA for Complex System Implementation. National Chiao Tung University Chun-Jen Tsai 04/14/2011

INTEGRATION OF CUBIC MOTION AND VEHICLE DYNAMIC FOR YAW TRAJECTORY MOHD FIRDAUS BIN MAT GHANI

ENHANCING TIME-STAMPING TECHNIQUE BY IMPLEMENTING MEDIA ACCESS CONTROL ADDRESS PACU PUTRA SUARLI

AUTOMATIC PET FEEDER WITH CLIENT/SERVER APPLICATION KHAIRUL ANWAR B MOHD YAKOP UNIVERSITI MALAYSIA PAHANG

TABLE OF CONTENTS CHAPTER NO. TITLE PAGE NO.

APPENDIX A. Sample of a report front cover TITLE OF PROJECT IN CAPITAL LETTERS. (Centered within prescribed margin) STUDENT S FULL NAME

AN ANDROID-BASED SMART SECURITY TOURING SYSTEM FOR REAL-TIME DATA RECORDING USING NFC, GPS AND GSM TECHNOLOGY.

BLOCK-BASED NEURAL NETWORK MAPPING ON GRAPHICS PROCESSOR UNIT ONG CHIN TONG UNIVERSITI TEKNOLOGI MALAYSIA

AUTOMATIC APPLICATION PROGRAMMING INTERFACE FOR MULTI HOP WIRELESS FIDELITY WIRELESS SENSOR NETWORK

SYSTEMATIC SECURE DESIGN GUIDELINE TO IMPROVE INTEGRITY AND AVAILABILITY OF SYSTEM SECURITY ASHVINI DEVI A/P KRISHNAN

PINE TRAINING ACADEMY

Signature :.~... Name of supervisor :.. ~NA.lf... l.?.~mk.. :... 4./qD F. Universiti Teknikal Malaysia Melaka

ENHANCING SRAM PERFORMANCE OF COMMON GATE FINFET BY USING CONTROLLABLE INDEPENDENT DOUBLE GATES CHONG CHUNG KEONG UNIVERSITI TEKNOLOGI MALAYSIA

UNIVERSITI MALAYSIA PAHANG

BORANG PENGESAHAN STATUS TESIS

PART A SULIT (EKT 221) BAHAGIAN A. Answer ALL questions. Question 1. a) Briefly explain the concept of Clock Gating.

MAC PROTOCOL FOR WIRELESS COGNITIVE NETWORK FARAH NAJWA BINTI MOKHTAR

SUPERVISED MACHINE LEARNING APPROACH FOR DETECTION OF MALICIOUS EXECUTABLES YAHYE ABUKAR AHMED

Design and Implementation of I2C BUS Protocol on Xilinx FPGA. Meenal Pradeep Kumar

IMPROVED IMAGE COMPRESSION SCHEME USING HYBRID OF DISCRETE FOURIER, WAVELETS AND COSINE TRANSFORMATION MOH DALI MOUSTAFA ALSAYYH

Implementation of Floating Point Multiplier Using Dadda Algorithm

STUDY OF FLOATING BODIES IN WAVE BY USING SMOOTHED PARTICLE HYDRODYNAMICS (SPH) HA CHEUN YUEN UNIVERSITI TEKNOLOGI MALAYSIA

MUHAMMAD FIRDAUS BIN MD YUSOF

MAGNETIC FLUX LEAKAGE SYSTEM FOR WIRE ROPE INSPECTION USING BLUETOOTH COMMUNICATION MUHAMMAD MAHFUZ BIN SALEHHON UNIVERSITI TEKNOLOGI MALAYSIA

SOLUTION AND INTERPOLATION OF ONE-DIMENSIONAL HEAT EQUATION BY USING CRANK-NICOLSON, CUBIC SPLINE AND CUBIC B-SPLINE WAN KHADIJAH BINTI WAN SULAIMAN

A LEVY FLIGHT PARTICLE SWARM OPTIMIZER FOR MACHINING PERFORMANCES OPTIMIZATION ANIS FARHAN BINTI KAMARUZAMAN UNIVERSITI TEKNOLOGI MALAYSIA

DESIGN ANALYSIS OF EXTERIOR CAR BODY PART BASTIAN WIBAR BIN MOMANG

ADAPTIVE LOOK-AHEAD ROUTING FOR LOW LATENCY NETWORK ON-CHIP NADERA NAJIB QAID AL AREQI UNIVERSITI TEKNOLOGI MALAYSIA

EECS150 - Digital Design Lecture 6 - Field Programmable Gate Arrays (FPGAs)

AMBA AXI BUS TO NETWORK-ON-CHIP BRIDGE NG KENG YOKE UNIVERSITI TEKNOLOGI MALAYSIA

ENHANCEMENT OF UML-BASED WEB ENGINEERING FOR METAMODELS: HOMEPAGE DEVELOPMENT CASESTUDY KARZAN WAKIL SAID

Outline. EECS150 - Digital Design Lecture 6 - Field Programmable Gate Arrays (FPGAs) FPGA Overview. Why FPGAs?

Webpage: Volume 2, Issue VII July 2014 ISSN

TOWER BASE STATION SAFETY SYSTEM USING GSM TECHNOLOGY NIZAR ZACARIYYA BIN SHAPHERI

HERMAN. A thesis submitted in fulfilment of the requirements for the award of the degree of Doctor of Philosophy (Computer Science)

MULTICHANNEL ORTHOGONAL FREQUENCY DIVISION MULTIPLEXING -ROF FOR WIRELESS ACCESS NETWORK MOHD JIMMY BIN ISMAIL

IRIS RECOGNITION USING ARTIFICIAL NEURAL NETWORK FATIN ZURIAH BINTI MOHAMMAD ZUHARY

Digital Logic Design Lab

ADAPTIVE ONLINE FAULT DETECTION ON NETWORK-ON-CHIP BASED ON PACKET LOGGING MECHANISM LOO LING KIM UNIVERSITI TEKNOLOGI MALAYSIA

AUTOMATIC DETECTION TEMPERATURE TRANSMITTER FOR CALIBRATION PROCESS USING THERMOCOUPLE MUHAMAD FARID BIN A.WAHAB

Institute of Engineering & Management

DEVELOPMENT OF VENDING MACHINE WITH PREPAID PAYMENT METHOD AMAR SAFUAN BIN ALYUSI

RECOGNITION OF PARTIALLY OCCLUDED OBJECTS IN 2D IMAGES ALMUASHI MOHAMMED ALI UNIVERSITI TEKNOLOGI MALAYSIA

DEVELOPMENT OF SCADA FOR SERVO CONTROLLED PICK AND PLACE SYSTEM JUHAIDAH BINTI JOHARI

SECURE-SPIN WITH HASHING TO SUPPORT MOBILITY AND SECURITY IN WIRELESS SENSOR NETWORK MOHAMMAD HOSSEIN AMRI UNIVERSITI TEKNOLOGI MALAYSIA

Synthesis of VHDL Code for FPGA Design Flow Using Xilinx PlanAhead Tool

FPGA Based Digital Design Using Verilog HDL

Chapter 1 Overview of Digital Systems Design

Field Program mable Gate Arrays

Experiment 3. Digital Circuit Prototyping Using FPGAs

BORANG PENGESAHAN STATUS TESIS

COLOUR IMAGE WATERMARKING USING DISCRETE COSINE TRANSFORM AND TWO-LEVEL SINGULAR VALUE DECOMPOSITION BOKAN OMAR ALI

Field Programmable Gate Array (FPGA)

CONTENTS CHAPTER 1: NUMBER SYSTEM. Foreword...(vii) Preface... (ix) Acknowledgement... (xi) About the Author...(xxiii)

GIT SERVER PERFORMANCE OPTIMIZATION USING GIT-ANNEX MEOR NUR HASYIM BIN MEOR AZIZ BACHELOR OF COMPUTER SCIENCE

HOME APPLIANCE CONTROL SYSTEM TAN WEI SYE

Universiti Teknologi MARA. An Analysis on The Uses of Data Modeling in Database Application Development

Chapter 2. FPGA and Dynamic Reconfiguration ...

SLANTING EDGE METHOD FOR MODULATION TRANSFER FUNCTION COMPUTATION OF X-RAY SYSTEM FARHANK SABER BRAIM UNIVERSITI TEKNOLOGI MALAYSIA

SPEED ENHANCEMENT ON A MATRIX INVERSION HARDWARE ARCHITECTURE BASED ON GAUSS-JORDAN ELIMINATION OH ENG WEI UNIVERSITI TEKNOLOGI MALAYSIA

Workshop on Digital Circuit Design in FPGA

ELECTRONIC MUCOSA SYSTEM FOR COMPLEX ODOUR RECOGNITION NUR SYAZANA BINTI AZAHAR

FUZZY LOGIC CONTROL OF AN AUTONOMOUS MOBILE ROBOT WAN NOR SYAHIRA BINTI WAN ALI

Chip Design with FPGA Design Tools

FPGA architecture and design technology

An easy to read reference is:

Verilog Design Entry, Synthesis, and Behavioral Simulation

A TRUST MODEL FOR BUSINESS TO CUSTOMER CLOUD E-COMMERCE HOSSEIN POURTAHERI

CHAPTER 3 METHODOLOGY. 3.1 Analysis of the Conventional High Speed 8-bits x 8-bits Wallace Tree Multiplier

FINITE IMPULSE RESPONSE FILTER DESIGN ON DISTRIBUTED ARITHMETIC ARCHITECTURE MUHAMAD IQBAL BIN ABU ZAHARIN

SESSION BASED ACTIVITY MONITORING APPLICATION FOR ANDROID TAN LEIK HO

Lecture 2 Hardware Description Language (HDL): VHSIC HDL (VHDL)

ZIGBEE-BASED SMART HOME SYSTEM NURUL ILMI BINTI OMAR

INTELLIGENT NON-DESTRUCTIVE CLASSIFICATION OF JOSAPINE PINEAPPLE MATURITY USING ARTIFICIAL NEURAL NETWORK

INFORM DEPARTURE AND ARRIVING OF BUSSES USING BLUETOOTH MOHD SUHKRI BIN YASRI

This content has been downloaded from IOPscience. Please scroll down to see the full text.

SOFTWARE-BASED SELF-TESTING FOR A RISC PROCESSOR TEH WEE MENG UNIVERSITI TEKNOLOGI MALAYSIA

Panduan Guru Maker UNO/ Arduino

Transcription:

THREE BIT SUBTRACTION CIRCUIT VIA FIELD PROGRAMMABLE GATE ARRAY (FPGA) NOORAISYAH BINTI ARASID B021010227 A report submitted in partial fulfillment of requirements for the award of the Degree of Bachelor of Electronic Engineering (Computer Engineering) FACULTY OF ELECTRONICS AND COMPUTER ENGINEERING UNIVERSITI TEKNIKAL MALAYSIA MELAKA JUNE 2013

DECLARATION "I admit that this report is the result of my own work except summary and excerpt of each of them I have already explained the source." Signature:. Student Name: Nooraisyah Binti Arasid Date: 07/06/2013

DECLARATION I hereby declared that I have read through this report entitle Three Bit Subtraction Circuit via Field Programmable Gate Array (FPGA) and found that it has comply the partial fulfillment for awarding the Degree of Bachelor of Electronic Engineering (Computer Engineering) Signature:. Supervisor s Name: Encik Anuar Bin Jaafar Date:

For father and mother dearest Specially dedicated to my beloved parent, En Arasid bin Mohd Yasin and Pn. Siti Noraini binti Omar and also to my siblings who give the encouragement and support for me to completely this thesis. Not forgotten to my supervisor En Anuar bin Jaafar who gave me a lot of guidance and advices throughout this project until successful. I also want to thank to En Sani Irwan bin Md Salim who supported me a lot in finishing my final year project. Thank you very much to all of you.

ACKNOWLEDGEMENT Alhamdulillah, thanks to Allah S.W.T this project is completed. I hereby would like to take this opportunity to thank all persons who has involved generously in helping me and assisting me while I was completing the Final Year Report which is a compulsory to all Universiti Teknikal Malaysia Melaka (UTeM) students in order to complete our degree. I would firstly to express my gratitude and thanks to my project supervisor, Mr Anuar Bin Jaafar for his undivided support, guidance, tolerance, which proved to be invaluable as to completion my Final Year Project.I also would like to thank the panel; Miss Nur Aisyah bin Anas and Mr Hamzah Asyrani Bin Sulaiman whose give me a good comment during my presentation. I also would like to take this opportunity to express my appreciation to my family and friends for their patients, understanding and also for their undivided support that they had gave me throughout the completion of my project. Last but not least, I also would like to thank all those helping and supporting me during this project. Special thanks to En Sani Irwan bin Md Salim because guard and help in all aspects to finish this project.

ABSTRACT This project is about to design the software and hardware simulator for a Three Bit subtraction Circuit via FPGA. By design the Three bit subtraction circuit are involved in performing the subtraction for each bit by performs operation the arithmetic and logic unit, called the Arithmetic Logic Unit (ALU). All this operation is to display at seven segment using FPGA board by using Verilog language. A FPGA is a semiconductor device containing programmable logic components called "logic blocks", and programmable interconnects. Logic blocks can be programmed to perform the function of basic logic gates such as AND, and XOR, or more complex combinational functions such as decoders or simple mathematical functions such as additional, subtraction, multiplication, and divisions (+, -, x, ). In most FPGAs, the logic blocks also include memory elements, which may be simple flip-flops or more complete blocks of memories. Combination of FPGA and ALU will produce the design of three bit subtraction circuit via FPGA.

ABSTRAK Projek ini adalah untuk mereka bentuk perisian dan perkakasan untuk Tiga Bit penolakan melalui FPGA. Rekabentuk litar yang dihasilkan akan melaksanakan operasi penolakan yang melibatkan operasi aritmetik dan logik unit, yang dipanggil Unit Aritmetik logik (UAL). Semua operasi ini adalah untuk dipaparkan pada tujuh segmen menggunakan papan FPGA dengan menggunakan bahasa Verilog. FPGA adalah peranti semikonduktor yang mengandungi komponen logik boleh atur cara yang dipanggil "blok logik", dan diprogramkan. Blok logik boleh diprogramkan untuk melaksanakan fungsi get asas logik seperti logic DAN atau bahasa sintefiknya adalah AND Gate, dan juga menggunakan logic ATAU bahasa sintefiknya XOR, atau fungsi gabungan yang lebih kompleks seperti pengekod atau fungsi matematik yang mudah contohnya operasi penambahan, penolakan, darab dan operasi bahagi (+, -, x, ). Dalam kebanyakan FPGA, blok logik juga merangkumi elemen-elemen memori, yang mungkin mudah flip-flop atau lebih blok lengkap kenangan. Gabungan FPGA dan ALU akan menghasilkan reka bentuk tiga bit penolakan litar melalui FPGA.

vii TABLE OF CONTENTS Page TITLE DECLARATION DEDICATION ACKNOWLEDGEMENT ABSTRACT ABSTRAK TABLE OF CONTENT LIST OF TABLE LIST OF FIGURES LIST OF ABBREVIATIONS LIST OF APPENDIX i iii iv v vii viii x xi xiv xv CHAPTER I: INTRODUCTION 1.1 Project overview 1 1.2 Problem Statement 1 1.3 Objectives 2 1.4 Scope of project 3 1.5 Chapter overview 3

viii CHAPTER II: LITERATURE REVIEW 2.1 Introduction 5 2.2 Literature Review 5 2.2.1 Applications of FPGA 6 2.2.2 FPGA Architecture 7 2.2.3 FPGA design and programming 9 2.3 Xilinx Tools 10 2.3.1 Xilinx Spartan II FPGA 10 2.3.2 Design Implementation using Xilinx ISE 11 2.4 Subtraction 12 2.5 Summary 15 CHAPTER III: METHODOLOGY 3.1 Introduction 16 3.2 Methodology 16 3.3 Methodology flowchart 18 3.4 Setting up Xilinx software 22 3.5 Functional Simulation of Combinational Designs 29 3.5.1 Adding the test vectors 29 3.5.2 Simulating and Viewing the Output Waveforms 30 3.5.3 Assigning Pins with Constraints 32 3.6 Summary 35

ix CHAPTER IV: RESULT AND ANALYSIS 4.1 Introduction 36 4.2 Design three bit subtraction 36 4.3 Result and Analysis 41 4.4 Summary 45 CHAPTER V: CONCLUSION AND RECOMMENDATIONS 5.1 Conclusion 46 5.2 Recommendation 47 REFERENCES 50 APPENDICES 52

x LIST OF TABLES TABLE NO. TITLE PAGES 2.1 Truth Table 14 4.1 The Truth For The Half Adder 38 4.2 Full Adder 40

xi LIST OF FIGURES FIGURE NO. TITLE PAGES 2.1 Internal Architecture of FP 10 2.2 The Spartan-II FPGA platform 11 2.3 Xilinx Integrated Software Environment (ISE) 12 2.4 Example design a subtraction circuit 15 2.5 Example Verilog coding 15 3.1 Methodology flowchart 19 3.2 Step-by-step through the design process 20 3.3 The simulation flow 21 3.4 Window Form of Xilinx ISE 10.1 22 3.5 New Project Initiation window (snapshot from Xilinx ISE software) 3.6 Device and Design Flow of Project (snapshot from Xilinx ISE software) 3.7 Create new source window (snapshot from Xilinx ISE software) 23 24 25 3.8 Creating Verilog-HDL source file 26

xii 3.9 Define Verilog Source window (snapshot from Xilinx ISE software) 3.10 New Project Information window (snapshot from Xilinx ISE software) 27 28 3.11 Language Templates Verilog (from Xilinx ISE software) 29 3.12 Adding test vectors to the design (snapshot from Xilinx ISE software) 30 3.13 Simulating the design 31 3.14 Simulation Results 32 3.15 Construct the pin input output 32 3.16 impact Welcome Dialog Box 33 3.17 Download of the bit stream to the FPGA 34 3.18 Progress of the bit stream download 34 3.19 Succeeded message 35 4.1 Block diagram for three bit subtraction circuit design 37 4.2 Implementation of Half-Adder 39 4.3 Implement of Full Adder with two half adders and an OR gate 41 4.4 RTL schematic for top module three bits 42 4.5 Full RTL schematic 43 4.6 Simulation result of three bit subtraction 44 4.7 Simulation result of three bit subtraction 44 4.8 Simulation result of three bit subtraction 45

xiii 5.1 Block diagram for communication between the XILINK ISE and the SPARTAN BOARD 48

xiv LIST OF ABBREVIATIONS FPGA - Field Programmable Gate Array ASIC - Application-Specific Integrated Circuit UCF - User Constraints File ISE - Integrated Software Environment DSP - Digital Signal Processor SOC - Systems on Chips CLBs - Configurable Logic Blocks LUT - Lookup Table

xv LIST OF APPENDIX FIGURE NO. TITLE PAGES 6.1 RTL schematic for first complement 53 6.2 RTL schematic for second complement 54 6.3 RTL schematic Full Adder 55 6.4 RTL schematic Half Adder 55

1 CHAPTER I INTRODUCTION 1.1 Project Overview This chapter will cover the introduction of the project. The chapter starts with a brief background of the project. Then, it provides the problem statements that are addressed by this project, followed by the objectives and scope. Finally, the organization of this thesis is given. 1.2 Problem Statement This project is to design the software and a hardware simulator for a Three Bit subtraction Circuit Via FPGA. By design the Three bit subtraction circuit are involved in performing the subtraction for each bit by performs operation the arithmetic and logic unit, called the Arithmetic Logic Unit (ALU) example Addition, Subtraction, Multiplication and Division.

2 All this operation is to display at seven segment using FPGA board by using Verilog language. A FPGA is a semiconductor device containing programmable logic components called "logic blocks", and programmable interconnects. Logic blocks can be programmed to perform the function of basic logic gates such as AND, and XOR, or more complex combinational functions such as decoders or simple mathematical functions (+, -, x, ). In most FPGAs, the logic blocks also include memory elements, which may be simple flip-flops or more complete blocks of memories. Combination of FPGA and ALU will produce the design of three bit subtraction circuit via FPGA. The purpose of designing three bit subtraction is because if we want to do operation of subtraction we need three bit example 2 0 = 2 the integer is representing as bits. These three bits will be implemented as logic gates in order to obtain the result of subtraction. The process of subtraction will be latter discuss in chapter III. The problem before this was FPGAs are usually slower than their applicationspecific integrated circuit (ASIC) counterparts, as they cannot handle as complex a design, and draw more power. If we represent two bits for subtraction it will not give any result. Therefore to obtain the result the minimum number of bits to be used is three bits. 1.3 Objectives The main objective of this project is to design the three bit subtraction circuit via field programmable gate array (FPGA). To develop Verilog program for doing basic arithmetic instruction concept and basic information about the FPGA. Moreover, to design the Three bit subtraction involved in performing the subtraction for each bit by performs operation the arithmetic and logic unit, called the Arithmetic Logic Unit (ALU).

3 1.4 Scope of project The main goal of this project is design Three Bit Subtraction Circuit Via FPGA. There is two scope will be cover in this project. Firstly is to design circuit using structure model of verilog. Then simulation design with is to develop the coding of three bit subtraction circuit using the Verilog language. Simulate design will be run whether coding successful or not. Secondly is to testing on the board which is trainer board FPGA Spartan II. Once coding of three bit subtraction is fully finish. The coding will be testing on board FPGA. 1.5 Chapter overview This thesis comprises five chapters and that is Introduction, Literature Review, Methodology, Result and Analysis, and Conclusion and Recommendations. Introduction has been provided in this chapter whereby it serves as the background for understanding the project described in this thesis. Next, Chapter II reviews the theory on subtraction and research about work related to the project. For, Chapter III discusses about the methodology that was followed during the course of this project.

4 Experimental results and analysis is presented in Chapter IV and finally, this thesis ends with Chapter V that concludes the project followed by a number of recommendations for future research.

5 CHAPTER II LITERATURE REVIEW 2.1 Introduction In this chapter, reviews of the previous researches project that are related with this project will be discussed. The information becomes additional source for the project in becoming more successful. To have a brief understanding of the researches related to the project, a few literature reviews had been done. This chapter will describe the related literature reviews. 2.2 Literature Review A field-programmable gate array is a semiconductor device containing programmable logic components called "logic blocks", and programmable interconnects [1]. Logic blocks can be programmed to perform the function of basic logic gates such as AND, and XOR, or more complex combinational functions such as decoders or simple mathematical functions [2].

6 In most FPGAs, the logic blocks also include memory elements, which may be simple flip-flops or more complete blocks of memories. A hierarchy of programmable interconnects allows logic blocks to be interconnected as needed by the system designer, somewhat like a one-chip programmable breadboard. Logic blocks and interconnects can be programmed by the customer or designer, after the FPGA is manufactured, to implement any logical function hence the name "field-programmable"[1]. FPGAs are usually slower than their application-specific integrated circuit (ASIC) counterparts, as they cannot handle as complex a design, and draw more power. But their advantages include a shorter time to market, ability to re-program in the field to fix bugs, and lower non-recurring engineering costs. Vendors can sell cheaper, less flexible versions of their FPGAs which cannot be modified after the design is committed. The designs are developed on regular FPGAs and then migrated into a fixed version that more resembles an ASIC. Another alternative are complex programmable logic devices (CPLDs). For this project, I have used the Xilinx Sparta-II FPGA. 2.2.1 Applications of FPGA Applications of FPGAs include digital signal processor DSP, software-defined radio, aerospace and defense systems, ASIC prototyping, medical imaging, computer vision, speech recognition, cryptography, bioinformatics, computer hardware emulation and a growing range of other areas. FPGAs originally began as competitors to CPLDs and competed in a similar space, that of glue logic for PCBs. As their size, capabilities, and speed increased, they began to take over larger and larger functions to the state where some are now marketed as full systems on chips (SOC).FPGAs especially find applications in any area or algorithm that can make use of the massive parallelism offered by their architecture. One such area is code breaking, in particular brute-force attack, of cryptographic algorithms.

7 FPGAs are increasingly used in conventional High Performance Computing applications where computational kernels such as FFT or Convolution are performed on the FPGA instead of a microprocessor. The use of FPGAs for computing tasks is known as reconfigurable computing [1]. The inherent parallelism of the logic resources on the FPGA allows for considerable compute throughput even at a sub-500mhz clock rate. For example, the current (2007) generation of FPGAs can implement around 100 single precision floating point units, all of which can compute a result every single clock cycle. The flexibility of the FPGA allows for even higher performance by trading off precision and range in the number format for an increased number of parallel arithmetic units. This has driven a new type of processing called reconfigurable computing, where time intensive tasks are offloaded from software to FPGAs. The adoption of FPGAs in high performance computing is currently limited by the complexity of FPGA design compared to conventional software and the extremely long turn-around times of current design tools, where 4-8 hours wait is necessary after even minor changes to the source code [2]. 2.2.2 FPGA Architecture The typical basic architecture consists of an array of configurable logic blocks (CLBs) and routing channels. Multiple I/O pads may fit into the height of one row or the width of one column in the array. Generally, all the routing channels have the same width (number of wires). An application circuit must be mapped into an FPGA with adequate resources. A classic FPGA logic block consists of a 4-input lookup table (LUT), and flip-flop, as shown below. In recent years, manufacturers have started moving to 6-input LUTs in their high performance parts, claiming increased performance.