Spartan-II Development System

Similar documents
Spartan-II Development System

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

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)

Design and Implementation of an AHB VGA Peripheral

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

Design of VGA Controller using VHDL for LCD Display using FPGA

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

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

Lab # 9 VGA Controller

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

EEM Digital Systems II

Lab 3: VGA Bouncing Ball I

Testing Results for a Video Poker System on a Chip

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

COE758 Xilinx ISE 9.2 Tutorial 2. Integrating ChipScope Pro into a project

A CONTROL MECHANISM TO THE ANYWHERE PIXEL ROUTER

Lecture 14: Computer Peripherals

EDA385 Bomberman. Fredrik Ahlberg Adam Johansson Magnus Hultin

Memec Spartan-II LC User s Guide

Digilent Nexys-3 Cellular RAM Controller Reference Design Overview

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

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

Block Diagram. 16/24/32 etc. pixin pixin_sof pixin_val. Supports 300 MHz+ operation on basic FPGA devices 2 Memory Read/Write Arbiter SYSTEM SIGNALS

Main Design Project. The Counter. Introduction. Macros. Procedure

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

FPGA-BASED EDUCATIONAL LAB PLATFORM

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

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

VHDL Upgrading of a TNT2 card

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:

EECS150 - Digital Design Lecture 13 - Project Description, Part 3 of? Project Overview

VGA 8-bit VGA Controller

Main Design Project. The Counter. Introduction. Macros. Procedure

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)

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:

Lab 6: Video Game PONG

An Efficient SOC approach to Design CRT controller on CPLD s

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

Block Diagram. RGB or YCbCr. pixin_vsync. pixin_hsync. pixin_val. pixin_rdy. clk

TSIU03: Lab 3 - VGA. Petter Källström, Mario Garrido. September 10, 2018

Laboratory Exercise 7

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

Figure 1 Block diagram of a 4-bit binary counter

Laboratory Exercise 7

Using the XSV Board Xchecker Interface

DE2-115/FGPA README. 1. Running the DE2-115 for basic operation. 2. The code/project files. Project Files

Lab Assignment 2 Simulation and Image Processing

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

An FPGA Based Solution for Testing Legacy Video Displays

Programmable Logic Design I

Level and edge-sensitive behaviour

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

By Tom Kopin CTS, ISF-C KRAMER WHITE PAPER

Field Programmable Gate Arrays (FPGAs)

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

... User Guide - Revision /23/04. H Happ Controls. Copyright 2003, UltraCade Technologies UVC User Guide 1/23/2004

Video. Updated fir31.filtered on website Fall 2008 Lecture 12

California State University, Bakersfield Computer & Electrical Engineering & Computer Science ECE 3220: Digital Design with VHDL Laboratory 7

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

7inch Resistive Touch LCD User Manual

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

Block Diagram. pixin. pixin_field. pixin_vsync. pixin_hsync. pixin_val. pixin_rdy. pixels_per_line. lines_per_field. pixels_per_line [11:0]

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

A Flexible FPGA communication

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

Lab 5 FPGA Design Flow Based on Aldec Active-HDL. Fast Reflex Game.

You will be first asked to demonstrate regular operation with default values. You will be asked to reprogram your time values and continue operation

AC : DIGITAL DESIGN MEETS DSP

Design of VGA and Implementing On FPGA

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

A Fast Constant Coefficient Multiplier for the XC6200

DLP Pico Chipset Interface Manual

Lab 4: Hex Calculator

Pivoting Object Tracking System

VGA Pixel Buffer Stephen Just

1. Synopsis: 2. Description of the Circuit:

Lecture 6: Simple and Complex Programmable Logic Devices. EE 3610 Digital Systems

16 Universe LED Matrix Panels Instructions

Quick Guide Book of Sending and receiving card

T-COR-11 FPGA IP CORE FOR TRACKING OBJECTS IN VIDEO STREAM IMAGES Programmer manual

Polar Decoder PD-MS 1.1

LogiCORE IP Video Timing Controller v3.0

ECE 448 Lecture 10. VGA Display Part 1 VGA Synchronization

XC-77 (EIA), XC-77CE (CCIR)

T1 Deframer. LogiCORE Facts. Features. Applications. General Description. Core Specifics

12.1 Inch CGA EGA VGA SVGA LCD Panel - ID #492

Lecture #4: Clocking in Synchronous Circuits

2.4.1 Graphics. Graphics Principles: Example Screen Format IMAGE REPRESNTATION

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

AC334A. VGA-Video Ultimate BLACK BOX Remote Control. Back Panel View. Side View MOUSE DC IN BLACK BOX ZOOM/FREEZE POWER

Digital Blocks Semiconductor IP

GENERAL RULES FOR EE314 PROJECTS

6.111 Project Proposal IMPLEMENTATION. Lyne Petse Szu-Po Wang Wenting Zheng

SXT SXGA TFT NEMA 4/12 Flat Panel Monitor. User s Guide

Table of Contents Introduction

CORIOmax Resolution Editor Programming Guide 2015/03/04

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

GFT Channel Digital Delay Generator

DT3162. Ideal Applications Machine Vision Medical Imaging/Diagnostics Scientific Imaging

StickIt! VGA Manual. How to install and use your new StickIt! VGA module

Transcription:

2002-May-4 Introduction Dünner Kirchweg 77 32257 Bünde Germany www.trenz-electronic.de The Spartan-II Development System is designed to provide a simple yet powerful platform for FPGA development, which can be easily expanded to reflect your application s requirements. The following application note was developed to give the engineer a quick hands-on experience, and to demonstrate the board s features and their application. General Overview The TE-BL Expansion Board provides a set of standard functionality which is commonly used by most applications: 7-segment displays LEDs Push buttons VGA output USB type B receptacle 48MHz oscillator Spartan-II Development System To speed-up application development, a standard VHDL module (entity tebl) was created, encapsulating the following functions: encoding of 7-segment displays multiplexing of LEDs debouncing of push buttons. emulation of switches generation of VGA timing encoding of USB signals Based on the above mentioned VHDL module, this application note describes an FPGA implementation of Conway s Game of Life, demonstrating the following tasks: using the 7-segment displays using the LEDs using the push buttons emulating switches using the VGA output This application note concentrates on the creation of VGA images. For a more detailed discussion of the application of 7-segment displays, LEDs and buttons, refer to the Buttons & Lights application note. Figure 1: TE-XC2S Base Board with TE-BL Expansion. 1

Architectural Description Conway s Game of Life is a mathematical game, simulating the growth of a population of cells in a toy universe. It is played on a two-dimensional grid. For every generation, the state of each square is d according to the following rules: on squares with two or three alive neighbors, existing cells survive on squares with three alive neighbors, a new cell is born on the remaining squares, the cells die The remarkable thing about Life is the unexpected chaos that results from its simple rules. fpga core tebl Figure 2: Design hierarchy color dummy life ram4096x1 The design is partitioned into several entities, each of them serving a well-defined purpose. Figure 2 visualizes the design hierarchy. Entity core The entity core implements the Game of Life functionality by combining a set of building blocks. Figure 3 illustrates the structure. The instance Ulife implements the control logic required to the next generation of cells and to display the game on the VGA output. The instances Uram_a and Uram_b are two RAM banks with 4096x1 bits each. The control logic toggles these two banks, so that one bank serves as a data source holding the current generation of cells, while the other bank is used to store the next generation of cells being d. The instance Ucolor maps the single bit output from the control logic to an RGB plus intensity tuple for VGA display. The color mapping may be selected from four different palettes. Finally, the instance Utebl contains the readily provided TE-BL Expansion Board interface circuitry. Figure 3: Entity core 2 2002-May-4

Entity life The instance Ulife implements the control logic required to the next generation of cells and to display the game on the VGA output. The entity life is clocked with the VGA dot clock, as the entity works in close interaction with entity tebl creating the VGA timing. Uram_a Uram_b destination source Figure 4: RAM bank toggle The universes dimensions are 64x64 cells, which results in 10x8 pixels per cell at VGA resolution of 640x480 pixels. The 64x64 cell universe is stored in two RAM banks of 4096x1 each. Two banks are required, as the Game of Life algorithm cannot be d in-place. Therefore one bank serves as the data source to VGA and cell computation, while the other bank is used as the destination. After completing computation of the next generation, the two banks are toggled. Figure 4 illustrates this. ram cell source universe display VGA destination universe Figure 5: Compute during As VGA display and computation of the next cell generation are assumed to be performed simultaneously, a mechanism is required, to share the memory between VGA output and cell computation. To avoid using dual-ported RAM, the computation of cells is performed during the intervals, i.e. when the screen is black. Refer to Figure 5 for further details. To keep things simple, one cell is d during each horizontal or vertical, resulting in a computation time of approximately 140ms for the complete 64x64 universe. Entity ram4096x1 The instances Uram_a and Uram_b of entity ram4096x1 are used to store a complete universe of cells at a given time. To achieve the best possible implementation density, Block- RAMs are used. As the WebPACK ISE software package does not include the CoreGenerator, manually instantiated RAMB4_S1 instances are used. After FPGA configuration, the RAMs contain the initial cell population. To do so, the RAMs are initialized using the VHDL attribute INIT_xx. The following code snippet details this: architecture Xilinx of ram4096x1 is attribute INIT_00: string;... attribute INIT_0F: string; attribute INIT_00 of Uram: label is " ";... attribute INIT_0F of Uram: label is " "; begin Uram: ramb4_s1 port map ( addr=> addr, clk => clk, rst => zero, di => di, en => one, we => we, do => do); end Xilinx; The initial value is given in hex, please note that there is no preceding x used, as attribute INIT_xx is of type string. Entity fpga The entity fpga is the top level of the design. It performs the following functions: create a reset signal lock all I/Os to their pad locations specify timing constraints While Xilinx recommends to assign design constraints using the Constraints Editor, this application note uses VHDL attributes to pass the constraints to the implementation tools. This is especially useful for the novice user, as the design contains less files and is more consistent. 3 2002-May-4

The mechanism used here was proven with Xilinx WebPACK ISE 3.3WP8.x. In case your tool chain does not support this method, the constraints me be additionally entered into a.ucf file. A detailed description of these mechanism may be found in the Buttons & Lights application note. Entity tebl A VGA image displays a rectangular area which is composed of square pixels. The dimensions of the image are 640x480 pixels. The image is surrounded by a dark area. Figure 6 illustrates this. rgb hsync horizontal G 640 pixels Figure 8: Horizontal refresh cycle The timing of these parameters is standardized, so that signal sources and monitors may be combined freely. Table 1 summarizes the timing parameters. F H horizontal sync pulse I J 640x480 image area Parameter Description Time A vertical refresh 16.6ms (60Hz) B top 1.02ms C vertical image 15.25ms D bottom 0.35ms Figure 6: VGA image The image is generated from a sequence of frames which are repeated quickly enough, so that the human eye does not notice the flicker. The frames are identified by vertical sync pulses. Each frame displays 480 scan lines. Above and below these lines is a area, which stays dark. See Figure 7 for further details. rgb vsync vertical 480 scan lines Figure 7: Vertical refresh cycle B vertical sync pulse The 480 scan lines are identified by horizontal sync pulses. Each line displays 640 pixels. To the left and to the right of these pixels is a area, which stays dark. See Figure 8 for further details. A C D E E vsync width 64us F horizontal refresh 31.77us (31.5kHz) G left 1.89us H horizontal image 25.17us I right 0.94us J hsync width 3.77us Table 1: VGA timing parameter All these timing parameters are derived from the pixel clock, which is typically 25.175MHz. Due to the requirement of using a 48MHz oscillator for USB, the tebl entity was adapted to use a 24MHz oscillator instead. This results in slightly shortened intervals, while the other parameters remain unaltered. The entity tebl is provided as VHDL source code and extensively commented. It is left up to the interested engineer, to review this source for more detailed information. 4 2002-May-4

Project files The project files for this application note are provided in WebPACK ISE format with all synthesis options set up to achieve a push button flow. Furthermore, the resulting.mcs file to program the Flash PROM and a.bit file to program the FPGA via JTAG are provided. To answer questions regarding synthesis, implementation and download of projects, our Tutorial on WebPACK ISE is highly recommended. References Product Specification September 12, 2001 Tutorial on WebPACK ISE September 2001 Application Note: Buttons & Lights September 20, 2001 Revisions History Version Date Who Description 1.0 2001sep17 FB Created 1.1 2002may04 FB ISE 4.2 Table 2: Revisions History 5 2002-May-4