Interconnect Elaboration

Interconnections are described in BLADE using !His tags - these can contain multiple named components, each of which can either be primitive (!Port) or complex (!HisRef), in which case they instantiate another !His as a subcomponent.

For each !His definition, a DFInterconnect node will be created within the project. For each component:

  • !Ports will be converted to a simple DFInterconnectComponent with a fixed width. If an enumeration is present, then it will be attached to the component.

  • !HisRefs will be converted to a complex DFInterconnectComponent with a reference to the instantiated DFInterconnect.

Any values declared within the options array will be transferred to attributes of the DFInterconnect.

API

blade.elaborate.interconnect.build_interconnect(his, scope)

Evaluate a !His instance, resolving referred interconnect types and converting to a DFInterconnectType.

Parameters
  • his – The top-level !His to evaluate

  • scope – An ElaboratorScope object containing all documents included directly or indirectly by the top module.

blade.elaborate.interconnect.elaborate_interconnect(his, scope, max_depth=None, project=None)

Evaluate top-level !His and every interconnect type it references, returning a DFProject. The top-level !His will be a principal node, whilst referenced interconnects will be reference nodes.

Parameters
  • his – The top-level !His to evaluate

  • scope – The ElaboratorScope object containing all referenced documents

  • max_depth – Ignored at present, provided for compatibility (optional)

  • project – Project to append to, else a new one is created (optional)

Returns

Project containing the elaborated interconnect

Return type

DFProject