DFAddressMapConstraint¶
DFAddressMapConstraint specifies an access constraint between a specific initiator and a specific target. This gives the flexibility required to describe an incomplete cross-bar architecture (i.e. where certain traffic pathways through the address map are banned).
A DFAddressMap can contain as many constraints as there are unique DFAddressMapInitiator-DFAddressMapTarget pairings. Constraints are optional - if no constraints are configured for an initiator then all un-constrained targets are accessible, likewise if no constraints are configured for a target all un-constrained initiators can access it.
As with every tag, DFAddressMapConstraint inherits from DFBase, so has support for all of the core attributes (id, description, and attributes).
{
"id": "my_constraint",
"description": "Free-form description",
"attributes": { },
"initiator": {
"block": "my_root.my_sub.my_block.my_noc",
"port": "pcie_i",
"index": 0
},
"target": {
"block": "my_root.my_sub.my_block.my_noc",
"port": "ram_t",
"index": 2
}
}
| Property | Usage |
|---|---|
| initiator | Details which port on the DFAddressMap's block acts as the initiator |
| initiator.block | The hierarchical path to the port's parent block |
| initiator.port | The name of the port acting as the initiator |
| initiator.index | Which signal index within the port acts as the initiator |
| target | Details which port on the DFAddressMap's block acts as the target |
| target.block | The hierarchical path to the port's parent block |
| target.port | The name of the port acting as the target |
| target.index | Which signal index within the port acts as the target |
Note
Take note that the constraint refers to the underlying DFPorts of the initiator and target, rather than referring to the DFAddressMapInitiator and DFAddressMapTarget instances - but it will not implicitly them!
Constraints should always be the last node types processed when reloading a DFAddressMap, so that all required initiators and targets exist.
Python API¶
-
class
designformat.address_map.DFAddressMapConstraint(initiator=None, target=None)¶ DesignFormat description of a constraint in the address map, limiting the viable targets for a specific initiator.
-
__init__(initiator=None, target=None)¶ Constructor for an address map constraint
- Parameters
initiator – The initiator for the constraint
target – The target for the constraint
-
dumpObject(project)¶ Serialise constraint to a plain JSON object.
- Parameters
project – The project definition, used for calculating references
-
loadObject(obj, root, map)¶ Reload a serialised constraint
- Parameters
obj – Description of this node
root – Root object in the tree
types – Map from class name to class definition
map – Reference to the parent address map
-
Javascript API¶
-
class
DFAddressMapConstraint(initiator, target)¶ DesignFormat description of a constraint in the address map, limiting the viable targets for a specific initiator.
Constructor for an address map constraint
- Arguments
initiator (DFAddressMapInitiator) – The initiator for the constraint
target (DFAddressMapTarget) – The target for the constraint
-
DFAddressMapConstraint.dumpObject(project)¶ Serialise constraint to a plain JSON object.
- Arguments
project (DFProject) – The project definition, used for calculating references
-
DFAddressMapConstraint.loadObject(obj, root, types, map)¶ Reload a serialised constraint
- Arguments
obj (object) – Description of this node
root (DFBase) – Root object in the tree
types (object) – Map from class name to class definition
map (DFAddressMap) – Reference to the parent address map