Waveforms Tutorial for DAD Devices
Waveforms Tutorial for DAD Devices
Schwartz
Department of Electrical & Computer Engineering Madison Emas, Jackson Fugate, PIs
Page 1/9 Waveforms Tutorial 7-Jun-25
Revision 0
Table of Contents
Introduction
Introduction to DAD and Waveforms ................................................................................................................................ 2
Digital Functions
Static I/O ............................................................................................................................................................................. 2
LEDs ................................................................................................................................................................................. 2
Buttons ............................................................................................................................................................................ 2
Switches .......................................................................................................................................................................... 3
Pattern Generator .............................................................................................................................................................. 3
Setting up a Signal ........................................................................................................................................................... 3
Signal Types..................................................................................................................................................................... 3
Setting up a Bus .............................................................................................................................................................. 4
Bus Types ........................................................................................................................................................................ 4
Logic Analyzer ..................................................................................................................................................................... 5
Signal ............................................................................................................................................................................... 6
Bus................................................................................................................................................................................... 6
Digital Miscellaneous Functions ........................................................................................................................................ 7
ROM ................................................................................................................................................................................ 7
UART ............................................................................................................................................................................... 8
Measurement ................................................................................................................................................................. 8
Analog Functions
Power Supplies and Waveform Generator ........................................................................................................................ 8
Power your circuit (DC) ................................................................................................................................................... 8
Generate a waveform .................................................................................................................................................... 9
Oscilloscope ........................................................................................................................................................................ 9
Channel ........................................................................................................................................................................... 9
Measurement ................................................................................................................................................................. 9
Capturing a Waveform .................................................................................................................................................... 9
University of Florida Dr. Eric M. Schwartz
Department of Electrical & Computer Engineering Madison Emas, Jackson Fugate, PIs
Page 2/9 Waveforms Tutorial 7-Jun-25
Revision 0
INTRODUCTION
Waveforms is compatible with all versions of the DAD (Digilent Analog
Discovery), the DAD 1, the DAD 2, and the NAD (no longer sold, from
National Instruments). The purpose of these devices is to assist you in
designing and testing analog and digital circuits. To download the latest
version of Waveforms, go here. Take the time now to familiarize yourself
with your DAD. See Figure 1 for help in identifying wires. This figure will
be referenced throughout this tutorial.
For additional help go to [Link] or click on the help tab of
Waveforms.
If you wish to assure your Waveforms will have a similar appearance to
what will be seen in pictures of this document, use the settings shown in
Figure 2. Click on the gear icon in the upper right corner of Waveforms to
open the options and adjust your settings to match what is seen in Figure 2.
To open a default function, just click any of the images along the left hand
side of the home screen (e.g., Scope, Wavegen, Supplies, etc.). Before Figure 1: Pin configuration
proceeding, feel free to go ahead and close the default function.
IMPORTANT NOTE
All circuits in a design should have common ground connections. To do this, connect any of the black ground wires to the ground on
your breadboard. If a PLD PCB is utilized, connect one of the DAD’s grounds as close as possible to a PLD PCB ground.
DIGITAL FUNCTIONS
The digital functions of the DAD are the Static I/O, the Digital Pattern Generator, and the Logic
Analyzer. These tools output a maximum of 3.3V when outputting. The digital features of the
DAD use the Digital I/O signal wires as seen in Figure 1.
There are 16 wires in total. Higher numbered wires (15-8)
have white stripes. A basic NOR gate, as seen in Figure 3,
will be used to assist you in learning these features.
Figure 3: Simple Circuit
Static I/O
The Static I/O has four basic configurations: bit I/O, progress bar, 8-bit slider, and 7-segment digit
with decimal. When Static I/O is outputting voltage, it takes priority over other digital tools.
Static I/O’s bit I/O can replace the use of switch and LED circuits.
LEDs: Open up the Static I/O, select DIO 7-0, Bit IO, and LEDs as seen in Figure 4. Select View,
Figure 2: Settings Show Name. It is a good habit to always name your LEDs, Switches, and Buttons. These digital
LEDs can be used in place of the LED bar and DIP you used in lab. However, they can only be
configured as active high LEDs. Note: You may notice that LEDs that are not connected to
anything flicker. This is normal and due to the fact that the LEDs are unconnected, or floating.
Buttons: Configure Digital I/O signal 1 into a release/press button by selecting 1, button, 0/1
as seen in Figure 5. Do the same thing with Digital I/O signal 0 but this time select 1/0 as
seen in Figure 5. Observe the dot in the upper right corner when you press the button. With Figure 5: Static I/O Buttons
button 1, it is 0V when released and 3.3V when pressed. With button 0, it is 3.3V when released and 0V when pressed. Unlike
normal buttons and switches, there is no bounce generated.
Switches: Configure Digital I/O signal 1 into a switch by selecting 1, Switch, Push/Pull (1/0)
as seen in Figure 6. Also configure Digital I/O signal 2 into a switch. When the switch is at
0, it outputs 0V. When the switch is at 1, it outputs 3.3V. Move the switch and observe the
dot in the upper right hand corner. These switches can be used in place of a DIP switch and
SIP resistor package. Figure 6: Static I/O Switches
Exercise: You will now build a simple circuit using the switches and LEDs with the Static I/O. Configure Digital I/O signal 0 back into
an LED by selecting 0, LED. Make sure your Digital I/O signals 2 and 1 are still switches as seen in Figure 7. Use Figure 1 to identify
the Digital I/O signal wires 2, 1, and 0. They are the purple, green, and pink
wires. Using either your PLD or NOR chip, build the circuit seen in Figure 3.
Wires 2 and 1 will be connected to inputs A and B. Wire 0 will be connected
to output C. Don’t forget to make a common ground connection. Make a truth
and voltage table. Observe the LED 0 change as you move the switches.
Verify that it matches your voltage table. Figure 7: Static I/O Exercise
Pattern Generator
The Pattern Generator is used to output digital patterns such as constant numbers, counters, clock, and custom patterns. The Pattern
Generator can be used as an input source to your circuit. The Pattern Generator can also be used in place of a ROM (discussed in the
digital miscellaneous functions section).
Setting up a Signal: Configure Digital I/O signal 3 into an output signal by selecting the green +, signal, DIO3, and Add. You should
now see something similar to Figure 8. Now select “DIO Selection” (see Figure 8), type a name into the text box such as “My Signal”,
and press ok. It is a good habit to always name your signals. To add additional “Parameters” click “Show” (looked right above “DIO
Selection” and select the one you want to see. Use this to verify you have connected the wires as you intended. To remove a signal,
select the signal and press the red -
Signal Types (Constant and Clock): Use PP (push/pull) as the output setting. This setting will assure that the signal will only output
0V or 3.3V. You can configure the signal by changing the type and changing parameter1. Constant and Clock will be used most often
used signal types in 3701. You can click on properties button to see more ways to configure each type. Notice that the line in the middle
of Figures 8 and 9 are thicker than what you might see on your screen. To change the thickness of the line for easier viewing, right click
on the signal line and change the plot width (plot width in Figures 8 and 9 are set at 2).
Clock: Control the frequency and duty cycle using parameters button or just Figure 9: Pattern CLK
using Parameter1 and Parameter2. This is useful when you want the DAD to
toggle your signal automatically. You can use Parameter1 to change the frequency. If you add Parameter2, you can change duty cycle.
Although Parameter1 and Paramerter2 might only give you certain numbers, you can manually type in any number.
Exercise: Open the Static I/O in a separate window so you are able to see the Static I/O and Pattern Generator at the same time. Make
sure Digital I/O signal 3 is configured as an LED. In the Pattern Generator change the type of your Digital I/O signal 3 to constant.
Press Run. Change Parameter1 from 0 to 1 to 0 again and observe LED 3 change from low to high to low again. Change the type to
Clock. Change the frequency to 1 Hz and observe how LED 3 toggles every second.
University of Florida Dr. Eric M. Schwartz
Department of Electrical & Computer Engineering Madison Emas, Jackson Fugate, PIs
Page 4/9 Waveforms Tutorial 7-Jun-25
Revision 0
Setting up a Bus (also called Signal Array): Configure Digital I/O signal bus as seen in
Figure 10 by selecting the green +, bus. Give your bus a name such as S[1..0]. Select DIO
3 by selecting it and pressing the green +. Do the same with DIO 4. You can rearrange the
order of the signals by selecting the signal that is out of order and pressing the green arrow.
You can select multiple signals at a time by selecting one signal and holding shift. Change
the format to hexadecimal. Change Endianness to MSB. Press ok. You can change these
settings at any time by pressing on properties.
If Digital signals 4 and 3 are set as switches or buttons on the Static I/O and the Static I/O is
still running you see “controlled by Static I/O” instead of your digital pattern, see Figure 11.
You can fix this interference by turning the signals into LEDs in the Static I/O, pressing stop
on the Static I/O, or you can simply exit out of the Static I/O.
Figure 10: Setting up a Patterns Bus
Bus Types (Constant, Number, Binary Counter, Custom): Use PP (push/pull) as the
output setting. The most common bus types that will be used
in 3701 are Constant, Number, Binary Counter, and Custom.
You can click on properties to see more ways to configure
each type. When you start changing the types notice how the
number you are outputting is displayed above the signal lines
in hex, see Figure 12. You can change the number display by
changing the format in parameters. To remove a bus, select
Figure 11: A Patterns Bus Controlled by Static I/O
the bus and press the red -.
Constant: You can change the values of all the signals on the bus
from 0 (0V) to 1 (3.3V).
Number: You can change the values of all the signals to output a
specific number. Although Parameter1 might only give you certain
numbers, you can manually type in any number. You can also use Figure 12: Binary Counter Bus
the parameters button that will give you a slider to use.
Binary Counter: You can have the signals output a count at a certain frequency. You can use the parameters button or Parameter1,
Parameter2, and Parameter3 to change the direction of the count and which numbers will begin the count. Most likely you will want to
start from 0 and count up (LSB to MSB). You can use Parameter1 to change the frequency. If you add Parameter2, you can change the
number that will begin the count. If you add Parameter3, you can change the direction of the count.
Exercise: Open the Static I/O in a separate window so you are able to see the Static I/O and Pattern Generator at the same time. Make
sure Digital I/O signals 4 and 3 are configured as LEDs. In the Pattern Generator, change the type of your bus to constant. Press Run.
Change the parameters from 0 to 1 to 0 again and observe LEDs 4 and 3 change from low to high to low again. Change the type to
Number. Change the number by selecting a number or manually typing it in the Parameter1 box. Observe the change on LEDs 4 and
3. Use the sliding bar in Parameters to change the number. Observe the change on LEDs 4 and 3. Change the type to Binary Counter.
Change the frequency to 1 Hz and observe how LEDs 4 and 3 counts every second. Press Stop. Change the beginning number and then
Press Run. Observe how the number that begins the count is different on the LEDs. Change the direction of count. Observe how the
direction of the count is different on the LEDs. Press Stop.
output (the amount of values in your pattern). You can either choose one of the defaults or type in a specific number. Now choose how
many samples you want to show at once. It is suggested that you choose 10 at a time. You can scroll through your values by selecting
the arrows next to the from or typing in a number. There are two ways to enter in the values for your pattern. You can physically move
the lines by clicking the top or bottom of the signal to make it go high to low. However, you should generally manually type in the
numbers in the table. Either you can type in the full number in the
first column or you can change the signal number from 0 to 1. To
save a custom pattern for future use, open parameters and press
the export button as seen in Figure 13 and press save. To input a
custom pattern, press the input button, select your pattern, and
Figure 14: A Configured Custom Bus
press open.
Exercise: Open the Static I/O in a separate window so you are able to see the Static I/O and Pattern Generator at the same time. Using
either your PLD or NOR chip, build the circuit seen in Figure 3. Use Figure 1 to identify the Digital I/O signal wires 2, 1, and 0. They
are the purple, green, and pink wires. Wires 2 and 1 will be connected to inputs A and B. Wire 0 will be connected to output C. Don’t
forget to make a common ground connection. Configure Digital I/O signals 2,1, and 0 as LEDs on your Static I/O. With your patterns
generator, add a bus with Digital I/O signal wires 2 and 1. Change the type to binary count and change the frequency to 1 Hz. Make a
truth and voltage table. Press Run. Observe the LED 0 (output) changes as the count changes (which happens second) on LEDs 2 and
1. Verify that it matches your voltage table. Press Stop. Change the type to custom. Set the frequency to 1 Hz and make a pattern as
seen in the Quartus functional simulation waveform for a NOR in Figure 15. The Quartus waveform has 18 values. Press Run. Notice
how the LED matches the output in the Quartus waveform. Press Stop.
Exercise: Open the Static I/O in a separate window so you are able to see the Static I/O and Logic Analyzer at the same time. Configure
Digital I/O signal 3 is configured as a 0/1 Button. You will notice in the Logic Analyzer that the DIO 3 will say “controlled by Static
I/O” see Figure 17. That is normal. Change the base on the Logic Analyzer to 6 s/div and change the mode to Screen see Figure 17.
Notice how what the Run button now says Scan. This occurs when the base is greater than 100ms. Press Scan. Press the button and
notice how as you press and release the button, the Logic Analyzer records the result. Press Stop. Close the Static I/O and open the
Pattern Generator in a separate window so
you are able to see the Pattern Generator and
Logic Analyzer at the same time. On the
Pattern Generator, configure Digital I/O
signal 3 as a 1 kHz clock. Press Run on the
Pattern Generator. On the Logic Analyzer,
Figure 17: Logic Analyzer Controlled by Static I/O
University of Florida Dr. Eric M. Schwartz
Department of Electrical & Computer Engineering Madison Emas, Jackson Fugate, PIs
Page 6/9 Waveforms Tutorial 7-Jun-25
Revision 0
change the Mode to Repeated. Press Run. Change the base and observe how that changes the
data that the Logic Analyzer is capturing.
Setting up a Bus: Configure Digital I/O signal bus as seen in Figure 10 by selecting the green
+, bus. Give your bus a name such as S1:0. Select DIO 4 by selecting it and pressing the green
+. Do the same with DIO 5. See Figure 18. You can rearrange the order of the signals by
selecting the signal that is out of order and pressing the green arrow. You can select multiple
signals at a time by selecting one signal and holding ctrl. Change the format to hexadecimal.
Change Endianness to MSB. You can also add an Enable (as a low or high enable) and Clock
(with a rising or falling edge) to your bus. This will be explored in the next exercise. Press
ok. Your bus should look like Figure 19. You can change these settings at any time by pressing
on properties.
Exercise: Open the Pattern Generator in a separate window so you are able to see the Pattern
Generator and Logic Analyzer at the same time. On the Pattern Generator, configure Digital Figure 18: Setting up a Bus
I/O signals 5 and 4 as a bus and change the type to binary counter with a 1kHz frequency.
Press Run on the Pattern Generator. Press Run on the Logic Analyzer and observe the count. Add Digital I/O signals 3 and 6 to the bus
on the Pattern Generator. Make sure the order is the same as
what is seen in Figure 20. Press the parameter button on the
Logic Analyzer and change the clock from None to DIO 3
with a Rising Edge and change the enable from None to DIO
4 as a high enable. Press ok. Observe on the Logic Analyzer
how the bus number is only read when the enable is high, and
that the clock and enable are not included in the bus number.
Figure 19: Logic Analyzer Default Bus
Exercise: Open the Pattern Generator in a separate window so you are able to see the Pattern Generator
and Logic Analyzer at the same time. Create the circuit seen in Figure 3. Connect Digital I/O wires 2 and
1 to inputs A and B. Wire 0 will be connected to output C. Don’t forget to make a common ground
connection. With the Logic Analyzer, add a bus with Digital I/O signal wires 2 and 1 and a signal with
Digital I/O signal 0. Using the Pattern Generator, add a bus with Digital I/O signal wires 2 and 1. Change
the type to binary count and change the frequency to 1 Hz. Make a truth and voltage table. Press Run.
Observe the signal 0 change as the count changes every second on signals 2 and 1. Verify that it matches Figure 20: Bus for Exercise
your voltage table. Press Stop.
ROM: The DAD can be used to emulate ROMs (Read-Only Memory) using the Pattern
Generator. Configure a ROM by selecting the green +, ROM. Give your ROM a name
such as My Rom. Only Digital I/O signals 9-0 can be used as inputs, but all Digital I/O
signals can be used as outputs. Under the properties tab you can add inputs using the green
+ under Inputs and add outputs using the green + under Outputs, see Figure 21. To enter
data into the ROM, select the truth table tab and enter your data into the truth table, see
Figure 22. Press add. See Figure 23.
Figure 21: Setting up a ROM
Figure 22: Setting up ROM Truth Table Figure 23: ROM Preview
University of Florida Dr. Eric M. Schwartz
Department of Electrical & Computer Engineering Madison Emas, Jackson Fugate, PIs
Page 7/9 Waveforms Tutorial 7-Jun-25
Revision 0
Exercise: Use the ROM feature to make a NOR gate as seen in Figure 3. Use Digital I/O signals 7 and 6 as inputs A and B. Use Digital
I/O signal 5 as output C. Make a truth table for a NOR and enter in your values in the ROM truth table. Press Ok. Use the Pattern
Generator to add a bus with Digital I/O signals 7 and 6. Change the type to binary count and change the frequency to 1 kHz. Open the
Logic Analyzer in a separate window so you are able to see the Pattern Generator and Logic Analyzer at the same time. With your
Logic Analyzer, add a bus with Digital I/O signal wires 7 and 6 and a signal with Digital I/O signal 5. Press Run on the Pattern Generator
and on the Logic Analyzer. Adjust the base if necessary to observe the see the results of your ROM.
UART: The DAD can be used to read in UART (Universal Asynchronous Receiver/Transmitter). Press
Add on the Logic Analyzer and select UART. Change Baud to manual and enter in your baud rate. Select
your Digital I/O signal to
measure your UART,
your total bits, your
parity bit, and your stop
bit, see Figure 24. Press
Add then press Run.
UART will be able to
interpret the bits in the
format provided in the
configuration (see Figure
24.) An example of
Figure 24: Setting up UART properly interpreted
results can be seen in Figure 25. Figure 25: UART Received
Measurement: The measurement tool can measure time and frequency using cursors. Press view, cursors to bring up the measurement
tool. You will need to add a normal cursor and a delta cursor. To add a normal cursor, select the green + next to Normal. Drag the
cursor to the first point you want to measure. To add a delta cursor, select the green + next to Delta. Drag the cursor to the second point
you want to measure. The cursor tool will show you the position of both cursors. You can look at the time between the two cursors and
the corresponding frequency, as shown in Figure 26.
ANALOG FUNCTIONS
The analog functions of the DAD are the Oscilloscope, Waveform Generator, and the Power Supplies. Since this is a digital course,
this tutorial will only go over basic features of the Oscilloscope, Power Supplies and Waveform Generator. The analog features of the
DAD use the Scope Channel wires, Power Supply, and Waveform Generator wires as seen in Figure 1.
Power your circuit (DC): The DAD can use the power supplies to power your circuit with 3.3V. Open the Power Supplies and click
on “Power Supply (V+) Off” to change it to Rdy as seen in Figure 27. Change the voltage to 3.3V. Click on “Master Enable is Off” to
change it to On. To power your circuit, use the red V+ Power Supply wire. Use any of the black ground wires for ground.
Oscilloscope
The Oscilloscope (also known as O’scope or Scope) allows you to view a waveform of +/- 25V on up to two signals at a time using the
orange and blue Scope channel wires as seen in Figure 1. See Figure 29.
Setting up a Channel: To use only channel 1, click the check box next to channel 2 as seen in Figure 29 to turn channel 2 off. By
default, the waveform graph displays +/- 2.5V. Each line on the output plot is a “div”. To see 3.3V set the range to 1V/div. The offset
will add or subtract a constant value to the displayed results. This can be helpful for analyzing two waveforms at the same time. The
base time will modify the sampling rate, allowing you to easily view waveforms of different frequencies.
Measurement Tool: Click on View, Measure to bring
up Measurements see Figure 30. To view a
measurement click on Add, Defined Measurement.
Then select the measurement you would like to view on
the channel you are using. Measurements include the
frequency, period, duty cycle (all under horizontal) and
average value of the input (under vertical).
Exercise: Open
Power Supplies in a
separate window so
you are able to see the Figure 29: Oscilloscope
Oscilloscope and
Figure 30: Measurements
Power Supplies at the same time. Using Figure 1, connect the red V+ Power Supply wire to the orange
Scope Channel 1 Positive wire and connect any of the black Ground wires to the orange stripped Scope
Channel 1 Negative wire, as seen in Figure 31. Open Measurements in Oscilloscope and display the Average Voltage. Configure and
enable the Power Supply to output 3.3V. Press Run on Oscilloscope and observe the voltage on the graph and on the Measurement tool.
Exercise: Open the Waveform Generator in a separate window so you are able to see the
Oscilloscope and Waveform Generator at the same time. Using Figure 1, connect the yellow
(Waveform Generator 1) wire to the orange Scope Channel 1 Positive wire and connect any of
the black Ground wires to the orange stripped Scope Channel 1 Negative wire. Open
Measurements in Oscilloscope and display the Average Voltage. Configure and run the
Waveform Generator to output 3.3V. Press Run on Oscilloscope and observe the voltage on
the graph and on the Measurement tool. (You could also measure the voltage of the red V+ Figure 31: Exercise Circuit
Power Supply wire with this technique.)
Capturing a Waveform: Sometimes you only want to capture an image of a waveform as it changes; at a rising or falling edge. Change
the condition to select rising or falling edge. Change the voltage level to 3V entering 3V in the level box (do not use 3.3V: Use 3V to
guarantee condition will be met). Use Single instead of Run to generate a single capture center around the edge change.