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

Similar documents
Design of VGA Controller using VHDL for LCD Display using FPGA

AbhijeetKhandale. H R Bhagyalakshmi

VGA Configuration Algorithm using VHDL

Design of VGA and Implementing On FPGA

Design and Implementation of an AHB VGA Peripheral

Cyclone II EPC35. M4K = memory IOE = Input Output Elements PLL = Phase Locked Loop

2. Logic Elements and Logic Array Blocks in the Cyclone III Device Family

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

SignalTap: An In-System Logic Analyzer

An FPGA Based Solution for Testing Legacy Video Displays

ECE532 Digital System Design Title: Stereoscopic Depth Detection Using Two Cameras. Final Design Report

Laboratory Exercise 4

OL_H264MCLD Multi-Channel HDTV H.264/AVC Limited Baseline Video Decoder V1.0. General Description. Applications. Features

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

OL_H264e HDTV H.264/AVC Baseline Video Encoder Rev 1.0. General Description. Applications. Features

Pivoting Object Tracking System

A Novel Macroblock-Level Filtering Upsampling Architecture for H.264/AVC Scalable Extension

Lab 3: VGA Bouncing Ball I

IMPLEMENTING A SOFT-CORE NIOS II PROCESSOR

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

Laboratory Exercise 7

A Flexible FPGA communication

Oscilloscopes, logic analyzers ScopeLogicDAQ

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

Lab 13: FPGA Circuit Realization Ian Callahan

Laboratory 4 Check Off Sheet. Student Name: Staff Member Signature/Date: Part A: VGA Interface You must show a TA the following for check off:

RESEARCH AND DEVELOPMENT LOW-COST BOARD FOR EXPERIMENTAL VERIFICATION OF VIDEO PROCESSING ALGORITHMS USING FPGA IMPLEMENTATION

HDL & High Level Synthesize (EEET 2035) Laboratory II Sequential Circuits with VHDL: DFF, Counter, TFF and Timer

Laboratory Exercise 7

FPGA Development for Radar, Radio-Astronomy and Communications

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

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

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

UNIVERSITY OF TORONTO JOÃO MARCUS RAMOS BACALHAU GUSTAVO MAIA FERREIRA HEYANG WANG ECE532 FINAL DESIGN REPORT HOLE IN THE WALL

1 Terasic Inc. D8M-GPIO User Manual

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

CHAPTER 3 EXPERIMENTAL SETUP

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

3. Configuration and Testing

Implementing Audio IP in SDI II on Arria V Development Board

LUT OPTIMIZATION USING COMBINED APC-OMS TECHNIQUE

AN 776: Intel Arria 10 UHD Video Reference Design

OF AN ADVANCED LUT METHODOLOGY BASED FIR FILTER DESIGN PROCESS

CHAPTER 6 DESIGN OF HIGH SPEED COUNTER USING PIPELINING

Bit Swapping LFSR and its Application to Fault Detection and Diagnosis Using FPGA

Cable Headend Virtualization Test Application

ANALOG TO VGA VIDEO INTERFACE GREGORY M. REDMAN. A technical report submitted to the Graduate School. In partial fulfillment of the requirements

Lecture 14: Computer Peripherals

Altera's 28-nm FPGAs Optimized for Broadcast Video Applications

About... D 3 Technology TM.

A Low Power Implementation of H.264 Adaptive Deblocking Filter Algorithm

Laboratory 4 Check Off Sheet. Student Name: Staff Member Signature/Date: Part A: VGA Interface You must show a TA the following for check off:

Hardware Modeling of Binary Coded Decimal Adder in Field Programmable Gate Array

A High Performance VLSI Architecture with Half Pel and Quarter Pel Interpolation for A Single Frame

Using SignalTap II in the Quartus II Software

FPGA TechNote: Asynchronous signals and Metastability

SDR Implementation of Convolutional Encoder and Viterbi Decoder

Digilent Nexys-3 Cellular RAM Controller Reference Design Overview

Design and Realization of the Guitar Tuner Using MyRIO

Automatic Projector Tilt Compensation System

TV Synchronism Generation with PIC Microcontroller

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

IE1204 Digital Design F11: Programmable Logic, VHDL for Sequential Circuits

AN ADVERTICING MODUL, DEVELOPED ON THE BASE OF A CPLD PROGRAMABLE DEVICE

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)

Catching LED Game: An FPGA Developing Board Implementation

IE1204 Digital Design. F11: Programmable Logic, VHDL for Sequential Circuits. Masoumeh (Azin) Ebrahimi

APPLICATION NOTE. Fiber Alignment Now Achievable with Commercial Software

Keywords- Discrete Wavelet Transform, Lifting Scheme, 5/3 Filter

G-106 GWarp Processor. G-106 is multiple purpose video processor with warp, de-warp, video wall control, format conversion,

SCOREBOARDS ADDENDUM NO. 2 PROJECT NO PAGE 1 OF 5 MATTOON ILLINOIS April 12, 2018 ADDENDUM NO. 2

Press Publications CMC-99 CMC-141

Comp 410/510. Computer Graphics Spring Introduction to Graphics Systems

A Real Time Infrared Imaging System Based on DSP & FPGA

Hardware Platform Design for Real-Time Video Applications

FPGA Hardware Resource Specific Optimal Design for FIR Filters

LOCAL DECODING OF WALSH CODES TO REDUCE CDMA DESPREADING COMPUTATION. Matt Doherty Introductory Digital Systems Laboratory.

Why FPGAs? FPGA Overview. Why FPGAs?

GENERAL RULES FOR EE314 PROJECTS

Concurrent Programming through the JTAG Interface for MAX Devices

Reconfigurable Neural Net Chip with 32K Connections

Graduate Institute of Electronics Engineering, NTU Digital Video Recorder

IMPLEMENTATION OF A BINARY SELECTION SYSTEM CREATED IN XILINX USING FPGA

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

Testing Results for a Video Poker System on a Chip

Table of content. Table of content Introduction Concepts Hardware setup...4

G-106Ex Single channel edge blending Processor. G-106Ex is multiple purpose video processor with warp, de-warp, video wall control, format

R&S PSL3 Industrial Controller The powerful industrial controller

DIGITAL FUNDAMENTALS

Design and Implementation of Nios II-based LCD Touch Panel Application System

Reconfigurable FPGA Implementation of FIR Filter using Modified DA Method

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

Scalable Low cost Ultrasound Beam former

Lab # 9 VGA Controller

[Krishna*, 4.(12): December, 2015] ISSN: (I2OR), Publication Impact Factor: 3.785

A Review on Hybrid Adders in VHDL Payal V. Mawale #1, Swapnil Jain *2, Pravin W. Jaronde #3

PulseCounter Neutron & Gamma Spectrometry Software Manual

Professor Henry Selvaraj, PhD. November 30, CPE 302 Digital System Design. Super Project

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

AC335A. VGA-Video Ultimate Plus BLACK BOX Back Panel View. Remote Control. Side View MOUSE DC IN OVERLAY

Transcription:

Implementing VGA Application on FPGA using an Innovative Algorithm with the help of NIOS-II Ashish B. Pasaya 1 1 E & C Engg. Department, Sardar Vallabhbhai Patel institute of technology, Vasad, Gujarat, India. Kiritkumar R. Bhatt 2 2 Associate Professor, E & C Engg. Dept., Sardar Vallabhbhai Patel Institute of Technology, Vasad-388306. Abstract Basically, here we have used VGA for implementing basic graphics applications that can be either used in a single user game or either in advertisements that deals with real-time application. Further expanding the logic with the coding part even double user game could be developed. So, we thought of using VGA as a standard for this implementation as it is the basic graphics array and compatible with other graphical arrays. Here, we used HDL language on Quartus-II software for interfacing the required peripheral to the NIOS-II Soft-core processor through FPGA Cyclone-II Processor. Where, we made use of the Innovative Algorithm for implementing the application of VGA with the help of C language on NIOS-II Soft-core processor that will contain the logic part. Finally, the results that we obtained for VGA application implementation. Keywords: VGA, FPGA, HDL, Quartus-II, NIOS-II, DE2 Education Board. I. Introduction In this project the most required things will be VGA, DE2 Education Board on which the FPGA and NIOS-II softcore processor is embedded along with other components. Here, VGA stands for "Video Graphics Array (en.wikipedia.org/wiki/video_graphics_array). It is the standard monitor or display interface used in most PCs. Therefore, if a monitor is VGA-compatible, it should work with most new computers. The VGA standard was originally developed by IBM in 1987 and allowed for a display resolution of 640x480 pixels. The VGA supports both All Points Addressable graphics modes, and alphanumeric text modes. There are two kinds of VGA interface signals to display. One is data signal, and the other one is control signal. There are three data signals red, green and blue and two control signals horizontal synchronization and vertical synchronization signals [1]. There are different frequencies of the horizontal synchronization signal and vertical synchronization signal for the changeable output resolution [1]. Thus, if someone wants to implement any application on any higher graphics arrays, the try could be given on the VGA first. So, we did the same thing by implementing the application on the VGA. Now, if we talk of FPGA then we used Cyclone-II FPGA of family EP2C35F672C6. For this we used Quartus-II software in which you can specify your design by three ways i.e. schematic entry, Verilog HDL and VHDL. In our case we have used the Verilog HDL to specify the design. It is possible to make use of even both the HDL languages together. Also, it is possible to implement the required application by just using the HDL languages but then this will make your code very lengthy and will also increase the complexity. Due to which it will reduce the easiness to understand the code and it will also put burden of the memory associated with the FPGA. Now, we know that the memories associated with the FPGA will have sufficient memory space for small information s like limited number of characters and some image requiring very small memory to be displayed on screen, but would be insufficient to display an animated characters or images. For this kind of situation we will require some additional processor that can reduce the length of code and other information while developing some real-time applications. So, we do have a processor named NIOS-II soft-core processor which allows the input in both the C and C++ languages. This processor is embedded on the DE2 Board itself. Thus, what we need to do is just to interface the peripheral required for our application with the NIOS-II soft-core processor. For that here we use the HDL language to interface the NIOS-II with required peripheral through FPGA. We had used C as an input language on the NIOS-II soft-core processor for implementing the innovative algorithm that we developed for our required application. Here, our required application is a single user game. Where there is a mouse as an input for single user and VGA screen as an output. On screen we will have one paddle which in our case is a rectangular block and one small ball like structure which in our case is small square block. Paddle will move according to the movement of the mouse that is connected to the USB blaster of the DE2 Board and the ball will do the movement depending on whether there has been a click on a mouse or not. This paper is organized as follows: Section 2 describes the innovative algorithm used for implementing VGA application. Section 3 shows the VGA application implementation results. Section 4 concludes the paper. IJCER May-June 2012 Vol. 2 Issue No.3 771-775 Page 771

II. Innovative Algorithm for VGA application Creating the objects (square and rectangle) required at desired position (lower position in this case) on screen Creating certain number of lines on the top area of a screen Creating a shifting logic for a rectangle Creating a shifting logic for a square for before and after click of a mouse Detection of a left click of a mouse Clicked? NO Square block will move along with a rectangular block maintaining the same position with rectangular block Yes Square block will get released at 45 Degree angle from last shifted position The square block while moving if it touches the boundary area it gets rejected back at 45 Degree angle from boundary making 90 Degree with the incident path If it encounters any line, then the line touching the block gets deleted and the square block gets reflected at 45 Degree angle from that point and keeps moving ahead At the bottom boundary it will first detect for the rectangle block Is rectangle there? NO Screen will get off Yes Continues doing motion Figure 1. Innovative Algorithm for VGA Application IJCER May-June 2012 Vol. 2 Issue No.3 771-775 Page 772

Here, first of all we will create the objects that are required in our project to be displayed on the screen i.e. a small square block, a rectangular block and few lines. Where we will have these lines at the top most part of the screen and these rectangle block will do movement in horizontal plane on the bottom part of the screen and will remain at the fixed at vertical position of the screen, while the small square in this project will have both the horizontal movement as well as other random movement depending on the situation. Now, we will create a shifting logic in which the rectangle which shift in horizontal direction on screen being fixed in vertical direction. This shift will be according the movement of the mouse, where the movement of the mouse decides whether to get shifted in on left or right. That is in wherever direction the mouse moves the rectangle block on the screen also moves, just because the rectangle block is in synchronization with the position of the mouse. In other sense we can say that the rectangular block represents the cursor of the mouse but not exactly. The movement of the rectangle block in the screen would be only within the boundaries set by the programmer on the screen. For example, you can take the boundary as 620 460. Now creating a shifting logic for a small square block. This task will be more complex than that of creating a sifting logic for a rectangular block. Here there will be two kind of motion of a square block depending on the click of the mouse. Here the value will be assigned to one variable which will detect whether the click has occurred or not. Like its value will be set if the click has already occurred and unset if not occurred. This part will be the detection part of whether the click has occurred or not. Now during detection if no click has occurred then it will just keep shifting in horizontal direction along with the rectangular block, where the position of a square block will remain constant with respect to the position of the rectangular block. These detection will occur continuously. If the click occurs during detection then the square block will now get released at 45 degree angle from the last moved position and will start to get incident on the boundary wall set by the programmer. Now this angle of incident and angle of reflection at the wall will make 90 degrees with each other. After getting reflected the square block will keep moving ahead and will touch the bottommost line at the top of the screen. When the square block touches the line it gets reflected from the like at 45 degrees again making 90 degree angle with the incident path to the line and the line will get deleted/erased from that position. The square block will keep moving ahead and now will touch the another boundary wall and get reflected back at 45 degree angle making 90 degree with the incident path. Now it keeps doing motion ahead in the bottom direction where the rectangle block is already doing motion as per the movement of the mouse in horizontal direction. The rectangular block must catch the square block on its top otherwise if it misses the square block then the screen will get off. There will be detection by square block logic for the presence of the rectangular block on the bottom surface of the screen. If the rectangular block catches the square block on the top then the square block will get reflected from the top surface of the rectangular block at 45 degree angle making 90 degree angle with the incident path and keeps moving ahead towards wall and will follow the same scenario as ahead it did and will erase each lines when it gets touched to line and will then incident to the wall after each line gets erased by the touch. Here when the square block is shifting then the one pixel from back position will get and one pixel in front of the rectangular block will be displayed which shows that the rectangular block is doing motion if speed is increased for the shift. The rectangular block will move according to positive X and negative X direction. While the square block move according to both the positive and negative direction of X and Y. so, at whatever wall it gets incident to the wall or any other object it will get reflected in its negative direction. Here the square block will become independent of the movement of the mouse when the click occurs, so there will be no dependence of the square block on the rectangular block and the mouse as well. The speed of the movement of the rectangular block and square block can be set between the minimum 50 MHz to maximum 400 MHz in our project. IJCER May-June 2012 Vol. 2 Issue No.3 771-775 Page 773

III. Results of VGA application implementation FIGURE 2. Motion of a square and a rectangular block FIGURE 3. Release of a square block at 45 degree angle FIGURE 4. Motion of a square block towards the lines after getting reflected from the side wall of a screen FIGURE 5. Erasing of a line with which the square block got incident IJCER May-June 2012 Vol. 2 Issue No.3 771-775 Page 774

IV. Conclusion In this paper we presented an innovative algorithm for implementing basic application of VGA for a single user game and the output that we attained. It further can be extended into an advertisement with real time application or a 1double user game with respective addition of logic through NIOS-II processor. We interfaced NIOS-II with required peripheral through FPGA using HDL languages and used C as a language for implementing the innovative algorithm. So here NIOS-II adds more flexibility along their use with FPGA and reduces the complexity in coding part especially, which makes it suitable to meet both our hardware and software real-time requirements. Acknowledgement Words are often less to revels one s deep regards. An understanding of work like this is never the outcome of the efforts of a single person. First off all i would like to thank the Supreme Power, one who has always guided me to work on the right path of the life. Without his grace this would never come to be today s realty. This work not have been possible without the encouragement and able guidance of my supervisor Prof. K.R.Bhatt, his enthusiasm and optimism made this experience both rewarding and enjoyable. Also my sincere thanks to Mihir Sir and Nirav Sir (smartech solutions), Vadodara for providing me tools and guidance required in my work. References [1] Guohui Wang and Yong Guan, Designing of VGA Character String Display Module Base on FPGA, IEEE 2009. [2] Cyclone II Device Handbook (PDF) Altera. [3] DE2 Development and Education Board User Manual. [4] NIOS II Software Developer s Handbook (PDF) Altera. [5] Fawcett, B., FPGAs as Reconfigurable Processing Elements, Circuits and Device Magazine, March 1996, pp. 8 10. [6] Van-Huan Tran and Xuan-Tu Tran, An Efficient Architecture Design for VGA Monitor Controller, IEEE 2011. [7] Babu T Chacko and Siddharth Shelly Real-Time Video Filtering and Overlay Character Generation on FPGA, IEEE 2011. [8] A. D. Ioan, New Techniques for Implementation of Hardware algorithms inside FPGA Circuits, Advance in Electrical and Computer Engineering, Vol. 10, No. 2, Suceava, Romania, 2010. IJCER May-June 2012 Vol. 2 Issue No.3 771-775 Page 775