Overview
The Digilent FPGA board kits contain the
following components:
|
Digilab 2E System Board (D2E Board) based on Xilinx Spartan 2E FPGA |
|
Digilab IO1 Peripheral Board (DIO1 Board) containing lots of LEDs,
pushbuttons, and switches |
|
Power supply |
|
Parallel port cable |
|
Newer kits contain the D2SB system board and DIO4
peripheral board (these are similar in capability to the D2E/DIO1 board set,
but are wired completely different) |
Documentation
|
Digilent, Inc. website,
www.digilentinc.com -- Follow the "Products" tab, and select
the "Documentation" link. Look for manuals and schematics pertaining to the
boards listed above. |
|
Local Guide --
This Word document assumes you are already familiar with the Xilinx
implementation tools, so only the essential new information is provided. |
|
"From
Concept to Bitstream" -- A "How-To" Guide for Xilinx FPGAs
-- Includes all the steps needed to create a bitstream file for the Digilent
boards. |
UCF Generators
These Excel spreadsheets greatly simply the creation of Xilinx user
constraint files, or UCF files, to specify the appropriate FPGA pin number for a
given Digilab circuit device.
TIP: Save the spreadsheet with your entered Verilog signal names to
make it easy to change your mind later on.
The spreadsheets are available on the
Software page.
Guidelines for Breadboard Projects
If you are connecting custom hardware to the system board:
Please take a great deal of care to ensure that you do not damage
the Digilent boards! The FPGA is surface-mount soldered directly to the board,
so is effectively impossible to repair! You must
observe the following:
|
Test and thoroughly debug your circuit on breadboard before you
connect it to the D2E system board. For example, use a 74HC4040 counter to
create digital stimulus when testing your circuit. |
|
CRITICAL: Use 400- to 500-ohm resistors instead of wire to establish the connections
between your analog circuit and the connector socket leading to the FPGA |
|
Do not attempt to use the power bus from the D2E system board for any
purpose, unless your circuit uses a +3.3 VDC supply and does not require a
large amount of current. |
|
You must connect your circuit's ground to the D2E system board ground |
Be aware that the D2E system board connectors A&B use the same FPGA pins as the E&F
connectors on the opposite side. Thus, you can only get two independent
sets of pins for a maximum of two peripheral boards, and the boards must be
placed at two adjacent sides of the system board, i.e., at a 90-degree angle to
each other.
Verilog Modules
NOTE: All of the files referenced below are contained in
demo_files.zip.
DigitDisplay
|
Description:
|
Accepts two 8-bit values on input, and displays the hexadecimal
representation of each value on the Digilent DIO1 peripheral board |
|
Uses multiplexed display scheme with 100 Hz refresh to minimize flicker |
|
|
Connection requirements:
|
50MHz master clock |
|
Active-high master reset (all segments active on reset) |
|
All 12 lines of the four-digit seven-segment display |
|
|
Synthesizable module: digit_display.v |
|
Testbench for synthesizable module: digit_display_TB.v |
|
NOTE: This module may be used with either
the DIO1 or the DIO4 boards, with default behavior set up for the DIO1. Refer
to the documentation at the beginning of digit_display.v to learn how
instantiate the module for a DIO4 board. |
DigitDisplay_Demo
|
Description:
|
Demonstrates operation of the "DigitDisplay" module on the DIO1 board
and D2E board |
|
Displays the value of two 8-bit counters (one counts up, the other
counts down) that start at intermediate values on reset |
|
Press the DIO1 "Pushbutton 1" to reset |
|
|
Synthesizable module: digit_display_demo.v |
|
UCF for synthesizable module: digit_display_demo.ucf |
|
Bitstream file (must connect DIO1 Connector B only to D2E
Connector C): digit_display_demo.bit |
LED7_Display
|
Description:
|
Permits individual control over the display of each segment on the
four-digit seven-segment LED display |
|
Accepts four 8-bit input values, where the most significant bit
corresponds to the decimal point, and the remaining seven bits correspond to
the segments "a" through "g". For example, the value 8'b10010101 will
activate the decimal point and segments "c", "e" and "g". |
|
A "1" lights the segment, and a "0" turns it off.
|
|
Uses multiplexed display scheme with 100 Hz refresh to minimize flicker |
|
|
Connection requirements:
|
50MHz master clock |
|
Active-high master reset (all segments active on reset) |
|
All 12 lines of the four-digit seven-segment display |
|
|
Synthesizable module: LED7_display.v |
|
NOTE: This module may be used with either
the DIO1 or the DIO4 boards, with default behavior set up for the DIO1. Refer
to the documentation at the beginning of digit_display.v to learn how
instantiate the module for a DIO4 board. |
LED7_Display_Demo
|
Description:
|
Demonstrates operation of the "LED7_Display" module on the
D2E/DIO1 board
or D2SB/DIO4 board |
|
This circuit is a great "sanity check" of the
DIO1 (or DIO4) board since it exercises all of the LEDs and switches |
|
Rotates eight asserted bits through all 40 LED devices (4x8=32
seven-segment display segments, and 8 discrete LEDs) |
|
Blinks the LED on the D2E (or D2SB) system board |
|
Displays information about any active pushbutton
or switch |
|
|
Operation:
|
Press the D2E (or D2SB) system board pushbutton to reset (all LEDs light) |
|
Press any pushbutton to display "-P.n-" where n
is the pushbutton number |
|
Press any slider switch to display "-S.n-" where
n is the slide switch number (lower switch and pushbutton numbers have
higher priority if multiple switches are active) |
|
|
Synthesizable module: LED7_display_demo.v |
|
UCF for synthesizable module: available for all
D2E/DIO1 and D2SB/DIO4 configurations |
|
Bitstream files: available for all D2E/DIO1 and
D2SB/DIO4 configurations. Filename is of the form
led7_display_demo_d2e-dio1-a&b.bit, (board set type and system board
connectors); make sure that you pick the correct bitstream file for your
specific connection! |
|