Students successfully completing this project exercise will accomplish the following objectives.
1. Learn to plan and implement and test a working hardware system using the concepts studied in class including combinational logic, sequential machines, computer aided design capture, and use of programmable hardware.
2. Gain experience working collaboratively as a member of a team.
3. Produce documentation which describes a digital design in sufficient detail for the system to be repro- duced.
Project Options
Option 1: Multifunction Counter
Design a multifunction counter. The inputs and outputs of the counter are shown in Table 2. Your design should display a sequence of values between 0 and F on the seven-segment display(s) of the Altera DE1 trainer board. The order of values displayed is governed by a 2-bit input called mode according to the description in Table 2. The counter should scroll the output digits across the four seven-segment displays of the DE1.
Table 2: Counter I/O descriptions
Signal Name
|
In/Out
|
Description
|
clk
|
In
|
System clock
|
resetn
|
In
|
System reset
|
mode(1 DOWNTO 0)
|
In
|
Mode of operation:
"00" - All outputs hold their current value.
"01" - The output increments in numerical order.
"10" - The output increments in Gray code order.
"11" - The output displays a WCU ID number (e.g. 920123456) number. A single digit blank display should be inserted between cycles of the number.
|
left Rightn
|
In
|
Scrolling direction: left (1) or right (0)
|
digit1(6 DOWNTO 0)
|
Out
|
Count value digit 1 - Note: this is the only digit that will be needed if scrolling is not implemented.
|
digit2(6 DOWNTO 0)
|
Out
|
Count value digit 2
|
digit3(6 DOWNTO 0)
|
Out
|
Count value digit 3
|
digit4(6 DOWNTO 0)
|
Out
|
Count value digit 4
|
Option 2: Single-Octave Keyboard
You are to design a keyboard which plays any note on a single octave. The user interface will consist of eight slide switches and a breadboard speaker circuit (constructed by the project team) that connects to the DE1. The slide switches of the DE1 may be used as keyboard keys to play the appropriate note's frequency on the octave. The note should be audible using a piezo buzzer speaker. Individual note frequencies are given by Table 4. If two or more slide switches are actuated, the higher-frequency note should be played.
Table 4: Musical note frequencies over one octave
Note
|
Frequency (Hz)
|
A
|
440.000
|
B
|
494.883
|
C
|
554.365
|
D
|
587.330
|
E
|
659.225
|
F
|
739.989
|
G
|
830.609
|
Extra Credit
Display the note being played as a character on the left-most seven-segment display. Display the whole- number portion of the note's frequency on the remaining three seven-segment displays. For example, when playing the A note, the four seven-segment displays should contain A440.
Option 3: Stopwatch
Design a stopwatch capable of timing events lasting up to ten minutes in increments of 0.1 s. Each digit of the time must be displayed as a seven-segment character as shown in Figure 1. The stopwatch must also have the capability to display lap times.
Figure 1: Stopwatch display format
The user interface to the stopwatch will consist of four displayed digits as shown above as well as control inputs implemented as buttons or switches. If switches are used, they must be implemented as momentary inputs. The operation of each input and output signal is described in Table 6.
Signal Name
|
In/Out
|
Description
|
clk
|
In
|
System clock (10 Hz)
|
resetn
|
In
|
System reset - This signal asynchronously sets all cir- cuitry in the system to an initialized state regardless of other inputs.
|
start stop
|
In
|
Start/Stop - This signal synchronously toggles the stop- watch between operational modes of incrementing time or holding the current value of accrued time.
|
lap
|
In
|
Lap time - This signal synchronously causes the display to hold the current reading of accrued time (the lap time, or split ). While the display shows the lap time, the stopwatch continues to increment. If lap is asserted when a lap time is already being displayed, the display reverts to showing the running timer.
|
clear
|
In
|
Timer clear - This signal synchronously clears the timer and any stored lap times to zero (0:00.0). This signal is only effective when the timer is stopped.
|
minutesDigit(6 DOWNTO 0)
|
Out
|
Minutes digit (0-9)
|
tensDigit(6 DOWNTO 0)
|
Out
|
Tens of seconds digit (0-9)
|
onesDigit(6 DOWNTO 0)
|
Out
|
Seconds digit (0-9)
|
tenthsDigit(6 DOWNTO 0)
|
Out
|
Tenths of seconds digit (0-9)
|
Extra Credit
Implement a storage feature which stores the two most recent lap times for a given timed event. Once the stopwatch has been stopped and is no longer accruing time, use the lap input to step through the most recent pair of lap times which were displayed when the timer was incrementing.