!HisRef

The !HisRef tag is used in two different scenarios:

  • For !His declarations this tag is used to add complex components to interconnect definitions, which reference other pre-defined !His.

  • For !Mod declarations this tag is used to declare the boundary ports using a specific, pre-defined !His.

When used as a ‘port’ within a !His declaration, just as with !Port declarations, the tag can either have a master or slave role:

  • As a master it will predominantly carry data from an initiator !Mod with the parent port declared as a master, to the target !Mod with the parent port declared as a slave

  • As a slave it will predominantly carry data from a target !Mod with the parent port declared as a slave, to an initiator !Mod with the parent port declared as a master.

When used as a ‘port’ on a !Mod the tag can also have master or slave roles but the meaning is slightly different:

  • As a master it is an initiator port, one that will predominantly drive the signal components within the interconnect.

  • As a slave it is a target port, one that predominantly receives the driven value of signal components within the interconnect.

When being used as a port, a number of options can influence the behaviour of BLADE’s elaboration engine:

Option Effect
AUTO_CLK Nominates the port as the default clock signal to be connected in the parent block, and distributed to any child nodes.
AUTO_RST Nominates the port as the default reset signal to be connected in the parent block, and distributed to any child nodes.

Usage

As a primitive tag type, a !HisRef can be declared using either mapping or sequence syntax - the sample example is shown below in both styles:

- !HisRef [my_ref, my_his, "Double instance", 2, Slave, "Longer description...", []]

- !HisRef
  name   : my_ref
  ref    : my_his
  sd     : Double instance
  count  : 2
  role   : master
  ld     : Longer description...
  options: []
class blade.schema.ph_his_ref.HisRef(name, ref, sd='', count=1, role='master', ld='', options=[])

Instantiates a pre-defined !His as a signal component or boundary port

__init__(name, ref, sd='', count=1, role='master', ld='', options=[])

Initialisation for the !HisRef YAML tag

Parameters
  • name – Name of the port

  • ref – The defined !His being instantiated

  • sd – Short description of the component - maximum 150 characters

  • count – Number of reptitions of this component

  • role – Role for this instance, either ‘master’ or ‘slave’

  • ld – Long description of the instantiation

  • options – List of options either in the form ‘KEY=VAL’ or just ‘KEY’ if a value is not required

validate()

Check that this tag agrees with our YAML schema