defineΒΆ

Fabric definition enumerations and constants.

This module defines various enumerations used throughout FABulous for fabric definition, including I/O types, directions, sides, and configuration modes.

ClassesΒΆ

ConfigBitMode

Enumeration for configuration bit access modes.

Direction

Enumeration for wire and port directions in the fabric.

FABulousAttribute

Enumeration for FABulous attributes in the HDL.

HDLType

Enumeration for HDLs supported by FABulous.

IO

Enumeration for I/O port directions.

MultiplexerStyle

Enumeration for multiplexer implementation styles.

PinSortMode

Enumeration for pin sorting modes.

Side

Enumeration for tile sides and placement.

TileSize

Named tuple representing the size of a tile.

Module ContentsΒΆ

ConfigBitModeΒΆ

class ConfigBitMode(*args, **kwds)[source]ΒΆ

Bases: Enum

Enumeration for configuration bit access modes.

Defines how configuration bits are accessed and programmed:

  • FRAME_BASED: Frame-based configuration

  • FLIPFLOP_CHAIN: Flip-flop chain configuration

DirectionΒΆ

class Direction(*args, **kwds)[source]ΒΆ

Bases: Enum

Enumeration for wire and port directions in the fabric.

Defines the directional flow of wires and ports:

  • NORTH: Northward direction

  • SOUTH: Southward direction

  • EAST: Eastward direction

  • WEST: Westward direction

  • JUMP: Local connections within a tile

FABulousAttributeΒΆ

class FABulousAttribute[source]ΒΆ

Bases: StrEnum

Enumeration for FABulous attributes in the HDL.

This enumeration includes the following values:

  • EXTERNAL: External attribute

  • SHARED_PORT: Shared port attribute

  • GLOBAL: Global attribute

  • USER_CLK: User clock attribute

  • CONFIG_BIT: Configuration bit attribute

Initialize self. See help(type(self)) for accurate signature.

HDLTypeΒΆ

class HDLType[source]ΒΆ

Bases: StrEnum

Enumeration for HDLs supported by FABulous.

This enumeration includes the following values:

  • VERILOG: Verilog HDL

  • VHDL: VHDL HDL

  • SYSTEM_VERILOG: SystemVerilog HDL

Initialize self. See help(type(self)) for accurate signature.

IOΒΆ

class IO(*args, **kwds)[source]ΒΆ

Bases: Enum

Enumeration for I/O port directions.

Defines the direction of ports in fabric components:

  • INPUT: Input port

  • OUTPUT: Output port

  • INOUT: Bidirectional port

  • NULL: No connection/unused port

MultiplexerStyleΒΆ

class MultiplexerStyle(*args, **kwds)[source]ΒΆ

Bases: Enum

Enumeration for multiplexer implementation styles.

Defines how multiplexers are implemented in the fabric:

  • CUSTOM: Custom multiplexer implementations which instantiate a

    custom multiplexer layout.

  • GENERIC: Generic/standard multiplexer implementations which uses behavioral

    modeling and will use standard cells in the physical implementation.

PinSortModeΒΆ

class PinSortMode[source]ΒΆ

Bases: StrEnum

Enumeration for pin sorting modes.

Initialize self. See help(type(self)) for accurate signature.

SideΒΆ

class Side[source]ΒΆ

Bases: StrEnum

Enumeration for tile sides and placement.

Defines the physical sides of tiles in the fabric:

  • NORTH: North side of tile

  • SOUTH: South side of tile

  • EAST: East side of tile

  • WEST: West side of tile

  • ANY: Any side (no specific placement)

Initialize self. See help(type(self)) for accurate signature.

PropertiesΒΆ

property opposite: Side[source]ΒΆ

Return the opposite side (e.g. NORTH β†’ SOUTH).

TileSizeΒΆ

class TileSize[source]ΒΆ

Bases: NamedTuple

Named tuple representing the size of a tile.