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

ConfigBitMode(*args, **kwds)   :module:

Inheritance: → ConfigBitMode

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

Direction(*args, **kwds)   :module:

Inheritance: → Direction

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

FABulousAttribute   :module:

Inheritance: → FABulousAttribute

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

HDLType   :module:

Inheritance: → HDLType

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

IO(*args, **kwds)   :module:

Inheritance: → IO

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

MultiplexerStyle(*args, **kwds)   :module:

Inheritance: → MultiplexerStyle

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

PinSortMode   :module:

Inheritance: → PinSortMode

Enumeration for pin sorting modes.

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

Side

Side   :module:

Inheritance: → Side

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.

TileSize

TileSize   :module:

Inheritance: → TileSize

Named tuple representing the size of a tile.