Ebb Tide – Digilent S-3 board -to- Logic Analyzer Adapter

Boat Anchors of Yester-Year

I love my logic analyzer.  The one I have on the bench now is perfect for almost everything I need it for.  It handles all of the old arcade game boards, and so far, all of the little maker projects I’ve taken on.  In college we were introduced to the HP1630.  For those in-the-know, you remember what wonderful boat anchors they were.  They suffered with a crippled 100MHz bandwith and 20MHz state-timing, settings that disappear on power-cycle, and a user interface that makes monochrome gas pump screens seem like NASA.  When I graduated college and landed my first tech job, they offered me a HP1650(A) logic analyzer which featured a nice scrolling wheel, a better screen and .. alas .. a floppy drive storage medium for all my settings! Hallelujah.

It wasn’t until I upgraded yet again to the Agilent 1670G that I felt I was squatting in tall cotton.  It had a 500MHz bandwidth and tons of channels, internal hard drive, full on-panel keyboard and a color LCD.  Best part was it nearly light enough to be a one-man carry unlike the 3000 lb HP16500B foot-smashers.  The test equipment center at work only had one 1670G, and I grabbed it.  And kept it.  Hidden.  It followed me everywhere I had lab work to do.

About a year later the logic analyzer market exploded with all kinds of new choices – smaller packages and new and improved technologies.  Suddenly you could do both state analysis and decent osilloscope measurements. (Older systems did this as well, just not well enough for it to be worthwhile.)  The sample rates and memory depths became incredible to behold.  They also started coming with all sorts of built-in functional goodies such as glitch-finders,  pattern generators, eye diagrams, and all sorts of serial and parallel protocol analyzers.

I kept my 1670G instead.  It was perfect for my FPGA and digital development and it had everything I needed.  It wasn’t until its main board took a dump that I finally gave it back.  Since then I had been looking for a similar logic analyzer I could use at home on the bench.  I lucked-out and found a nice HP1664A at a local electronics graveyard for $20 bucks.  It was missing the ribbon cable. I just happened to have one.  That thing lasted almost a year before it started having trouble booting.  I got online and found a replacement, the one I have now – an HP 1661A.  I got this one mostly working off eBay for $120 shipped:


For me it harkens back to the 1670G days with the same on-panel keyboard and menu screens.  The only differences are the lower sample rate and monochrome screen, and floppy drive vs the internal hard drive.  What makes these logic analyzers perfect is the price-point.  The HP16xx series is an excellent compromise between cost and capability.  For all your slower-speed development (<100MHz) it’s tough to beat a 16xx.  My best recommendation is the HP1660C(S).  It has a full 128+6 channels and the built-in hard drive.

A Serial Analysis Solution

The logic analyzer I have now great, however the one thing I need now is the ability to analyze serial streams, specifically 8N1 UART data streams.  It is possible to do with the 1661, but it takes some state-timing contortion to do it.  You also have to sacrifice triggering on other channels.  The alternative is to read the serial stream bit-by-bit and de-serialize with pen and paper, until you either go mad or your eyes fall out.  I wanted a better solution.  I had thought about creating a custom card which could de-serialize serial signals back into 8-bit chunks paired with an enable signal would show up nicely on a older logic analyzer.  It would have direct connections to the 40-pin 16xx pod connectors with the correct terminations.  I took a long look at the Bus Pirate:

Imagine a Bus Pirate without any real sort of PHY
Arrr. No useable PHY under my eye-patch. Sorry.


This is kind of a cool solution, except it fails in a couple of critical areas.  First, it doesn’t have a real PHY (nerd-speak for “PHYsical interface”).  Would it have killed them to slap an 80-cent RS-232 or 485 chip on the front end?  Also, there’s no neato 40-pin direct connector to my logic analyzer.

Back to my new board.  It would have the direct connections, proper PHY, oh.. also an FPGA so I could change up waveforms.  How about a small micro that would connect to a PC via USB?  I could change waveforms on the fly, and then download the results to a file on a PC for later analysis.  I actually started drawing up the schematics for this.  Suddenly I looked up from my laptop and gazed around and was reminded of all the bench projects mid-stream I have yet to finish.  This was taking too long.  I had to back off.  Hence the Ebb Tide was born.


This idea was to use an existing FPGA demo board I had laying about, and then design a simple interface board to the HP1661A logic analyzer.  I chose my old Digilent Spartan-3 demo board.  It was within hand’s-reach and untethered from any other projects.  It’s a older model from Digilent – out of production now.  But it has enough I/O to drive a converter board for the logic analyzer.  Ebb Tide is pretty simple:

ebb_schem1       ebb_schem2


The code for the FPGA on board the S-3 is also fairly basic.  (Note: Add code here soon.  I promise.)  All it does now is de-serialize an 8N1 UART data stream into 8-bit chunks along with a separate trigger signal to indicate valid 8-bit data.  But with the RS-232 front end and the flexibility of the FPGA, there’s plenty of room for other waveforms.

One thought on “Ebb Tide – Digilent S-3 board -to- Logic Analyzer Adapter

    […] A simple interface board between the Digilent Spartan-3 and an HP16xx logic analyzer. […]

What do you think?

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s