Synthesis timing loops (rarely only w/ Vivado so far) #237
JulianKemmerer
started this conversation in
General
Replies: 1 comment
-
Confirmed this does break the implemented hardware after synthesis - without the timing loop bitstream behaves as expected... |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Code like below, but only for Vivado synthesis seen so far (2019.2, tried a few syn strategy options, didnt help)...
Will result with synthesis warnings like
No other tools seem to find combinatorial loops (tried Quartus and yosys+nextpnr). Getting Vivado to report loops after syn completes reports no loops in the design - can't find those nets from the error messages.
Changing
float mults = (fx * fconst) * a;
tofloat mults = fx * (fconst * a);
makes it so Vivado no longer sees a timing loop.I have not ruled out that somehow this is in the HDL - maybe simulating more will help...
I have reason to believe this is a serious issue where needed functionality is being flagged as a loop and optimizing away incorrectly.
Best work around for now is as above - start commenting out / trimming down your design until you find the problem function and subtly rewrite it maintaining the original functionality.
I know - it's F'd.
Beta Was this translation helpful? Give feedback.
All reactions