-
Notifications
You must be signed in to change notification settings - Fork 32
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
Wishbone access from initiator bus with data_width smaller than the one of the subordinate bus. #18
Comments
I think we should support this by implementing an up-converting bridge between two data widths. It would have the benefit of being reusable in other scenarios (e.g. a point-to-point connection between an initiator and its target). |
I agree with JF. |
OK, will implement it as a separate class. |
Should this be the responsibility of the same class? I'm leaning towards having separate ones (easier to test, less code pulled in if you only need one kind of conversion), but I'm open to hearing reasons why it should be handled in a single one. |
I was inspired by the Decoder and Arbiter class that are now already doing more than one feature:
Being very strict on DataConversion bus support seems not consistent to me.
And later:
If you would support a non-datawidth converting |
I agree with this assessemnt. Please go on with your original plan. |
As said in PR #21 I commit first version; maybe this can give some guidance on further discussion if also the initiator data width bigger than the subordinate one feature should be implemented in that class. |
I am now porting Retro-uC to BlackIce which has external SRAM with 16 bit data_width so it seems the implementation of data_width upconverting (16->32) will be done faster than expected. |
Some unsolicited notes that came to mind while looking for a similar solution:
|
I am working on my Retro_uC. In there I combine a 32-bit M68K and with two 8-bit CPUs (a MOS6502 and a Z80). I would like to have all three of them accessing the same memory map. I would like it that the M68K can fetch a 32-bit word in one bus cycle.
AFAICS, currently neither the Wishbone Arbiter or Decoder allows that the data_width of the initiator bus is smaller than the data_width of the subordinate bus(es) even if the granularity is the same.
I see different solutions to this problem:
I still propose this solution as the feature may be more as decoding than arbitration.
This issue can be assigned to me after it is clear what the preferred implementation is.
The text was updated successfully, but these errors were encountered: