A Flexible FPGA communication

Similar documents
Design of VGA and Implementing On FPGA

EEM Digital Systems II

VGA Port. Chapter 5. Pin 5 Pin 10. Pin 1. Pin 6. Pin 11. Pin 15. DB15 VGA Connector (front view) DB15 Connector. Red (R12) Green (T12) Blue (R11)

Design of VGA Controller using VHDL for LCD Display using FPGA

Design and Implementation of an AHB VGA Peripheral

Design and Implementation of SOC VGA Controller Using Spartan-3E FPGA

VHDL Design and Implementation of FPGA Based Logic Analyzer: Work in Progress

FPGA Laboratory Assignment 4. Due Date: 06/11/2012

AbhijeetKhandale. H R Bhagyalakshmi

Authentic Time Hardware Co-simulation of Edge Discovery for Video Processing System

Lab # 9 VGA Controller

Massachusetts Institute of Technology Department of Electrical Engineering and Computer Science Introductory Digital Systems Laboratory

Massachusetts Institute of Technology Department of Electrical Engineering and Computer Science Introductory Digital Systems Laboratory

LUT Optimization for Memory Based Computation using Modified OMS Technique

VGA Configuration Algorithm using VHDL

[Kadlag*, TECHNOPHILIA: February, 2016] ISSN: (I2OR), Publication Impact Factor: 3.785

Digilent Nexys-3 Cellular RAM Controller Reference Design Overview

Block Diagram. dw*3 pixin (RGB) pixin_vsync pixin_hsync pixin_val pixin_rdy. clk_a. clk_b. h_s, h_bp, h_fp, h_disp, h_line

Design and analysis of microcontroller system using AMBA- Lite bus

Lab 3: VGA Bouncing Ball I

Spartan-II Development System

FPGA Implementation of DA Algritm for Fir Filter

Testing Results for a Video Poker System on a Chip

Design and implementation (in VHDL) of a VGA Display and Light Sensor to run on the Nexys4DDR board Report and Signoff due Week 6 (October 4)

FPGA-BASED EDUCATIONAL LAB PLATFORM

Performance Evolution of 16 Bit Processor in FPGA using State Encoding Techniques

An Efficient SOC approach to Design CRT controller on CPLD s

Faculty of Electrical & Electronics Engineering BEE3233 Electronics System Design. Laboratory 3: Finite State Machine (FSM)

L12: Reconfigurable Logic Architectures

L11/12: Reconfigurable Logic Architectures

Design of Low Power Efficient Viterbi Decoder

VGA Controller. Leif Andersen, Daniel Blakemore, Jon Parker University of Utah December 19, VGA Controller Components

Design of BIST with Low Power Test Pattern Generator

Real-Time Digital Oscilloscope Implementation in 90nm CMOS Technology FPGA

SOC Implementation for Christmas Lighting with Pattern Display Indication RAMANDEEP SINGH 1, AKANKSHA SHARMA 2, ANKUR AGGARWAL 3, ANKIT SATIJA 4 1

Sundance Multiprocessor Technology Limited. Capture Demo For Intech Unit / Module Number: C Hong. EVP6472 Intech Demo. Abstract

VLSI Technology used in Auto-Scan Delay Testing Design For Bench Mark Circuits

Design and FPGA Implementation of 100Gbit/s Scrambler Architectures for OTN Protocol Chethan Kumar M 1, Praveen Kumar Y G 2, Dr. M. Z. Kurian 3.

OF AN ADVANCED LUT METHODOLOGY BASED FIR FILTER DESIGN PROCESS

Implementation of Dynamic RAMs with clock gating circuits using Verilog HDL

A CONTROL MECHANISM TO THE ANYWHERE PIXEL ROUTER

Digital Blocks Semiconductor IP

Laboratory 1 - Introduction to Digital Electronics and Lab Equipment (Logic Analyzers, Digital Oscilloscope, and FPGA-based Labkit)

Design and Implementation of Partial Reconfigurable Fir Filter Using Distributed Arithmetic Architecture

Tutorial 11 ChipscopePro, ISE 10.1 and Xilinx Simulator on the Digilent Spartan-3E board

An FPGA Based Solution for Testing Legacy Video Displays

Implementation of UART with BIST Technique

Implementing VGA Application on FPGA using an Innovative Algorithm with the help of NIOS-II

Lecture 14: Computer Peripherals

Spartan-II Development System

FPGA Design with VHDL

VID_OVERLAY. Digital Video Overlay Module Rev Key Design Features. Block Diagram. Applications. Pin-out Description

Display Technology. Images stolen from various locations on the web... Cathode Ray Tube

FPGA Design. Part I - Hardware Components. Thomas Lenzi

CHAPTER 6 DESIGN OF HIGH SPEED COUNTER USING PIPELINING

Sharif University of Technology. SoC: Introduction

March 13, :36 vra80334_appe Sheet number 1 Page number 893 black. appendix. Commercial Devices

Optimization of memory based multiplication for LUT

Clock Gating Aware Low Power ALU Design and Implementation on FPGA

FPGA Based Implementation of Convolutional Encoder- Viterbi Decoder Using Multiple Booting Technique

LogiCORE IP Video Timing Controller v3.0

PROCESSOR BASED TIMING SIGNAL GENERATOR FOR RADAR AND SENSOR APPLICATIONS

Adding Analog and Mixed Signal Concerns to a Digital VLSI Course

CAD for VLSI Design - I Lecture 38. V. Kamakoti and Shankar Balachandran

EECS150 - Digital Design Lecture 12 - Video Interfacing. Recap and Outline

AD9884A Evaluation Kit Documentation

Field Programmable Gate Array (FPGA) Based Trigger System for the Klystron Department. Darius Gray

Display Technology.! Images stolen from various locations on the web... Cathode Ray Tube

Lab Assignment 2 Simulation and Image Processing

Low Power Approach of Clock Gating in Synchronous System like FIFO: A Novel Clock Gating Approach and Comparative Analysis

Design & Simulation of 128x Interpolator Filter

Why FPGAs? FPGA Overview. Why FPGAs?

Enhancing Performance in Multiple Execution Unit Architecture using Tomasulo Algorithm

IMPLEMENTATION OF X-FACTOR CIRCUITRY IN DECOMPRESSOR ARCHITECTURE

CSCB58 - Lab 4. Prelab /3 Part I (in-lab) /1 Part II (in-lab) /1 Part III (in-lab) /2 TOTAL /8

Sundance Multiprocessor Technology Limited. Capture Demo For Intech Unit / Module Number: C Hong. EVP6472 Intech Demo. Abstract

Abstract 1. INTRODUCTION. Cheekati Sirisha, IJECS Volume 05 Issue 10 Oct., 2016 Page No Page 18532

1ms Column Parallel Vision System and It's Application of High Speed Target Tracking

Field Programmable Gate Arrays (FPGAs)

Optimizing area of local routing network by reconfiguring look up tables (LUTs)

LUT OPTIMIZATION USING COMBINED APC-OMS TECHNIQUE

AC : DIGITAL DESIGN MEETS DSP

Lancelot. VGA video controller for the Altera Nios II processor. V4.0. December 16th, 2005

Design and Implementation of Timer, GPIO, and 7-segment Peripherals

EN2911X: Reconfigurable Computing Topic 01: Programmable Logic. Prof. Sherief Reda School of Engineering, Brown University Fall 2014

A video signal processor for motioncompensated field-rate upconversion in consumer television

Inside Digital Design Accompany Lab Manual

Lab #5: Design Example: Keypad Scanner and Encoder - Part 1 (120 pts)

A NOVEL DESIGN OF COUNTER USING TSPC D FLIP-FLOP FOR HIGH PERFORMANCE AND LOW POWER VLSI DESIGN APPLICATIONS USING 45NM CMOS TECHNOLOGY

Figure 1: Feature Vector Sequence Generator block diagram.

Design of BIST Enabled UART with MISR

International Journal of Engineering Research-Online A Peer Reviewed International Journal

Using on-chip Test Pattern Compression for Full Scan SoC Designs

Display Technology. Images stolen from various locations on the web... Cathode Ray Tube

University College of Engineering, JNTUK, Kakinada, India Member of Technical Staff, Seerakademi, Hyderabad

EDA385 Bomberman. Fredrik Ahlberg Adam Johansson Magnus Hultin

Design of Memory Based Implementation Using LUT Multiplier

CHAPTER 3 EXPERIMENTAL SETUP

Memec Spartan-II LC User s Guide

CMOS Design Analysis of 4 Bit Shifters 1 Baljot Kaur, M.E Scholar, Department of Electronics & Communication Engineering, National

Transcription:

A Flexible FPGA communication Shubha Hiremath 1, Meghana Kulkarni 2 1 MTech student, Department of VLSI Design and Embedded systems, VTU Belgavi, Karnataka, India 2 Associate Professor, Department of VLSI Design and Embedded systems VTU Belgavi, Karnataka, India Abstract This work is aimed at design and implementation of VGA controller. Video Graphics Interface is widely used as standard display interface. The design consists of top layer module design and the timing function simulation. Hardware architecture is implemented on a NEXYS 3 SPARTAN 6 Field Programmable Gate Array chip, which has gained considerable traction for its application in conjunction with VGA controllers [1]. The focus is on system architecture, hardware design and software programming. This controller is developed using only VERILOG (hardware description language) based on the IEEE standards, to ensure the portability for any manufacturer. The system can display various color strips, Chinese characters, images and even perform certain image processing techniques such as data compression, noise removal etc. The results show that this proposed algorithm gives good performance with optimal time and low resource utilization of up to 54% registers and 31% functional units. Since, the data can be sent directly to monitors, the design speeds up data processing, improve system reliability in real-time and conserve hardware resources. Keywords FPGA, VERILOG, VGA Controller, Nexys 3 Spartan 6. I. INTRODUCTION (SIZE 10 & BOLD) The most popular display interface for the applications like video conference systems, facerecognition systems, surveillance and remote vehicle guidance systems, is Video Graphics Array (VGA). VGA Controller is a system which works with high frequency signals, possessing a property of hardware exclusivity. Initially, the implementation and corresponding usage was carried out directly on the printed circuit boards, however the solutions corresponding to these are accompanied with parameters like over sizing and high power dissipation. The tools which are quite common are DSP, or GPU. FPGA has better potential in terms of parallelism than DSP. GPU has very high power consumption, though it provides a flexible environment for parallelism. With the advancements in the field of semiconductor technology, FPGA s now hosts the capabilities like impacted size and low power utilization. During the span of 2014 to 2020, it is expected that the FPGA market will possess a CAGR growth rate of 9.1 % [2]. An extensive work and research has been conducted when it comes to image recognition topics based on FPGA and corresponding algorithms have been deployed and tested widely. In this work, the solution is implemented on a FPGA hardware unit and a top-down programming methodology is adopted in the integration tools (XILINX ISE 14.3). Each module can be downloaded into the FPGA, post execution of the following steps: implementation, compiling, function simulation, layout and timing simulation. The advantages of this work are compacting circuit board size, accompanied with enhancement in reliability of the system, providing for versatile design flexibility, thus leading to lower costs [3]. II. TOOLS AND TECHNIQUES The prototype application for communication between FPGA and PC, and vice versa is as shown in block diagram below, Fig.1. It has VGA interface between FPGA and PC2 and JTAG interface between PC1 and FPGA. Custom designed Verilog module along with mapped text file generated through MATLAB is dumped on to FPGA and displayed on the VGA monitor on PC2. The corresponding tools and techniques used to develop this working prototype are listed below. Fig. 1: Block Diagram of Prototype functioning A. Hardware Unit1: Nexys3 Spartan-6 The Nexys3 is an FPGA hardware unit manufactured by Xilinx, which provides a digital circuit development platform, complete and ready to use. This hardware is based on the Xilinx Spartan-6 LX16 FPGA. The Field programmable gate arrays these days are entirely system on chip (SoC). The FPGA board used for VGA controller implementation in this project is a Spartan 6 kit by Nexys 3 [4]. It is a digital circuit development platform based on the Xilinx Spartan-6 LX16 FPGA. Its features include 2,278 slices, each slice contains four 6-input LUTs and eight flip-flops, 576kbits of fast block RAM, two clock tiles (four DCMs & two PLLs), 32 DSP slices and 500MHz+ clock speeds [4]. It includes 16Mbytes of Cellular RAM, 32Mbytes of micron s latest phase change non- ISSN: 2231-5381 http://www.ijettjournal.org Page 83

volatile memory, an USB-UART port, also an USB host port for mice and keyboards, a 10/100 ethernet PHY, and an improved high-speed expansion connector. These exclusive peripherals make the Nexys3 board an ideal host for a wide range of applications. Nexys3 uses Digilent s Adept USB2 system, which offers both FPGA and ROM programming and is compatible with all Xilinx CAD tools including EDK, ChipScope, and free WebPack [4]. counter gets incremented. Display row is tracked by this counter. The address into a video display buffer is formulated by these two simultaneously running counters. In between onset of HS pulse and onset of VS pulse, there is no time relationship specified. Consequently, the counters can be arranged to reduce the decoding logic for sync pulse generation or easy formation of video RAM addresses. B. Hardware Unit2: VGA Controller VGA can be referred to as an Analog computer display or the 15 pin D-subminiature VGA connector or to the 640x480 resolution itself. The VGA Signal Timings have been tabulated in below Table.1 [5]. A 25 MHz pixel clock and 60 Hz ± 1 refresh was employed to derive these signal timings for a display (640 pixel by 480 row). The relation between each timing symbol is depicted in Fig.2. Through examination of different VGA display, the timing for sync pulse width (TPW) and front and back porch intervals (TFP and TBP) are derived. Back porch parameters are the pre-and post-sync pulse times. During these intervals, data cannot be displayed [5]. Sy mb ol TS Para mete r Sync Pulse time Vertical Sync Time 16.7 ms Cloc ks 416,8 00 Lin es Horizonta l Sync Tim e μs Clo cks 521 32 800 Fig. 2: VGA Control Timing C. Software tool1: MATLAB 7.10 R2010A The MATLAB tool was used to read the image which is supposed to be dumped on the FPGA kit and displayed on the VGA monitor screen D. Software design tool2: Xilinx ISE 14.3 The Xilinx ISE 14.3 tool was used as a base IDE to run and execute Verilog code that was primarily done as a pre-test before hardware deployment E. Tool Chain The tool chain required to execute the project was established on factors like, no clash which may lead to compatibility and other unknown issues. The tool chain is displayed in the Fig.3 below. TDI SP Displ ay time 15.36 ms 384,0 00 480 25.6 640 TP W TFP TB P Pulse width Front porch Back porch 64 μs 1,600 2 3.84 96 320 μs 928 μs 8,000 10 640 16 23,20 0 29 1.92 48 Table 1: 640x480 VGA Mode timing Generally, the horizontal timing is controlled by a counter clocked by the pixel clock. The HS signal is generated by decoded counter values. On a provided row, current pixel display is tracked by this counter. Vertical timing is tracked by a separate counter. Further, the VS signal is generated by decoded values. With every HS pulse, the vertical-sync Fig. 3: Tool Chain for Prototype Application In this work, a top model was formulated in Xilinx, which constituted of all the programs encompassing horizontal scan, vertical scan, color code, and clock division. MATLAB was used for pre-processing of the image, wherein the image was read and accompanied with conversion into text file, which was further dumped into the FPGA hardware unit. Next, FPGA sent across this processed image to the VGA monitor via VGA cable and the output was displayed in the monitor. A 24-bit sample picture is taken. It is converted to a 3-bit format which is compatible with both Spartan 6 FPGA board and VGA display controller. The application uses three fundamental colors Red, Green and Blue. Each color is of 8bits, when these ISSN: 2231-5381 http://www.ijettjournal.org Page 84

colors are merged the combination will be a 24-bit image. Since the image should be made compatible with both the Spartan 6 FPGA and the VGA port, it is scaled down to 8bits. After scaling down each of the red and green colors, flatter down to 3bits each and blue color takes a 2bit value which when juxtaposed becomes an 8-bit image. The text file is the MSB value of R, G and B colors of each pixel. The 3-bit display color code is as shown in Table.2 below [5]. GA_RED VGA_GR EEN VGA_ BLUE Resulting Color 0 0 0 Black 0 0 1 Blue 0 1 0 Green 0 1 1 Cyan 1 0 0 Red 1 0 1 Magenta 1 1 0 Yellow 1 1 1 White Table 2: RGB values for color code 1 As shown in the above tabulation Table.2, the MSB value of R, G and B colors forms the text file indicating the resulting color. For example, if both Green and Blue are 0 and MSB Red is 1 then the color would be Red and so on the color strips corresponding to the bits are generated. When associated with the MATLAB code through which the image is read, the image is been dumped and displayed on the VGA screen. Fig. 4: Proposed Block Diagram IV. IMPLEMENTATION AND RESULTS A. Steps for Implementation i. Take a Nexys3 Spartan-6 Development Board. ii. Connect 12V supply through adapter to turn ON/OFF the board. iii. Connect JTAG cable to PC1 and also VGA cable to PC2. iv. Open Xilinx ISE14.3 software, by double clicking on Xilinx 14.3 icon and compile Verilog code in the software. vi. Assign the pins at pin planner, by using user manual of the development board. vii. In order to dump the program on board, select the device program, verify and observe the color strips on the VGA monitor screen of PC2. viii. To display and observe the image associate and read the MATLAB code with the Verilog module through read mem function. B. Flow Chart III. PROPOSED ARCHITECTURE Fig.4 depicts the proposed block diagram of VGA Controller, consisting reset generator block, clock generator block and VGA Controller block. Clock pulse of 100MHz and reset signal is provided as input to the block and RGB (red, green, blue), horizontal synchronization, vertical synchronization and blanking signals are obtained as outputs. The objective of reset block is to produce the reset signal and that of clock generator is to decrease the frequency of input clock from 100 MHz to 25 MHz, to realize 640 x 480 resolution [6], [8]. The VGA synchronization, vga_sync signal generates the timing and synchronization signals, vga_hs which specifies the time to scan a row and vga_vs specifies the time required to scan the entire screen. The vga_blank indicates retrace period of the display [5], [7]. Fig. 4: Flow chart for VGA controller implementation ISSN: 2231-5381 http://www.ijettjournal.org Page 85

The flowchart specified in Fig.5 describes the operation of VGA controller and the verilog module flow. The following algorithm is used to describe the flowchart: Step.1 Run the matlab code and generate a text file. Step.2 Place the text file in the verilog directory Step.3 Reduce the 100MHz FPGA clock frequency to 25MHz Step.4 Set the horizontal and vertical synchronization signal timings suitable for the respective VGA controller mode Step.5 Input the RGB values of 8bits to display the color strips on the VGA monitor Step.6 Increment the location of x_pixes and y_pixels Step.8 If x_pixel is equal to 640 and y_pixel is equal to 480, the condition satisfies and the respective image is displayed on the VGA monitor screen Step.9 Else the pixels are incremented to 640x480 resolution and then the image is displayed. C. Results The results as compared with the existing system show all the possible combinations of RGB colors. This reduces the area required for the colors to be displayed and thus the power consumption [9]. Also the methodology involves generating text file of the image to be displayed which again saves the time required for hex file generation [10]. The verilog module is designed in Xilinx ISE 14.3. It includes codes for clock division that reduces the clock frequency to 25MHz, color display which is responsible for the display of the RGB colors of 8bits, horizontal and vertical synchronization codes for scanning the horizontal and vertical lines of the VGA screen. Fig. 7: Colour strips on VGA screen Further coding is done in MATLAB to read a specific image and convert it into text file. This text while when placed in the directory of the verilog module can be read by the module through a read_mem file. This integrated code when dumped on to the Spartan 6 kit display the image read by the MATLAB on the VGA screen of PC2 which is as shown in Fig.9. Fig.8: Simulation results Fig. 6: RTL schematic of Verilog module This verilog module can be observed in Fig.6 which shows the RTL schematic of the module. This module when simulated and dumped on to the Spartan 6 FPGA kit displays color strips on the VGA monitor screen of PC2 which can observed in Fig.7. Fig. 9: Image displayed on VGA screen ISSN: 2231-5381 http://www.ijettjournal.org Page 86

V. CONCLUSION A flexible communication is thus established between two PCs and the required image is transmitted. This communication defines and describes a VGA controller as to how it is used to establish interconnection between the VGA monitor screen and Spartan-6 FPGA through VGA port, in order to display the color strips formed by basic RGB colors and read the required image. Individual modules of VGA controller are developed using verilog HDL and functionally verified using Xilinx ISE. The synthesis is done using Spartan-6 FPGA and the results for the system development specify reduced number of resources utilized that is upto 54% of registers and 31% of functional units. In this proposed design, it can be said that FPGA is very feasible and convenient method in implementing VGA controllers as it requires new data to change the design and display each time. Verilog HDL makes the design flexible, reliable and convenient. The text file generation through MATLAB and VGA controller together are used for image processing and its results are better than the conventional BRAM method that consumes much processing time for image conversion [10]. REFERENCES [1] FPGA Based Multi Resolution Graphics Controller, Abhijith S, International Journal of Engineering Trends and Technology (IJETT) Volume 14 Number 6 Aug 2014. [2] http://economictimes.indiatimes.com/topic/cagr FPGAmarket growth [3] Philip H.W. Leong, Dept. of Computer Science and Engineering, Recent Trends in FPGA Architectures and Applications, 4th IEEE International Symposium on Electronic Design, Test & Applications [4] Nexys3 Board Reference Manual Revision, (April 3, 2013), www.digilentinc.com [5] Spartan-3,Starter Kit Board User Guide, Chapter 5 VGA Port, www.xilinx.com (online) [6] Renuka A. Wasu, Vijay R. Wadhankar, Research Scholar, Dept. of ENC, Agnihotri College of Engineering, Nagthana Road, Wardha(M.S), India, H.O.D, Dept. of ENC, Agnihotri College of Engineering, Nagthana Road, Wardha (M.S), India, Design and Implementation of VGA Controller on FPGA, International journal of Innovative research in computer engineering. [7] W. James MacLean, Department of Electrical & Computer Engineering, University of Toronto, Toronto, Ontario, M5S 1A1, maclean@eecg.toronto.edu, Evaluation of the Suitability An of FPGAs for Embedded Vision Systems [8] Niveditha Yadav M, Yaseen Basha, Rohith S, Venkateshkumar H, Algorithm to Design VGA controller on FPGA Board [8] V. Betz, J. Rose, and A. Marquardt, Eds., Architecture and CAD for Deep-Submicron FPGAs. Kluwer Academic Publishers,1999 [9] Video Graphics array interfacing through Artix-7 FPGA Mr. Naga V Satyanarayana Murthy, Asst. Professor, department of ECE GNITC, Hyderabad-501506, India [10] Image processing using FPGA. By: Sumitha Ajith Saicharan, Bandarupalli and Mahesh Borgaonkar http://web.cecs.pdx.edu/~mperkows/temp/kalman/ece 590_ProjectReport[1].pdf ISSN: 2231-5381 http://www.ijettjournal.org Page 87