Introduction

The CPU interface logic layer provides an abstraction between the application-specific bus protocol and the internal register file logic. When exporting a design, you can select from a variety of popular CPU interface protocols. These are described in more detail in the pages that follow.

Bus Width

The CPU interface bus width is automatically determined from the contents of the design being exported. The bus width is equal to the widest accesswidth encountered in the deisgn.

Addressing

The regblock exporter will always generate its address decoding logic using local address offsets. The absolute address offset of your device shall be handled by your system interconnect, and present addresses to the regblock that only include the local offset.

For example, consider a fictional AXI4-Lite device that:

  • Consumes 4 kB of address space (0x000-0xFFF).

  • The device is instantiated in your system at global address range 0x30_0000 - 0x50_0FFF.

  • After decoding transactions destined to the device, the system interconnect shall ensure that AxADDR values are presented to the device as relative addresses - within the range of 0x000-0xFFF.

  • If care is taken to align the global address offset to the size of the device, creating a relative address is as simple as pruning down address bits.

By default, the bit-width of the address bus will be the minimum size to span the contents of the register block. If needed, the address width can be overridden to a larger range.