Skip to content

Wishbone access from initiator bus with data_width smaller than the one of the subordinate bus. #18

Open
@Fatsie

Description

@Fatsie

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:

  • extend Arbiter to support initiator buses with data_width smaller than the subordinate bus data_width. This would solve my request directly.
  • extend Decoder to support subordinate buses with data_width bigger than initiator bus. For my case this would be more indirect. I would then have an Arbiter on the two 8-bit CPU buses, then a decoder from the output 8-bit bus to a 32-bit data_width and then an Arbiter of that output with the 32-bit CPU bus.
    I still propose this solution as the feature may be more as decoding than arbitration.
  • do both; for my use case I would only use Arbiter so the Decoder implementation will not be tested by user code.
  • do it an a separate bridge class.

This issue can be assigned to me after it is clear what the preferred implementation is.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions