Online / 5 & 6 February 2022


Writing GTKWave documents, with style

A Python-based CSS-like mini language for generating GTKWave documents

GTKWave is a nice tool for displaying signal traces, while developing with Hardware Description Languages, and has many formatting features like changing signal color, grouping signals in a hierarchy, etc. However, it can become tedious to manually edit through the GUI. Also, its document format, while ASCII, is a bit cryptic, and contains extra information pertaining to the GUI (window and panel sizes, last modification date, etc.), making it inconvenient for placing in revision control.

A Domain Specific Language for generating GTKWave documents was developed, separating signal description and structure from style, not unlike HTML+CSS, but described using Python Lists and Dictionaries. This makes it especially suitable for embedding in Python-based Hardware Description Languages and Simulators.

While it fits my own needs, I'm hopping to gather some feedback on this tiny library, so it could be made more generally useful.


Photo of Cesar Strauss Cesar Strauss