Why I built this
I was developing a compiler for a graph based hardware accelerator ASIC and had no way to validate the compiler outputs. This tool verifies the dataflow graphs generated by my LLVM compiler by showing what memory operations like load and store are doing as well as general execution results at each node in the graph.
Example Input
Example Visualizer Window
How I Built it
I used Python and Tkinter to make the GUI. The nodes in my graph are represented as classes that get stored by my GUI and tracked with a global memory buffer inside the program. The coolest thing in my opinion is the memory virtualizer that shows how loads and stores interact with an existing memory. I also like the logging feature that shows the results of each node at each cycle.