FPGA projects - Basic
Music box
LED displays
Pong game
R/C servos
Text LCD module
Quadrature decoder
PWM and one-bit DAC
Crossing clock domains
The art of counting
External contributions

PCI Express

Digital oscilloscope
Graphic LCD panel
Direct Digital Synthesis
CNC steppers
Spoc CPU core

A simple oscilloscope

FPGA introduction
What are FPGAs?
How FPGAs work
Internal RAM
FPGA pins
Clocks and global lines
Download cables
Learn more

FPGA software
Design software
Pin assignment
Synthesis and P&R

FPGA electronic
SMD technology
Crystals and oscillators

HDL info
HDL tutorials
Verilog tips
VHDL tips

Quick-start guides

FPGA links
HDL tutorials

Hands-on - A digital oscilloscope

Let's build a simple digital oscilloscope.
A simple digital oscilloscope recipe
Using parts from KNJN.com, here are the basic items of our recipe.

Here's how they look.

We also need the following (these are common items, hopefully available in many people's lab).

Now let's put things together.
1. Pluto

The male connector needs to be soldered on Pluto.
Let's also screw-in the two standoffs.

2. Flash

Now for Flash. The female connector goes on Flash's bottom. Place it and solder it there.

The BNC goes on Flash's top. Let's make sure the BNC signal and ground leads go into the right spots.

Then return the board to solder the BNC.
3. Pluto and Flash combo

With the connectors soldered, the two boards mate easily, and the top standoff screws can be added.

4. Let's power it up

Now TXDI can be connected to Pluto. We add the RS-232 connection to a PC, the 9V (or so) power adapter, and the oscilloscope probe on the BNC.

We are ready to probe!

5. The software

Let's run the Flash software provided with Pluto.
First we get a flat trace.

Let's probe something.
We fire up our signal generator, select triangular signal, here it is!

6. Possible improvements
Here are a few ideas:
  1. Use a Pluto-II instead of a Pluto (Pluto-II has a boot-PROM so can be active at power-up, and the bigger FPGA allows more features in the oscilloscope). Or even a Pluto-3 and a FlashyD to get a two channels oscilloscope. Or use a different Flashy revision - for example rev. K allows precise frequency measurements and equivalent-time sampling.
  2. Make the oscilloscope USB-based (see here) or use a Saxo or Xylo board instead of a Pluto (which are natively USB controlled/USB-powered, and support FlashyD = two channels).
  3. Another possibility is to add an LCD (like KNJN item#5300) but don't use a Pluto FPGA board in this case (it wouldn't work because its FPGA is too small to drive the LCD while the oscilloscope is running).

That's it. Your turn to experiment!

This page was last updated on January 27 2014.