Skip to content
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

pipistrello sometimes fails timing #341

Closed
jordens opened this issue Mar 20, 2016 · 3 comments
Closed

pipistrello sometimes fails timing #341

jordens opened this issue Mar 20, 2016 · 3 comments

Comments

@jordens
Copy link
Member

jordens commented Mar 20, 2016

Timing failures are intermittent. Potentially triggered by congestion and large filling factor. Failure is usually in the sys_clk domain, in the CPU (IIRC).

It looks like par starts with a particular unlucky guess and then can't find its way out. Overriding the libc rng seed with LD_PRELOAD does not help. Same code, same options can lead to success and failure. Sometimes ten builds in a row succeed followed by five builds failing.

Do we require this being fixed for the release?

@sbourdeauducq
Copy link
Member

Turns out there are still some places in the Python part of the gateware that are still affected by this annoying Python iteration randomization, and the generated Verilog changes from one run to the next, which may in turn affect PAR. Does setting PYTHONHASHSEED help, as a workaround?

@jordens
Copy link
Member Author

jordens commented Mar 21, 2016

With -R it seems to fail timing consistently now.

@mithro
Copy link

mithro commented Mar 21, 2016

We have found similar problems when using ISE - See timvideos/HDMI2USB-litex-firmware#209 and timvideos/HDMI2USB-litex-firmware#72

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants