-
Notifications
You must be signed in to change notification settings - Fork 8
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
Pipelining #64
Comments
Page 208 of the manual says that when Vivado can't figure the value of a dynamic iterator, it assumes that all reads depend on write and vice-versa. In this example:
Vivado will not respect a Since we are already very conservative with pipelining and don't allow bank conflicts, we should aggressively use this pragma. |
While thinking about an implementation strategy, I came across this discussion This comment in the thread is slightly concerning to me:
This would mean that some new syntax of the form:
might not preserve the semantics we claim it has (where the inner loops has an initiation interval of A higher level point is we need to clarify the semantics of pipelining in nested loops. |
The occurrence pragma also seems important for pipelining things effectively. Not sure if there is a clean semantics for those. |
Without a specific proposal, this issue is to remind us that we will need some manner of pipelining annotation for loops. It's likely we can use a desugaring strategy similar to the new one for unrolling as described in #58, which takes a source loop like this:
To:
Where a pipelined version of the original loop would look something like this, where the "duplicated" commands get offset according to the initiation interval:
The text was updated successfully, but these errors were encountered: