You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Thanks for opening this! And yeah, I think you're right that there is something to be addressed there. The silly hack is to of course wrap the PositAdd module in a wrapper module and rename the ports for that module to be out.
A more natural solution might be to extend the import definitions to allow for named ports:
This information would then get passed to the backend to allow for this integration. Another limitation of the current approach is that we cannot encode the timing information of PositAdd which means Calyx's optimizations around static scheduling are disable.
For example, because we know that std_fp_mult takes exactly four cycles using the @interval, we can optimize the control program to be static and lower the latency. This kind of information is hard to specify in import definitions today.
The better, longer-term solution might be to support proper modules in Dahlia so that we can specify these definitions once and use them in various programs.
For my Posit bindings I modified Dahila's source, nonetheless this was another idea I found very interesting
Interop with RTL
Dahlia has an elegant interop with RTL via Calyx.
Suppose we have a SV module like this
by creating Calyx binding
I can use this in Dahlia like so
The generated Calyx IR.
Limitation
It seems to expect that the RTL has a port called
out
. I think fixing this limitation can open up a lot of interesting possibilitiesThe text was updated successfully, but these errors were encountered: