About Me

Hi, I'm Lucas. My interests include analyzing waveforms, (formal) hardware verification, computer architecture, open-source EDA tools, and fun stuff with SMT solvers.
You can also find me on Mastodon, GitLab, and GitHub.

WAL: Waveform Analysis Language

WAL is a programming language for the analysis of hardware waveforms. It is useful for anything from counting how often a simple condition is true to analyzing busses and caches to a lot more. WAL can be used standalone or embedded in other programming languages. You can also try some example in your browser here.
More information about WAL can be found at wal-lang.org or in our open-access journal article.
(load "waveform.vcd")	  
(whenever (&& (rising clk) ready valid)
  (print INDEX ":" data))
As an example of what is possible with WAL, I built an experimental SVA to WAL compiler. For another example try SonicRv. It is a teaching tool developed at the ICS for their computer architecture class. At the core of SonicRV is a WAL program that reconstructs pipelines from RTL simulation waveforms.

Surfer

Surfer is a modern waveform viewer written in Rust with a focus on extensibility, customization, and a snappy user interface. I'm one of the co-maintainers of Surfer, together with my colleagues in Linköping, Sweden.
Among other things, I'm working on the keyboard-driven interface, the configuration system, RISC-V support, scriptability, and, of course, WAL integration. You can try the online version of Surfer or find more information about it at surfer-project.org.

Publications

Some of my recent publications:
Lucas Klemmer, Daniel Große
IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems (TCAD), 43(10):3198–3211, 2024
Lucas Klemmer, Daniel Große
2023 Forum on specification & Design Languages (FDL)
Lucas Klemmer, Daniel Große
2024 29th Asia and South Pacific Design Automation Conference (ASP-DAC), 692-697
Frans Skarman, Lucas Klemmer, Oscar Gustafsson, Daniel Große
2023 Forum on specification & Design Languages (FDL), 1-8
Lucas Klemmer, Daniel Große
2022 27th Asia and South Pacific Design Automation Conference (ASP-DAC), 358-364
Lucas Klemmer, Daniel Große
2022 IEEE Computer Society Annual Symposium on VLSI (ISVLSI), 38-43
Lucas Klemmer, Daniel Große
Proceedings of the 2021 Great Lakes Symposium on VLSI (GLSVLSI), 33-38
The full list of my publications can be found here.