-
Notifications
You must be signed in to change notification settings - Fork 50
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
Add dyn_mems
as primitives
#2111
Conversation
dyn_mems
as primitivesdyn_mems
as primitives
dyn_mems
as primitivesdyn_mems
as primitives
#1151 is also related to this in case we want the compiler to decide the latency of the memories. |
Thanks, @nathanielnrn, and thanks to @rachitnigam for calling up that extremely-relevant prior discussion. I am not exactly sure how to proceed on the larger question here—clearly, there is some real design work to be done for variable-latency memories (and other components). But for my money, I think we should probably just add this brute-force route as reflected in this PR now so we can make progress with the AXI business? Any objections to that as a short-term plan, @rachitnigam? One reason to stick with this PR as it currently stands rather than making these
Is just so that we can actually execute programs as-is, without externalizing them. That is, even if it's impractical, it is nice to have a "shim" implementation of |
Seems fine to me! And yeah, I think the design of virtual operators is going to be important in the future so let's not rush it here. |
This adds
dyn_mems
which are likeseq_mems
but do not guarantee one-cycle read/write latencies. See #2105 for motivation.One thing that's occurred to me is
dyn_mem
seems mainly useful as a placeholder for various implementations/connections to external memories. As in, if we need the guaranteed 1-cycle latency given byseq_mem
we can rely on theseq_mem
implementation.The
SystemVerilog
dyn_mem
implementation is exactly the same as theseq_mem
implementation. So it seems that as a standalone primitivedyn_mem
lacks utility. It seems like we could only add a "wrapper" ofdyn_mem
as a primitive without any actual implementation behind it. Maybe this is a can of worms not worth opening right now, as I don't know how happy the compiler would be with the possibility of "empty primitives." I'd be happy to hear thoughts people have on this.Closes #2105