-
Notifications
You must be signed in to change notification settings - Fork 11
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Verilator option for regressions? #1087
Comments
Looks good Steve, let me know if you are able to figure it out. |
Here's a status update of how things are going so far... Executive summaryI removed the clocking constructs and made a bunch of other changes (details below). And now the first phase of verilator simulation runs successfully. DetailsVerilator simulation occurs in three stages:
Phase 1 now completes without error. Here's how that happened: I removed all the Old verilator did not understand timing delays, so I upgraded verilator to v5. Gcc9 did not understand coroutines, so I upgraded gcc to gcc-10. I turned off a BUNCH of warnings that will need to be revisited later I made several changes w.r.t. directory
What's next
|
Status update: Stage 2 works, verilator produces a simulator executable without error. Dunno yet if it actually works. |
Awesome! If the applications aren't working, let me know. I can help debug/look at waveforms. |
Thanks! I hope to take you up on that soon. For now, no waveforms, the simulator is kind of a brick so far :( |
Great, awesome Steve. Let me know what help you need. |
Update:
NEXT
|
Progress report: Someone (Kalhan I think) suggested that, to make Verilator work properly, we might have to replace all the object-oriented (class) code in our testbench with non-class-based equivalents. This seems to work, whereas other things I have tried have not worked, so I am going down that path. The class-based code comprises 1564 lines of verilog, while my translated equivalent (so far) totals about 500 lines, so maybe that means I'm about 1/3 of the way through. Continuing down this path means this translation phase should be done within a week or two, with any luck. Also: I'm not sure why, but suddenly the verilated code is running much much faster than before. Earlier I reported 2ns of sim time for 1s of wall time, i.e. about 2 Hz; now it seems to be zipping through 500ns of simulation in well under a second, so, better than 500Hz at least... |
The verilator testbench seems to be working now, producing what appears to be all the right signals to and from my stubbed-out garnet.v DUT. Next steps:
|
THE CHALLENGE:
Can we provide verilator as an option for CGRA regression testing, as an alternative to existing vcs etc.
EXECUTIVE SUMMARY of progress so far:
DETAILS
pointwise
benchmark to build a populated testbench/aha/garnet/tests/test_app
CGRA.cpp
OPTIONS GOING FORWARD
RESOURCES
TODO
verilator
branch containing my experiments including e.g.CGRA.cpp
clocking
The text was updated successfully, but these errors were encountered: