chipsalliance / chipsalliance/VeeRwolf
axi/wb bus cycle times
- Dominant language
- Verilog
- Stars
- 343
- Forks
- 75
- PR merge metrics
- No merged PRs in 30d
Description
I have your design running in nexys A7 with an EL2 core.
When I do a sequence of writes to an I/O port, such as GPIO, and my code is running in ICCM, the writes are lost, except for the last one. I can solve the problem by inserting some delay in between the I/O writes.
It appears that with optimized code, the writes through Axi / Axi Mux / WB occur slower than the processor can write the data.
Is this the way it is supposed to work? Is there some sort of mechanism for the AXI writes to delay the processor core while each one is completing?
I guess I can write code to wait on I/O writes to complete before I send another one. Am I required to do that?
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by tracing the AXI / AXI Mux / Wishbone path used by EL2 when issuing consecutive GPIO writes from ICCM. Reproduce the sequence on a Nexys A7 and determine whether each write provides completion back to the processor. Done means the expected write ordering and required waiting behavior are established and documented or corrected.
Written by the indexing model from the issue text.
Assessment
- Domain
- embedded-iot
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100