A programming language for complex waveform analysis and EDA tool development
Install WAL with Pip
Browse the WAL documentation
Documentation(in-groups '("top.in_" "top.out_") (print CG ":") (whenever (&& clk (! reset) #ready #valid) (print INDEX ":" #data)))
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.