FABulous.geometry_generator.fabric_geometry#

Classes for generating and managing the geometry of FPGA fabrics.

Classes#

class FabricGeometry(fabric, padding=8)[source]#

Fetch and hold geometric information about a fabric.

Objects of this class can be constructed by passing a Fabric object and optionally, padding.

Parameters:
fabric[source]#

The fabric object passed from the CSV definition files

Type:

Fabric

tileNames[source]#

Set of unique tileNames in the fabric

Type:

Set[str]

tileGeomMap[source]#

Map of the geometry of each tile by name

Type:

Dict[str, TileGeometry]

tileLocs[source]#

Locations of all tiles in the fabric

Type:

List[List[Location]]

padding[source]#

Padding used throughout the geometry, in multiples of the width between wires

Type:

int

width[source]#

Width of the fabric

Type:

int

height[source]#

Height of the fabric

Type:

int

Initialize a FabricGeometry instance.
Creates the fabric geometry by processing the given fabric definition
and automatically generating the complete geometric layout.

Methods:

generateGeometry()[source]#

Generate the geometric information from the given fabric object.

The border attribute is set for tiles that are located at a border of the tile. This is done to ensure no stair-like wires being generated for these tiles. The distinction left/right and top/bottom is made, to prevent generation of horizontal and vertical stair-like wires respectively.

Return type:

None

saveToCSV(fileName)[source]#

Save geometric information of the given fabric for the graphical frontend.

Parameters:

fileName (str) – The name of the csv file

Return type:

None