!Target

The !Target tag declares a target within a block’s address map, this must refer to an existing boundary IO port on the block which handles the outbound bus traffic.

!Targets have properties of offset and aperture, which define the absolute address window that each outbound port can be accessed through. Remember to take into account the masking and offset applied to the inbound address by the !Initiator tag.

You can also constrain an !Target so that it can only be accessed by certain (!Initiators) by specifying a list of !Point objects which refer to other boundary IO ports that have an associated !Initiator tag.

Warning

You can only make boundary IO ports on the block an !Initiator or a !Target, ports on child blocks cannot be promoted. This is because bus distribution components need an implementation and therefore are assumed to be leaf nodes.

Usage

- !Mod
  name : my_distributor
  ports:
  - !HisRef [inbound_a, axi4, "Inbound from CPU", 1]
  - !HisRef [inbound_b, axi4, "Inbound from NoC", 1]
  - !HisRef [outbounds, axi4, "Outbound ports",   3]
  addressmap:
  ...
  - !Target
    offset  : 0
    aperture: 0x100
    port    :
    - !Point [outbounds, 0]
  - !Target
    offset   : 0x100
    aperture : 0x200
    port     :
    - !Point [outbounds, 1]
    constrain: # Only allow 'inbound_a' to access this target
    - !Point [inbound_a, 0]
  ...
class blade.schema.ph_target.Target(port, offset=0, aperture=4294967295, constrain=None)

Represents a target port within the address map

__init__(port, offset=0, aperture=4294967295, constrain=None)

Initialisation for the !Target tag.

Parameters
  • port – !Point tag referring to the exact port and index to associate

  • offset – Base address of the window at which this target can be accessed

  • aperture – Size of the window through which this target can be accessed

  • constrain – List of !Point tags referring to legal !Initiator ports - if omitted then all !Initiators can access this !Target

validate()

Check that this tag agrees with our YAML schema