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
The current scheduling implementation applies an IO delay to the recv(chInternal) (also the send), but that scheduling option should really only be for external channels.
Current best alternative workaround (limit 100 words)
Disable FIFO configs with bypass+no-register_pop_outputs. This impacts throughput and potentially deadlock behavior.
Your view of the "best case XLS enhancement" (limit 100 words)
It's not difficult to not add the IO delay to internal channels, but depending on the FIFO config (in particular, is bypass enabled and it pop output flopping disabled?) you may need the delay on recv(chInternal) to be constrained by the delay on the send. However, because they are in different pipelines, you need to say something like startTime(recv(chInternal)) = stageVar + (startTime(send(chInternal)) % clock_period_ps). Ideally we'd schedule all procs at once with constraints that allows the scheduler to decide if it's better to increase flop count in one proc to reduce flops in the other.
The text was updated successfully, but these errors were encountered:
What's hard to do? (limit 100 words)
Consider a proc
A
with the following schedule:and a proc
B
that receives the result of procA
The current scheduling implementation applies an IO delay to the
recv(chInternal)
(also thesend
), but that scheduling option should really only be for external channels.Current best alternative workaround (limit 100 words)
Disable FIFO configs with bypass+no-register_pop_outputs. This impacts throughput and potentially deadlock behavior.
Your view of the "best case XLS enhancement" (limit 100 words)
It's not difficult to not add the IO delay to internal channels, but depending on the FIFO config (in particular, is bypass enabled and it pop output flopping disabled?) you may need the delay on
recv(chInternal)
to be constrained by the delay on the send. However, because they are in different pipelines, you need to say something likestartTime(recv(chInternal)) = stageVar + (startTime(send(chInternal)) % clock_period_ps)
. Ideally we'd schedule all procs at once with constraints that allows the scheduler to decide if it's better to increase flop count in one proc to reduce flops in the other.The text was updated successfully, but these errors were encountered: