-
Notifications
You must be signed in to change notification settings - Fork 53
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
[fud2] Switch to custom testbench generation #2086
Comments
This is GREAT; thanks, @ayakayorihiro! This looks like exactly the ingredients we would need. |
This sounds cool! If you get the chance to document the issue with the external-to-ref pass I'd be curious to hear more about it and can perhaps implement a quick fix for the bugs there. One other thing
I think there was hope to eventually migrate YXI outside of the calyx repo/backend, so this might be moving against that direction. I personally don't have strong feelings about this so maybe others could chime in |
Yes, I think it was @rachitnigam who has stated before that he thinks that YXI JSON generation should be a separate, non-compiler tool. I don't have a strong opinion about this, TBH! Both styles seem fine to me. (The big win here, of course, is that the AXI interface generation should be in a separate tool, which seems like an extremely worthy goal. And that goal state is enabled by YXI, wherever it goes.) |
Thanks @nathanielnrn !! So I figured out what I got tripped with in my initial attempts to use the When you run
But somehow if you write the output of
I'll dig into this a bit more because I'm curious what's going on, but I think this is more of a issue with the Verilog/FIRRTL backend's validation mechanism rather than |
I believe what's going on here is that running Try something like this:
(Note the addition of |
Ohhh gotcha! That worked, thanks a lot @sampsyo :) |
This is a tracking issue for an effort to switch Calyx's testbenching.
Background
Currently, all Calyx-compiled Verilog programs use the same standalone testbench. The downside of this setup is that Calyx's Verilog backend needs to generate code for setting up memories (
readmemh
/writememh
/etc), and other potential routes of obtaining Verilog (like FIRRTL) may not be able to do this. (We also want to separate out the memory initialization to the testbench, since the design itself should be independent of memory loading/writing) As part of the FIRRTL backend effort, we've created a rig that makes a custom testbench for each Calyx program. fud2 uses this custom testbench rig whenever the FIRRTL backend is involved, but it'll be great if we can make a Calyx-wide switch to using a custom testbench!Issues and TODOs
ref
cells interfere with static promotion #1956)ref
cells are not kept aftercompile_invoke
pass #1993)external-to-ref
pass instead of ased
in fud2.Once the above is done, we should have a larger switch to always using the custom testbench.
The text was updated successfully, but these errors were encountered: