!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
masterit will predominantly carry data from an initiator !Mod with the parent port declared as amaster, to the target !Mod with the parent port declared as aslaveAs a
slaveit will predominantly carry data from a target !Mod with the parent port declared as aslave, to an initiator !Mod with the parent port declared as amaster.
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
masterit is an initiator port, one that will predominantly drive the signal components within the interconnect.As a
slaveit 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
-