-
Notifications
You must be signed in to change notification settings - Fork 16
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
Faster Wishbone #505
Faster Wishbone #505
Conversation
test/peripherals/test_wishbone.py
Outdated
@@ -325,6 +352,7 @@ def mem_op_process(): | |||
yield from self.m.request.call(addr=addr, data=data, we=write, sel=sel) | |||
res = yield from self.m.result.call() | |||
if write: | |||
yield # workaround, memory state will change the next cycle! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
But this cause that we don't test if request in the first cycle after write
works properly.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The behavior of the request itself is already tested in TestWishboneMaster
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Updated the test to allow writes without delays, also added random latencies.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Apart from @lekcyjna123 comment for TestWishboneMemorySlave
, looks good to me
d64dcfc
to
b0d9757
Compare
There was an issue in receiving results from the Wishbone master: if there was latency at receive, requests could disappear. Fixed. |
This PR improves the performance of the Wishbone master. It's now possible to achieve full utilization of the Wishbone bus: 2 cycles per read and 1 cycle per (unregistered) write. IPC in benchmarks is improved by 12% without Fmax loss.
Truly,
Forwarder
is a magic component.