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.

Creates the fabric geometry by processing the given fabric definition and automatically generating the complete geometric layout.

Parameters:
  • fabric (Fabric) – The fabric object from CSV definition files

  • padding (int, optional) – Padding used throughout the geometry, by default 8

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

Methods:

genNeighbourConstraints(queried)[source]

Generate neighbour constraints for a given tile geometry.

Parameters:

queried (TileGeometry) – The tile geometry to generate constraints for

Return type:

None

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

totalWireLines()[source]

Return the total amount of lines (segments) of wires of the fabrics routing.

Can, for instance, be used to initialize the size of datastructures in the frontend.

Return type:

int

Module Attributes

GENERATOR_VERSION[source]