FPGA Laboratory Assignment 5. Due Date: 26/11/2012

Similar documents
EXPERIMENT 1: INTRODUCTION TO THE NEXYS 2. ELEC 3004/7312: Signals Systems & Controls EXPERIMENT 1: INTRODUCTION TO THE NEXYS 2

Gomoku Player Design

CSE 260 Digital Computers: Organization and Logical Design. Lab 4. Jon Turner Due 3/27/2012

Spartan Tetris. Sources. Concept. Design. Plan. Jeff Heckey ECE /12/13.

4/9/2015. Simple Graphics and Image Processing. Simple Graphics. Overview of Turtle Graphics (continued) Overview of Turtle Graphics

Image Filtering in VHDL

Connect 4. Figure 1. Top level simplified block diagram.

Simulation and Verification of FPGA based Digital Modulators using MATLAB

The Audio Synthesizer

Artwork File Requirements

CHAPTER III THE FPGA IMPLEMENTATION OF PULSE WIDTH MODULATION

EE307. Frogger. Project #2. Zach Miller & John Tooker. Lab Work: 11/11/ /23/2008 Report: 11/25/2008

Line 6 GearBox Version 2.0 Release Notes

Basic FPGA Tutorial. using VHDL and VIVADO to design two frequencies PWM modulator system

ELEN W4840 Embedded System Design Final Project Button Hero : Initial Design. Spring 2007 March 22

Journal of Engineering Science and Technology Review 9 (5) (2016) Research Article. L. Pyrgas, A. Kalantzopoulos* and E. Zigouris.

Move-O-Phone Movement Controlled Musical Instrument ECE 532 Project Group Report

CHAPTER 5 NOVEL CARRIER FUNCTION FOR FUNDAMENTAL FORTIFICATION IN VSI

Experiment 4.B. Position Control. ECEN 2270 Electronics Design Laboratory 1

Implementation of Edge Detection Digital Image Algorithm on a FPGA

SP623 IBERT Getting Started Guide (ISE 11.4) UG752 (v1.0.1) January 26, 2011

The Application of System Generator in Digital Quadrature Direct Up-Conversion

Implementation of Digital Communication Laboratory on FPGA

EECS150 Spring 2007 Lab Lecture #5. Shah Bawany. 2/16/2007 EECS150 Lab Lecture #5 1

Digital Design With Cpld Applications And Vhdl 2nd Edition Solution Manual

Software Design of Digital Receiver using FPGA

Implementation of a Streaming Camera using an FPGA and CMOS Image Sensor. Daniel Crispell Brown University

Setup Download the Arduino library (link) for Processing and the Lab 12 sketches (link).

FIR Filter Design on Chip Using VHDL

Arria V Timing Optimization Guidelines

Lecture 1. Tinoosh Mohsenin

Zybo Z7 Pcam 5C Demo

Design and Simulation of Universal Asynchronous Receiver Transmitter on Field Programmable Gate Array Using VHDL

Inspiring Creative Fun Ysbrydoledig Creadigol Hwyl. LEGO Bowling Workbook

Audio Visualiser using Field Programmable Gate Array(FPGA)

Image Capture Procedure

Topcon Receiver Utility: GNSS Receiver Firmware Update Process. Oscar R. Cantu

INF3430 Clock and Synchronization

Ultrasonic Signal Processing Platform for Nondestructive Evaluation

Practical Assignment 1: Arduino interface with Simulink

Midterm Exam ECE 448 Spring Thursday Section. (15 points)

DYNAMICALLY RECONFIGURABLE PWM CONTROLLER FOR THREE PHASE VOLTAGE SOURCE INVERTERS. In this Chapter the SPWM and SVPWM controllers are designed and

EE25266 ASIC/FPGA Chip Design. Designing a FIR Filter, FPGA in the Loop, Ethernet

6.098/6.882 Computational Photography 1. Problem Set 1. Assigned: Feb 9, 2006 Due: Feb 23, 2006

Implementation of Huffman Decoder on Fpga

Lab 6 Using PicoBlaze. Speed Punching Game

Introduction to programming with Fable

PROGRAMMABLE ASICs. Antifuse SRAM EPROM

Design of FIR Filter on FPGAs using IP cores

Rapid Design of FIR Filters in the SDR- 500 Software Defined Radio Evaluation System using the ASN Filter Designer

1. ASSEMBLING THE PCB 2. FLASH THE ZIP LEDs 3. BUILDING THE WHEELS

Microprocessors and toys: An introduction to computing systems

FPGA Air Brush Project Proposal. Oscar Guevara Junior Neeranartvong

Time to Digital Converter Core for Spartan-6 FPGAs

Published by: PIONEER RESEARCH & DEVELOPMENT GROUP ( 1

Contents. 1. In the box. 2. What you ll need. 3. Overview. 4. Dimensions. 5. Connecting your pedal. 6.Audio routing. 6.1 Option 1. 6.

smraza Getting Start Guide Contents Arduino IDE (Integrated Development Environment)... 1 Introduction... 1 Install the Arduino Software (IDE)...

Matlab for CS6320 Beginners

THE DESIGN OF A PLC MODEM AND ITS IMPLEMENTATION USING FPGA CIRCUITS

TRDB_DC2 TRDB_DC2. 1.3Mega Pixel Digital Camera Development Kit

Method We follow- How to Get Entry Pass in SEMICODUCTOR Industries for 2 nd year engineering students

WHAT ARE FIELD PROGRAMMABLE. Audible plays called at the line of scrimmage? Signaling for a squeeze bunt in the ninth inning?

CHAPTER 6 IMPLEMENTATION OF FPGA BASED CASCADED MULTILEVEL INVERTER

Hardware Implementation of BCH Error-Correcting Codes on a FPGA

EE-110 Introduction to Engineering & Laboratory Experience Saeid Rahimi, Ph.D. Labs Introduction to Arduino

CREATING YOUR POSTCARD

FLIR Tools for PC 7/21/2016

PAC XON CSEE 4840 Embedded System Design

PE713 FPGA Based System Design

Game Console Design. Final Presentation. Daniel Laws Comp 499 Capstone Project Dec. 11, 2009

Signal Processing and Display of LFMCW Radar on a Chip

Lecture 3, Handouts Page 1. Introduction. EECE 353: Digital Systems Design Lecture 3: Digital Design Flows, Simulation Techniques.

G-700 multiple Channel 4K Curve Edge Blending Processor

Getting Started Guide

PASS Sample Size Software. These options specify the characteristics of the lines, labels, and tick marks along the X and Y axes.

MRT: Mixed-Reality Tabletop

Decision Based Median Filter Algorithm Using Resource Optimized FPGA to Extract Impulse Noise

Implementation of Digital Modulation using FPGA with System Generator

Robots in Town Autonomous Challenge. Overview. Challenge. Activity. Difficulty. Materials Needed. Class Time. Grade Level. Objectives.

Tilt Sensor Maze Game

PV SYSTEM BASED FPGA: ANALYSIS OF POWER CONSUMPTION IN XILINX XPOWER TOOL

Exercise 3: Serial Interface (RS232)

PRESENTATION OF THE PROJECTX-FINAL LEVEL 1.

FPGA Based Formation Control of Multiple Ubiquitous Indoor Robots

The USB Brotherlink 4 - or Cartridge Cable

DIGITAL SYSTEM DESIGN WITH VHDL AND FPGA CONTROLLER BASED PULSE WIDTH MODULATION

FPGA Implementation of VHDL Based Traffic Light Controller System

Synthesis and Analysis of 32-Bit RSA Algorithm Using VHDL

Open Source Digital Camera on Field Programmable Gate Arrays

Digital Systems Design

CHAPTER 4 FIELD PROGRAMMABLE GATE ARRAY IMPLEMENTATION OF FIVE LEVEL CASCADED MULTILEVEL INVERTER

Advances in Military Technology Vol. 5, No. 2, December Selection of Mode S Messages Using FPGA. P. Grecman * and M. Andrle

Lab 1. Due: Friday, September 16th at 9:00 AM

EC 1354-Principles of VLSI Design

Introduction to Simulation of Verilog Designs. 1 Introduction. For Quartus II 13.0

International Journal of Scientific & Engineering Research Volume 9, Issue 3, March ISSN

Aerial Photographic System Using an Unmanned Aerial Vehicle

FPGA & Pulse Width Modulation. Digital Logic. Programing the FPGA 7/23/2015. Time Allotment During the First 14 Weeks of Our Advanced Lab Course

Advanced Digital Logic Design

Partial Reconfigurable Implementation of IEEE802.11g OFDM

Transcription:

FPGA Laboratory Assignment 5 Due Date: 26/11/2012 Aim The purpose of this lab is to help you understand the fundamentals image processing. Objectives Learn how to implement image processing operations using HDL Integrate a VGA controller with a memory to display an image on screen Equipment Xilinx ISE 12.XX ISE Simulator (Isim) Spartan 3E-16000 Development Board 1

Introduction The programmable logic boards used for ECE 408 are Xilinx Spartan 3E-1600 development systems. The centerpiece of the board is a Spartan 3 XC3S1600E FPGA (field-programmable gate array), which can be programmed via a USB cable or compact flash card. The board also features PS/2, serial, Ethernet, stereo audio and video ports, user buttons, switches and LEDS, and expansion ports for connecting to other boards Figure 1. The Xilinx Spartan 3E-1600 Development System Caution! The boards contain many exposed components that are sensitive to static electricity. Before touching the boards, try to remember to discharge any static electricity you may have built up by touching a grounded piece of metal (i.e. part of the desk). Especially remember to do this after you have been walking around the room on a carpeted floor (please keep your shoes on). 2

Part 1: Integration In this part, you will use the memory controller from Lab 4 and the VGA controller together to output data from the memory to the VGA output. Start by generating a randomized 240x320 array of 3 bits per value. Each value represents a pixel, but in this part, we are not interested so much to the value, as getting our design to work. You can play with the Windows Color Scheme on any Microsoft Windows machine to perhaps get some ideas for interesting colors. Your array then needs to be stored in the memory (use the controller from Lab 4) and then can be displayed with your VGA controller in a loop mode (i.e. when the picture ends, you can loop back again to maintain a constant video output). The overall diagram of your system is shown below: The Windows color scheme (see below) can be used to give you suggested values for your testing. Implement the integrated design and using a start button (place it in one of your switches) and see the output on the VGA. You can start by placing a single color in the entire picture, then you can split the picture in two colors, three colors, and so on. 3

Part 2: Image Processing Application For the second part, you will put your integrated Memory-to-VGA controller to work, by performing some minor image manipulation. You will be given a 320x240 image in RGB (3 bits per pixel) format, which you will store in a BlockRAM memory using Xilinx Core Generator, or more preferably by instantiating them in you VHDL code. You will then proceed to read the image from the BlockRAM, and display it on a screen, in a 2x2 array. The 2x2 array will hold the original image and 3 copies of the image, each with one color component removed, as shown in the figure below: Demonstrate your project by displaying the four images in loop mode. 4

Extra Credit For extra credit, you can try to rotate the image 180 degrees, and display the original and the rotated (about the origin) versions of the image in white background. The rotation operator performs a geometric transform which maps the position (x 1, y 1 ) of a pixel in an input image onto a position (x 2, y 2 ) in an output image by rotating it through a user-specified angle θ about an origin O. In most implementations, output locations (x 2, y 2 ) which are outside the boundary of the image are ignored. Rotation is most commonly used to improve the visual appearance of an image, although it can be useful as a preprocessor in applications where directional operators are involved. The rotation operator performs a transformation of the form: where (x o, y o ) are the coordinates of the center of rotation (in the input image) and θ is the angle of rotation with clockwise rotations having positive angles. (Note here that we are working in image coordinates, so the y axis goes downward. Similar rotation formula can be defined for when the y axis goes upward.) Even more than the translate operator, the rotation operation produces output locations (x 2, y 2 ) which do not fit within the boundaries of the image (as defined by the dimensions of the original input image). In such cases, destination elements which have been mapped outside the image are ignored by most implementations. Pixel locations out of which an image has been rotated are usually filled in with black pixels. The rotation algorithm, unlike that employed by translation, can produce coordinates (x 2, y 2 ) which are not integers. In our case, feel free to round them to the nearest integer and overwrite any pixels that were produced before with the latest ones produced. 5

Turn-In Instructions Deliverables The ISE project folder containing the code and simulation files for all parts, and a lab report will be submitted electronically through email (kyrkou.christos@ucy.ac.cy). The lab report should describe in detail your implementation stategy and design approaches for all parts in the lab. Please use compression software to (winrar or 7zip) to keep the file size at a minimum. If the files are too large to be submitted via email please use the UCY file sending service https://filesender.ucy.ac.cy/filesender/. Please notify me in advance if you are going to delay delivering the lab Also consider You are advised to look at the tutorials posted on the lab web site for a more comprehensive overview and detailed explanation of the tools. You are encourage to visit the Xilinx user community forums (http://forums.xilinx.com/). The community forum enables Xilinx FPGA users to share, discuss, and resolve issues related to the Xilinx tools, HDL, FPGA programming and more. GOOD LUCK 6

Appendix A Memory Implementation You can see the VHDL syntax for implementing memories and initializing them by clicking on the language templates button, go to VHDL Synthesis Constructs Coding Examples RAM or ROM. There many different implementation options available such as dual port or single port. You are to select the ones that better suits your design and implementation strategies. Your rational for implementing the memories should be detailed in the report. 7

Appendix B VGA Display Pin Locations Table I: 3-bit display colour codes Table II: UCF Constraints for VGA signals VGA_Red VGA_Green VGA_Blue VGA_hsync VGA_vsync H14 H15 G15 F15 F14 8

Appendix C LEDs and Switches Pin Locations Figure 2. Switches and LEDs on the Spartan3E-1600 development board Table III: UCF Constraints for LEDs and Swiches LEDS Switches Leds_0 Leds_1 Leds_2 Leds_3 Leds_4 Leds_5 Leds_6 Leds_7 SW_0 SW_1 SW_2 SW_3 D4 C3 D6 E6 D13 A7 G9 A8 L13 L14 H18 N17 9