prga.passes.vpr.delegate module

class prga.passes.vpr.delegate.FASMDelegate

Bases: prga.util.Object

FASM delegate used for FASM metadata generation.

classmethod _bitmap(bitmap, allow_alternative=False)
classmethod _value(value, breakdown=False)
fasm_features_for_interblock_switch(source, sink, hierarchy=None)

Get the “fasm_features” string for the connection from source to sink.

Parameters:
  • source – Source net
  • sink – Sink net
  • hierarchy (AbstractInstance) – Hierarchy of src and sink in the routing box
Returns:

“fasm_features” values

Return type:

Sequence [str ]

fasm_features_for_intrablock_module(module, hierarchy=None)

Get the features for module in intra-block hierarchy.

Parameters:
Returns:

“fasm_features” values

Return type:

Sequence [str ]

Notes

This method is called ONLY ONCE for multi-“num_pb” instances.

fasm_mux_for_intrablock_switch(source, sink, hierarchy=None)

Get the “fasm_mux” string for the connection from source to sink.

Parameters:
  • source – Source net
  • sink – Sink net
  • hierarchy (AbstractInstance) – Hierarchy of src and sink in the block.
Returns:

“fasm_mux” values

Return type:

Sequence [str ]

fasm_params_for_primitive(instance=None)

Get the “fasm_params” strings for hierarchical primitive instance.

Parameters:instance (AbstractInstance) – Hierarchical instance in the logic/io block
Returns:“fasm_param” feature mapping for the primitive instance
Return type:Mapping [str, str ]

Notes

This method is called ONLY ONCE for multi-“num_pb” instances.

fasm_prefix_for_intrablock_module(module, hierarchy=None)

Get the prefix for module in intra-block hierarchy.

Parameters:
Returns:

“fasm_prefix” value

Return type:

str

Notes

This method is called for EACH multi-“num_pb” instances.

fasm_prefix_for_tile(instance=None)

Get the prefix for tile instance.

Parameters:instance (AbstractInstance) –
Returns:“fasm_prefix” values
Return type:Sequence [str ]
reset()

Reset the delegate.

class prga.passes.vpr.delegate.VPRScalableDelegate(aspect_ratio, *, device=None)

Bases: prga.util.Object

Delegate for generating a scalable VPR architecture XML.

Parameters:aspect_ratio (float) – Aspect ratio of the fabric
Keyword Arguments:
 device (Mapping) – Overwrite the auto-generated dummy device tag in the output VPR specs
_rule_args = {'col': {'incry': False, 'repeatx': False, 'startx': True, 'starty': False}, 'corners': {}, 'fill': {}, 'perimeter': {}, 'region': {'endx': False, 'endy': False, 'incrx': False, 'incry': False, 'repeatx': False, 'repeaty': False, 'startx': False, 'starty': False}, 'row': {'incrx': False, 'repeaty': False, 'startx': False, 'starty': True}, 'single': {'x': True, 'y': True}}
active_tiles
add_layout_rule(rule, priority, tile, **kwargs)

Add a layout rule.

Parameters:
  • rule (str) – Grid Location Tag type in VPR specs.
  • priority (int) – Priority attribute of the rule.
  • tile (Module) – The tile for the rule. Use None to explicitly add rules for empty tiles.
Keyword Arguments:
 

**kwargs – Refer to the attributes requirement for each type of rule under the Grid Location Tag section in VPR’s documentation

aspect_ratio
device
layout_rules