-
Notifications
You must be signed in to change notification settings - Fork 85
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
Implement Wishbone Burst Support for Memory Controller #151
base: master
Are you sure you want to change the base?
Conversation
Is this really necessary? AFAIK SDRAM only cares about the average refresh rate and can tolerate considerable jitter. Did you check the datasheet or JEDEC standard? |
misoc/cores/minicon/core.py
Outdated
) | ||
fsm.act("INVALIDATE-READ", | ||
# Invalidate responses by deasserting ACK | ||
# The last legitimiate word was sent out by the end of BURST-READ |
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.
legitimate
The timer does not reset until a refresh is issued. If we have very long burst consistently (page size burst would take 1us), then the state machine may be issuing a refresh too late with the timer not being compensated. The frequency will be significantly off. What about we let the timer underflow back to reset, and simply have a flag that records the underflow. Trigger a refresh from Otherwise a pending refresh count with a suitable bit width should do. |
Yes, that would be the right way of doing this. I thought it was like that already but I may be mistaken. |
Not touched by burst reads. The original method saves 1 cycle.
Description
Burst access is handled as the following:
Memory controller issues refresh instruction if a burst may cause an un-timely refresh.No need to do this now.To support burst access, the wishbone arbiter shall not release
grant
to masters during a burst.