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

wb_async_reg: stb master unasserted pulse not registering #4

Open
rdolbeau opened this issue Jun 5, 2022 · 0 comments
Open

wb_async_reg: stb master unasserted pulse not registering #4

rdolbeau opened this issue Jun 5, 2022 · 0 comments

Comments

@rdolbeau
Copy link

rdolbeau commented Jun 5, 2022

Hello,

After working some more with wb_async_reg, I think I found a bug under some (extreme) circumstances.
If the master's clock is significantly faster than the slave's, then it's possible for the slave to miss the master's STB unasserted pulse, leading to a failure to recognize the next transaction.

At the end of a transaction, the slave will see the ack and properly unassert STB on its side, and properly tell the master that will eventually unassert STB on its side. However, if the master starts a new cycle quickly enough (re-asserting STB), the wbs_stb_sync1 register set from wbm_stb_i_reg using the slave clock might completely miss the unasserted STB from the master. The slave will therefore never see a rising edge on STB (wbs_cyc_o_sync2 is never unasserted), and the bus will hang.

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

No branches or pull requests

1 participant