Waveform debug using Surfer 🏄


SiliconNotes

A weekly newsletter sharing insights and stories about RTL Design and Verification.

Click here to read this edition of newsletter on web.

Welcome to SiliconNotes!

In this edition of the newsletter, I want to talk about a shiny new waveform debugger called Surfer.

Surfer is a waveform viewer with a focus on a snappy usable interface, and extensibility.

Installation

If you just want to try things out, you can try surfer right in the web-browser at https://app.surfer-project.org/. However, performance is a bit worse than the native installation, and some features are also missing. I highly recommended installing the native version and using it for your personal projects. I've completely shifted to using surfer as my primary waveform viewer replacing the age old and well known GtkWave.

The primary way to install surfer is to build it from source which should work on Linux, Mac and Windows. For convenience there are also pre-built Linux and Windows binaries provided which can help with installation.

Features

Surfer continues to be under active development but supports the following set of features:

  • Basic rendering of waves
  • Snappy zooming, panning and general interaction
  • Wave form file format support
    • VCD loading
    • FST loading
    • GHW loading
  • Bit-vector translation
    • Raw bits
    • Hexadecimal values
    • Unsigned values
    • Spade values
    • Signed values
    • Octal values
    • ASCII
    • Floating-point
    • Posit, using softposit
    • Instruction decoding using instruction-decoder
    • Compressed integers
    • Custom translation via Python API
    • Custom translation via WASM API
  • Dividers
  • Cursors for measuring time
  • Mouse gesture control
  • Keyboard commands
  • Clock period time unit
  • Configurable color schemes

All of the above features are great and the fact that the developers still continue to work on Surfer, I am confident that it would slowly match-up with the industry standard features.


Using Surfer on QuickSilicon

I’ve enjoyed using Surfer so much that I decided to replace the makeshift waveform viewer integrated into the QuickSilicon platform with Surfer. This is obviously a complex change, especially with more than 5,000 simulations being run on the platform monthly!

We’ve been working hard over the past couple of months and have successfully integrated Surfer, though it’s not yet live on the website. We continue to conduct regression testing since any disruption could disappoint our users.

On-going surfer integration

We are close to get our testing done by the end of next week and should be able to make it live on the platform then. I am excited on how our users would find this change and interact with it.


Well, that's it for this edition of the SiliconNotes.

Have a great week!
Rahul


#103 Sector D, Jammu, 180011
Update your email preferences or unsubscribe here