Products > Programming

Signal visualisation: GTKWave and disassemblers

(1/3) > >>

MarkMLl:
I note one mention of GTKWave in the entire archive of this forum, which was in this topic about a year ago.

Has anybody had any success getting an external filter program working with it? Using e.g. this as a dummy:


--- Code: (perl) ---#!/usr/bin/perl

$| = 1;                             # Unbuffered output
while (<>) {
  if (/_1/) {
    $_ = 'GPS';
  }
  print($_);
}

--- End code ---

I can see the program being entered but I've never actually seen GTKWave pass data to it. From this I conclude that there is some magic bit of GUI configuration that I'm missing on a signal-by-signal basis, but neither the documentation nor Google are any real help.

I appreciate that Perl isn't everybody's cup of tea, but since it has a long-established history for writing filters thought it would be the best example. GTKWave is 3.3.98 running on Debian Linux x86_64.

MarkMLl

SiliconWizard:

--- Quote from: MarkMLl on January 04, 2022, 02:45:12 pm ---I note one mention of GTKWave in the entire archive of this forum, which was in this topic about a year ago.

--- End quote ---

Uh, really? Searching for GTKWave in the forum shows 44 results.

I routinely use it.


--- Quote from: MarkMLl on January 04, 2022, 02:45:12 pm ---Has anybody had any success getting an external filter program working with it? Using e.g. this as a dummy:


--- Code: (perl) ---#!/usr/bin/perl

$| = 1;                             # Unbuffered output
while (<>) {
  if (/_1/) {
    $_ = 'GPS';
  }
  print($_);
}

--- End code ---

I can see the program being entered but I've never actually seen GTKWave pass data to it. From this I conclude that there is some magic bit of GUI configuration that I'm missing on a signal-by-signal basis, but neither the documentation nor Google are any real help.

I appreciate that Perl isn't everybody's cup of tea, but since it has a long-established history for writing filters thought it would be the best example. GTKWave is 3.3.98 running on Debian Linux x86_64.

--- End quote ---

Now I'm sorry - while I've been using GTKWave for a long time now, I've never used filters, and I don't know much about Perl.
For Perl, I know a few people on here would be able to help you. But for GTKWave filters, I'm not so sure.

MarkMLl:

--- Quote from: SiliconWizard on January 04, 2022, 05:48:00 pm ---Now I'm sorry - while I've been using GTKWave for a long time now, I've never used filters, and I don't know much about Perl.
For Perl, I know a few people on here would be able to help you. But for GTKWave filters, I'm not so sure.

--- End quote ---

I've re-run the search and I was obviously being too specific: 44 it is :-)

I've knocked together another little test program which can generate different line-endings etc. and can confirm that that script works from the command line. I'll start looking at things on a character-by-character basis in case I'm missing something obvious, but will ask on the GTKWave support ML if necessary (and will, of course, report back particularly if I'm making some silly mistake).

Apart from that I'm looking at the feasibility of a general-purpose disassembler which can accept a .vcd from a logic analyser, but thought I'd check what GTKWave could do first.

MarkMLl

SiliconWizard:
Sorry I can't help here, but I'll be keeping an eye on the topic, as using filters may prove useful one of these days. I've only used GTKWave paired with GHDL so far, and using almost exclusively the format that works best for this, which is ghw and not vcd.

But what exactly do you want to achieve? Would you like to have a disassembler inside GTKWave so that you can see both signals and decoded assembly (for instance for simulating a CPU?)

MarkMLl:

--- Quote from: SiliconWizard on January 04, 2022, 06:43:42 pm ---But what exactly do you want to achieve? Would you like to have a disassembler inside GTKWave so that you can see both signals and decoded assembly (for instance for simulating a CPU?)

--- End quote ---

Initially, capturing a few hundred asynchronous transitions possibly with partial decoding.

The more-general disassembler is, in part, just to go into the toolkit but I've also got some memory-access stuff I want to look at (40-pin connector going to a Black Blob on a PCB).

I don't necessarily want to express all instrument settings etc. as code, but I /do/ like to have things in a format where they can be permanently archived.

I've now modified one of the filter programs to log every incoming byte, and I can see that GTKWave starts the filter program and releases it in good order when it terminates but never actually writes anything to it. Guess it's time to ask the ML.

MarkMLl

Navigation

[0] Message Index

[#] Next page

There was an error while thanking
Thanking...
Go to full version