| |
LED
Dimmer for Digilent Board
Introduction
This lab will continue your practice with the Digilent D2SB/DIO4 board combination,
extending the complexity to include sequential logic design. The practical end
result of this lab will be a technique to vary the apparent intensity of the
discrete LEDs.
Objectives
|
Continue gaining familiarity with Digilent D2SB/DIO4 FPGA prototyping board |
|
Design and implement a sequential circuit |
|
Apply principle of pulse-width modulation (PWM) to vary
effective intensity of an LED |
Software
|
NC-Sim or ModelSim Verilog behavioral simulator |
|
Xilinx WebPack ISE 6.3 FPGA implementation tools |
Equipment
|
Digilent D2SB/DIO4 board combination |
|
Parallel port cable |
|
DC power supply |
Documents
Activities
Recommended: Install WebPack and ModelSim on your own
computer system; see above for the link to instructions.
-
Review the step-by-step instructions file
"From Concept to Bitstream"
if you are still experiencing any problems using the Xilinx CAD tools.
-
Read the
Synthesis Design Rules document. Your design must conform to
ALL of the listed design rules except the signal naming conventions at the
bottom of the document.
-
Reflect on how varying the "on" time
of a periodic rectangular waveform will result in an apparent change in the
intensity of the LED. This technique for intensity variation is called pulse
width modulation, or PWM. Choose a frequency that is above the
"flicker fusion frequency" of the human visual system, which is about 30 Hz. The
higher the frequency the more stable the appearance of the LED, but a frequency
that is too high will not allow the LED to turn on and off properly.
-
Design a circuit module that will
meet the following minimum requirements:
-
Accepts eight inputs to be passed
to the eight discrete LEDs
-
Accepts a three-bit integer that
represents the desired intensity of the LEDs (0 corresponds to completely
off, 7 corresponds to maximum possible, with linear variation in between)
-
Operates from 50 MHz clock source
-
Includes master reset from
pushbutton
-
Choose one or more of the following
embellishments:
-
Accepts LED and/or intensity
inputs from combination of switches and pushbuttons
-
Accepts LED and/or
intensity inputs from a source internal to the FPGA (e.g., counter, shift
register, bit rotater, etc.)
-
Accepts LED and/or intensity
inputs from parallel port
-
Displays presently-selected
intensity value on one of the seven-segment display digits
-
Anything else you think would be
interesting
-
Produce a detailed hardware diagram
that illustrates the circuit you will place into the FPGA.
-
Write a Verilog description that
translates your diagram from the previous step.
-
Debug your circuit using a testbench Verilog file and behavioral
simulation.
-
Create a UCF file using the D2SB/DIO4 UCF generator spreadsheets.
-
Use the Xilinx WebPack tool to create an FPGA bitstream file for
your design.
-
Test and evaluate your design on the D2SB/DIO4 board.
Deliverables
-
Brief memo that describes your design process and results
(include one campus mail box number at the top of the memo).
Include the following attachments:
-
Block diagram or circuit diagram of your design
-
Behavioral simulation results (waveform plot,
with handwritten annotations to explain how you know that your circuit
is working properly)
-
Verilog synthesizable .v file
-
Verilog testbench .v file
-
UCF file
-
Demonstration of finished project to instructor (obtain
initials)
Due Date
Beginning of next week's lab
|