Restricted Website for ECE 551 LINKS




"Xilinx Spartan3 examples"

templates:

/sw/Xilinx8.1i/data/projnav/templates/vhdl.xml
/sw/Xilinx8.1i/data/projnav/templates/verilog.xml

pong/readme:

Pong is a mixed schematic, VHDL, Verilog project featuring the PS2 and VGA monitor connections of 
the Xilinx\Digilent Spartan-3 demo board.

DESIGN TYPE: ISE (chip 3s200 FT256-4)
 
CONTROLS (Inputs):
	clk_ic4	- 50 MHz clock input from on-board oscillator,
	btn(3)	- left most push button on S-3 demo board used as reset for design
	ps2d		- data input from PS2 port
	ps2c		- clock input from PS2 port	
  
OUTPUTS:  
	seg_ - 7-segment display for used to display game title,
	an(3:0)	- anode control to determine active seven segment display
	vga_red	- red color signal to VGA monitor
	vga_blue	- blue color signal to VGA monitor
	vga_green	- green color signal to VGA monitor
	vga_vs	- vertical synchronization signal to VGA monitor
	vga_hs	- horizontal synchronization signal to VGA monitor

DESCRIPTION: This simple design receives the input from a ps2 keyboard to control the paddles 
and serve for a pong game.  The game is displayed on a VGA monitor.  
The following keyboard keys are used as controls
	up arrow key - right paddle up
	down arrow key - right paddle down
	w key	- left paddle up
	s key - left paddle down
	space bar key - serve ball

Source Files:

pong_top.sch  -   The top level schematic contains symbolic layout of the pong design including 
					   the FPGA pin connections to many of the Spartan3 demo board input, display 
					   and port features. 

pong_cntrl.vhd  - This Entity contains the pong game logic

testram.vhd  - 	This Entity contains an array of data elements representing VGA display patterns

vgacore_multi.vhd  -  This Entity contains the VGA display control. 

game_title.v  -   This module displays the title, PONG, on the four seven segment LEDs of the 
					   Spartan3 Demo Board

read_ps2.v  -   	This module interprets the scan code from the keyboard and outputs the 
					   corresponding signal to move a paddle or serve. 

ps2_cntrl.v  -   	This module receives the Clock and serial data input from the PS2 port and 
					   outputs a Scan Code representing the key entered on the keyboard 

vga_interface.vhd  -  This Entity interprets the color output to the VGA monitor



Behavioral and RTL Simulation done using Test bench waveform (pong.tbw). 
  

NOTE: If you are trying to run this example in a read-only location, the design hierarchy will 
		not display properly.  Please copy the example project to a new location by using either 
		Project Save As... from the File menu pulldown in ISE or some other method of your choice.  
		Copy the example to a location where you have write permissions and the hierarchy will 
		display properly. 

  

watchvhd_cr2/readme

cnt60.vhd
hex2led.vhd
smallcntr.vhd
stmchine.vhd
tenths.vhd
watch.vhd
watch_tb.tbw
watch_tb.vhd
watch_tb.xwv
watchvhd.ise


WATCHVHD is a top level VHDL type project of a Stop Watch. 

DESIGN TYPE:
        Foundation ISE (chip CoolRunner-II)

CONTROLS 
Inputs:
* CLK -System clock for the Watch design.
* STRTSTOP -Starts and stops the stoopwatch. This is an active-low signal 
            which acts like the start/stop button on a runner's stop-watch.
* RESET -Resets the stopwatch to 00.0 after it has been stopped.

Outputs:
* TENSOUT[6:0] -7-bit bus which represents the Tens digit of the stopwatch 
                value. This bus is in 7-segment display format to be viewable 
                on the 7-segment LED display. 
* ONESOUT[6:0] -similar to TENSOUT bus above, but represents the Ones digit 
                of the stopwatch value.
* TENTHSOUT[9:0] -10-bit bus which represents the Tenths digit of the stopwatch 
                  value. This bus is one-hot encoded.

DESCRIPTION:
* STMACH -State Machine macro. This module uses the VSS 
                        StateCAD Editor to enter and implement the state machine. 
* CNT60 -VHDL-based module which counts from 0 to 59, decimal. This macro 
         has two 4-bit outputs, which represent the 'ones' and 'tens' digits of 
         the decimal values, respectively.
* TENTHS -A 10-bit counter. This macro outputs the 
          'tenths' digit of the watch value.
* HEX2LED -HDL-based macro. This macro decodes the ones and tens digit values 
           from hexadecimal to 7-segment display format.

SIMULATION:
Requires the following simulation libraries:
	Unisims
	Simprims

Behavioural and RTL Simulation done using Testbench Waveform file(watch_tb.tbw).




http://www.xilinx.com/products/boards/DO-SPAR3-DK/reference_designs.htm

 http://www.xess.com/prod039.php3

    * Digitize and display a frame of video with our frame-grabber.
    * Read and write sectors of a hard disk with our IDE interface.
    * Sample and playback a stereo audio signal with our audio loopback 
circuit.
    * Echo characters received through the serial port with our RS232 
interface.
    * Read and write the SDRAM using our simple SDRAM controller.
    * Provide multiple read/write channels to the SDRAM using our dualport 
module.


 http://wiki.tcl.tk/14116

Xilinx Spartan 3 Demo rs232 clock set
I've been working with a Xilinx Spartan-3 demo board[1], for which there is a 
clock example that can be burned in the config FLASH with little effort, and 
that clock can be set (and some other things) over an RS-232 link.
This tcl script programs the computer clock automatically into the board with 
a readable command.

 http://www.cs.colostate.edu/~cs460
http://www.cs.colostate.edu/~cs460/spartan3.html
http://www.cs.colostate.edu/~cs460/labnotes/tutorials.html
1. Create parity.vhd.
2. Create top.vhd.



http://ece.wpi.edu/~rjduck/ece574.htm
ECE 574: Modeling and Synthesis of digital systems using Verilog and VHDL



http://www.xilinx.com/xlnx/xweb/xil_publications_display.jsp?category=-1209946

XAPP774 - Connecting Xilinx FPGAs to Texas Instruments ADS527x Series ADCs
This application note describes how to connect a high-speed Texas Instruments 
(TI) ADS5273 analog-to-digital converter (ADC) with serialized LVDS output to 
a Virtex™-II or Virtex™-II Pro FPGA. Lower speed ADC devices from this family 
can be connected to Spartan™-3 FPGAs.
Design Files: xapp774.zip
Associated Products: Virtex-II Pro,Virtex-II,Spartan-3/3L
Version: 1.2 Size: 246Kb Date: 02/23/06 Helpful? Yes | No




http://www.synopsys.com/cgi-bin/svp/lib/svpcafe.cgi?vendor=430

The Spartan-3 family is the industry's defacto low cost FPGA platform. The 
Spartan-3 family is based on advanced 90nm, 8-layer metal process technology. 
Xilinx is using 90nm technology to drive pricing down to under $12* for a one 
million gate FPGA and $2.95 for a 50,000 gate FPGA (approximately 17,000 and 
1,700 logic cells respectively). Xilinx redefines the logic landscape with the 
Spartan-3 Platform FPGA family. Built on four generations of proven Spartan 
success in high volume applications, Spartan-3 FPGAs give you up to 5 million 
system gates with the lowest cost per gate and per I/O of any FPGA. Visit the 
Spartan web site to find out more.
*Volume pricing for 250k units, end of 2005



http://www.eng.uwaterloo.ca/~tnaqvi/courses/syde192.html



http://www.fpga4fun.com/index.html
Music box
R/C servos
Serial interface
Text LCD module
PWM and one-bit DAC
Quadrature decoder
Pong game
Graphic LCD panel
I2C
LED displays
JTAG
Debouncer
Advanced projects:
Digital oscilloscope
10BASE-T interface
PCI interface
Spoc CPU core



http://6004.csail.mit.edu/currentsemester

http://6004.csail.mit.edu/currentsemester/handouts/L24-1up.pdf


http://www.eng.auburn.edu/~nelson/courses/elec5250_6250/

http://www.eng.auburn.edu/~nelson/courses/elec5250_6250/FPGA%20Implementations.ppt


http://www.cse.unt.edu/~hab/Teaching/CSCE3610/

http://www.cse.unt.edu/~hab/Teaching/CSCE3610/lab2mb.pdf
adding ip (microblaze) to spartan3




http://ecen3233.okstate.edu/

http://ecen3233.okstate.edu/Fall%202005/PDF/FPGA%20Tutorial.pdf

Lab 1 - Introduction and Full Adder
The primary objective of Lab 1 is to introduce you to the laboratory and 
prototyping. We will discuss digital logic and you will construct and verify 
the operation of a Full Adder circuit. Be sure to turn in your post-lab 
documentation at the beginning of your next lab period. Additionally, keep the 
circuit you have built in this lab. It will be used in Lab 2


Lab 2 - Combinational Logic - N-Bit Full Adder with discrete components and FPGA
This lab exercise has two independent parts. The first combines the circuit 
you and your team members designed and implemented in Lab 1 to form a 
multi-bit full adder. The second requires you to repeat the design using the 
FPGA. This lab is to be completed only once by your entire TEAM. The complexity 
of this project is considerably greater than Lab 1 - don't wait to start!


Lab 3 - Combinational Logic  - Logic Analyzer
This lab exercise requires you to construct three fundamental logic circuits 
in Xilinx and implement them using an FPGA: the Ring Oscillator, the Full 
Adder, and the Multiplier, and verify their operation with the logic analyzer. 
You must take readings such that you can determine the hazards in the logic of 
the circuits. This lab is to be completed only once by your entire TEAM.

Lab 4 - Combinational Logic - FritzLarsonia Motion Indicator
Lab 4 presents a word problem and specifications for a portion of an imaginary 
movement control system. The portion you are to design involves determining 
the direction of motion on a cylinder based on the current position and the 
requested position. When a request is made, the circuit will indicate whether 
the tracking position should move up, down, left, right, or stay on the 
current position. No provision is made for multiple position requests. You 
will use switches to input the current position and the requested position. 
The current position will be displayed on a seven-segment display, and you 
will also indicate the two directions of motion. This project is to be 
completed only once by your entire TEAM, as are all laboratory projects for 
the remainder of the semester.


Lab Practical Exam
Your Lab Practical Exam will consist of a simple combinational design problem 
that you will solve and implement during your normal laboratory session time. 
Each laboratory section will be split into two 50-minute periods with the 
students divided between the two shortened sessions. This assignment will be 
completed individually.


Lab 5 - Calculator
This lab deals with the design of a somewhat more complex circuit consisting 
of a collection of simpler functions for performing single digit addition and 
subtraction in the format you would use to enter it into a calculator. This 
circuit is sufficiently complex that it would be difficult to implement using 
discrete logic gates as you have done the previous four weeks. You will use 
the Xilinx Spartan 3 FPGA in lab to implement and test the circuit. This 
assignment is to be completed only once by your TEAM. Be sure to refer to the 
supporting documentation for additional information on FPGAs and related 
topics on the Resources page.


Lab 6 - Phase 1
Lab 6 is the final laboratory assignment for the semester. It is a large 
assignment that will occupy your lab time for the remainder of the course. 
This is the first of three Phases, to be posted at approximately two week 
intervals. Check the Resources link for possibly useful information.


Lab 6 - Phase 2
Phase 2 of this assignment asks you to continue and enhance the design of your 
VGA hardware game.

Lab 6 - Phase 3
Phase 3 requires that you complete the system and implement a demonstration 
model of the game. The model should include the monitor and a separate 
controller. Grading rubrics for the demonstration and documentation will be 
posted in approximately one week.






http://www.xilinx.com/univ/teaching_material.htm


http://www.xilinx.com/univ/xup/labsfnd/downldfpga1.htm

Xilinx FPGA Design Flow Workshop Materials
These materials are available as a single complete two-day download, 
individually by day, or further split up into individual files to suit your 
download preferences. You need to download only one of the choices. You may 
obtain complete lab solutions by contacting XUP.


http://www.xilinx.com/products/design_resources/proc_central/grouping/picoblaze.htm

PicoBlaze is a fully embedded 8-bit microcontroller macro for the Virtex™ and 
Spartan™ series of FPGAs and CoolRunner™-II CPLDs. The PicoBlaze reference 
designs support 57 to 59 different 16- or 18-bit instructions, 8 to 32 
general-purpose byte-wide registers, up to 256 directly and indirectly 
addressable ports, reset, and a maskable interrupt. The PicoBlaze controller 
for Spartan-3, Virtex-4, Virtex-II, and Virtex-II Pro also include 64 bytes of 
scratchpad RAM.




http://www.xilinx.com/univ/downld_partnerteaching.htm

Academic Partner Teaching Material
A catalog of high-quality course material is available from a range of partner 
academic institutions.
High quality course lecture notes and laboratory material, along with 
solutions, are available in source form, PowerPoint or Word. (Note that access 
to this material requires XUP Member Sign-in)
    * Logic Design , San Jose State University
    * DSP-FPGA Primer, Univ. of Strathclyde   Syllabus
Other representative sampling of high quality teaching material is available 
from the following sites:
    * EDK, MPEG 2 System On A Chip; Brigham Young University
    * Digital Design (EE 108 a), Stanford University
    * Digital Design (EE 108 b) , Stanford University
    * Advanced Digital Design, Stanford University
    * MicroBlaze and Micro CLinux; University of Queensland
    * Introductory Digital Systems Laboratory using the FPGA Lab Kit: MIT
    * http://www.eecg.toronto.edu/%7Epc/courses/432/2004/
    * http://www.cs.ualberta.ca/~amaral/courses/329/
    * Network Processing; Stanford University



http://www.stanford.edu/class/ee108a/




http://www-mtl.mit.edu/Courses/6.111/labkit/

The basics: Breadboards, clocks, LEDs, switches, generic i/o signals, and logic analyzer connectors.
	
Audio: An AC'97 codec allows for stereo audio input and output.

VGA Video: A dedicated video DAC drives any VGA-compatible monitor.
	
TV Video: Built in video encoder and decoder chips handle composite and s-video input and output.

SRAMs: 4MB of high-speed synchronous ZBT memory is soldered onto the labkit PCB.

Radio Kit


VHDL projects completed--opencores.org


http://www.opencores.org/browse.cgi/by_category?filter1=status_stable&filter2=language_vhdl

Arithmetic core
	CORDIC core
	5x4Gbps CRC generator designed with standard cells
	Single Clock Unsigned Division Algorithm
	FPU
	Discrete Cosine Transform core

Prototype board
	SD/MMC Bootloader
	MAXII-Evalboard

Communication controller
	I2C controller core
	Stepper Motor Controller
	I2S Interface
	HDB3/B3ZS Encoder+Decoder
	Quadrature Decoder / Counter
	SPDIF Interface
	Manchester to UART converter
	SD/MMC Bootloader
	a VHDL 16550 UART core

Coprocessor
	FPU

Crypto core
	Basic RSA Encryption Engine
	Basic DES Crypto Core
	AES128
	twofish 128/192/256
	AES core modules

DSP core
	FirGen/MultGen
	ECC core
	Ultimate CRC

Library
	Random Number Generator Library
	gh vhdl library

Microprocessor
	Plasma - most MIPS I(TM) opcodes
	RISC5x
	T51 mcu
	System09
	Cpu Generator
	System68
	Data Flow Processor
	JOP: a Java Optimized Processor
	miniMIPS
	T400 µController

Other
	First File Reader FAT16
	JPEG Hardware Compressor
	Simple FM Receiver
	keyboardcontroller
	xmatchpro lossless data compressor

SoC
	Wishbone System6800/01
	System09
	WISHBONE Builder
	ahb system generator


dbouldin@utk.edu