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
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