FABulous.fabric_generator.gds_generator.helper

Helper utilities for GDS generation: die area rounding and pitch parsing.

This module exposes utilities used by the GDS generator flows.

Functions

get_layer_info(config)[source]
Parameters:

config (librelane.config.config.Config)

Return type:

dict[str, dict[str, tuple[Decimal, Decimal]]]

Read the FP_TRACKS_INFO file and return layer information.

Returns a dictionary mapping layer names to their cardinal directions and corresponding (offset, pitch) tuples.

get_pitch(config)[source]
Parameters:

config (librelane.config.config.Config)

Return type:

tuple[Decimal, Decimal]

Read the FP_TRACKS_INFO file and return min pitches for X and Y.

Returns a tuple (x_pitch, y_pitch) where x_pitch is the minimum pitch along X-axis (FP_IO_VLAYER X direction) and y_pitch is minimum pitch along Y-axis (FP_IO_HLAYER Y direction). The cardinal field in FP_TRACKS_INFO is expected to be ‘X’ or ‘Y’ (case- insensitive).

get_routing_obstructions(config)[source]
Parameters:

config (librelane.config.config.Config)

Return type:

list[tuple[int, int, int, int]]

Get the routing obstructions from the config.

Returns a list of tuples (x1, y1, x2, y2) representing the obstructions in the routing area.

round_die_area(config)[source]
Parameters:

config (librelane.config.config.Config)

Return type:

librelane.config.config.Config

Round the DIE_AREA to multiples of the minimum pitch.

This reads the minimum pitch from FP_TRACKS_INFO and updates the config DIE_AREA to start at (0,0) with width/height rounded up to the next multiple of that pitch.

round_up_decimal(value, pitch)[source]
Parameters:
Return type:

Decimal

Round up value to the next multiple of pitch.