WAL knows what matters in the hardware domain. With WAL it is possible to access signals, step through the waveform or explore the design hierarchy without hundreds of lines of boilerplate.
>-> SIGNALS (clk reset comp1.ack comp1.req) >-> (find (&& comp1.ack comp1.req)) (15 26 102)
WAL has a REPL and can be used for interactive debugging, design understanding, and live WAL programming.
wal.load("trace.vcd") bug_locations = wal.eval("(find condition)") for loc in bug_locations: bug = Bug("Unacknowledged", bug_location) db.insert(bug)
WAL is a Python package and can be implemented in virtually every workflow. You can use it embedded in Python like SQL or write standalone WAL scripts.
We are happy to announce that the first public version of WAL is now available in GitHub. WAL enables you to unlock the information hidden in your waveforms. Analyze the performance of the latest simulation run in your CI pipeline, visualize communication on a bus or find that one erroneous state transition. WAL on GitHub: https://github.com/ics-jku/wal