Monday, June 22, 2020

Timing diagram applications

I'm old-school enough that I draw most of my timing diagrams with graph paper, a pencil and a big eraser. I knew what I wanted the timing to look like for the module that translates EP102 printer codes to M-32TL printer codes, but this time I thought it might be nice to find an application to draw them.

In general I favor open-source apps, but I'm willing to consider something closed-source if the license terms are good. Here are the applications I found worthy of note.

The first is DrawTiming. I've used this program before with some success. Basically you create a cryptic version of the timing using a text editor and DrawTiming turns it into a nicely formatted image. But this time I was hoping to find a WYSIWYG type tool so I could see the timing without post-processing.

The second is TimingAnalyzer. The website says the beta is licensed as freeware, but the final product will be non-free for commercial use while remaining free for academic and personal use. As a Java app it's portable. A while back I downloaded the 0.9931-beta version of this program and tried it for a bit. It seems pretty good with lots of capabilities, but I ended up not using it this time. Maybe it's too capable for the simple use I had in mind.

Over the weekend I stumbled upon a program called Waveme. It appears to be closed-source freeware Windows program, distributed under a modified Apache License 2.0 agreement. The author notes that it runs on Linux using Wine, and I've found that to be true. It's also easy enough to use that I haven't had to resort to reading the documentation.

Here's a timing diagram I'm using to make the translator module, created using Waveme (click to view a larger image):


I've found this quite helpful to visualize the timings of data passing through the module. By making a copy using the file menu "Save As" option it's easy to diagram variations, such as this one which shows what should happen when the printer isn't ready to accept more data:


If I was generating a formal design document I'd probably want the capabilities of something like TimingAnalyzer. But Waveme makes it so easy to make changes to explore possible scenarios that I'm finding it very useful.

No comments:

Post a Comment