-
Notifications
You must be signed in to change notification settings - Fork 781
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
[spi_device] Check whether clock inverter can be removed #13437
Comments
i'm not sure this is worth doing now, unless we find major issues related to this. |
Just to clarify a bit, behavioral logic on clock signals can be a source of greater skew, uncertainty, and routing congestion in FPGAs (due to going in and out of the fabric, instead of using the dedicated resources). At these low speeds and by itself, that one inverter is probably not a major problem. If we wanted to go at full speed on the FPGA, then it might be an obstacle. The biggest source of skew was actually the use of a global clock buffer after the inverter. This created an inherent imbalance of multiple nanoseconds between clk_spi_out and clk_spi_in, leading to hold time problems. |
that sounds good. Thanks for clarifying Alex. @weicaiyang |
This PR copies the context from PR lowRISC#13417. The PR lowRISC#13437 has some merging conflict. Signed-off-by: Cindy Chen <[email protected]>
This PR copies the context from PR #13417. The PR #13437 has some merging conflict. Signed-off-by: Cindy Chen <[email protected]>
Triaged for |
|
As detailed in @tjaychen's slide deck here, inverters on the clock network can cause significant skew, which in turn can result in very long build times or even infeasible configurations. Ideally, we would want to use negedge flops instead of inverting the clock explicitly.
@eunchan can you check whether that would be feasible in case of
spi_dev
?CC @tjaychen @a-will
The text was updated successfully, but these errors were encountered: