FABulous_timing_model_interface

Define the FABulousTimingModelInterface class.

It provides an interface to compute and cache timing delays for pips in a FABulous fabric.

It uses the FABulousTileTimingModel to compute delays for individual tiles and caches the results for efficient retrieval.

Classes

FABulousTimingModelInterface

Interface for computing and caching timing delays in a FABulous fabric.

Module Contents

FABulousTimingModelInterface

class FABulousTimingModelInterface(config, fabric)[source]

Interface for computing and caching timing delays in a FABulous fabric.

Initialize the FABulousTimingModelInterface with the given configuration and fabric.

Allows for efficient retrieval of pip delays by caching previously computed results, and supports different timing models for different (super) tile types based on the configuration.

Parameters:
  • config (TimingModelConfig) – Configuration object for the timing model.

  • fabric (Fabric) – The FABulous fabric object.

Methods

pip_delay(tile_name, src_pip, dst_pip) float[source]

Get the delay for a given pip in the timing model.

If the delay for the specified pip was already computed before, return the cached value. Otherwise, compute the delay, cache it, and return it.

Parameters:
  • tile_name (str) – The name of the tile (with super tile type if applicable).

  • src_pip (str) – The source pip name.

  • dst_pip (str) – The destination pip name.

Returns:

The delay of the specified pip.

Raises:

ValueError – If the timing model for the specified tile is not found.