# Coriolis Core (CRLCore) Documentation

# Coriolis Core (CRL) Documentation

Public Types | Public Member Functions | Static Public Member Functions | List of all members
CRL::AllianceFramework Class Reference

A Framework to work with Alliance formats. More...

Inherits Hurricane::DBo.

## Public Types

enum | InstancesCountFlags { Recursive = (1<<0), IgnoreFeeds = (1<<1) }
enum | LibraryFlags { CreateLibrary = (1<<0) , HasCatalog = (1<<2) }

## Public Member Functions

string | getPrint () const
bool | isPOWER (const string &name)
bool | isGROUND (const string &name)
bool | isCLOCK (const string &name)
bool | isBLOCKAGE (const string &name)
bool | isPad (const string &name)
Environment * | getEnvironment ()
Catalog * | getCatalog ()
const Name & | getParentLibraryName () const
Library * | getParentLibrary ()
Library * | getLibrary (unsigned int index)
AllianceLibrary * | getAllianceLibrary (unsigned int index)
AllianceLibrary * | getAllianceLibrary (Library *)
AllianceLibrary * | createLibrary (const string &path, unsigned int flags, string libName="")
void | saveLibrary (Library *)
void | saveLibrary (AllianceLibrary *)
RoutingGauge * | getRoutingGauge (const Name &name="")
const Name | getDefaultCGPinLayerName () const
void | addRoutingGauge (RoutingGauge *)
void | addCellGauge (CellGauge *)
Cell * | getCell (const string &name, unsigned int mode, unsigned int depth=(unsigned int) -1)
Cell * | createCell (const string &name, AllianceLibrary *library=NULL)
void | saveCell (Cell *, unsigned int mode)
unsigned int | loadLibraryCells (Library *)
unsigned int | loadLibraryCells (const Name &)

## Static Public Member Functions

static AllianceFramework * | create (unsigned long flags=NoFlags)
static AllianceFramework * | get ()
static size_t | getInstancesCount (Cell *, unsigned int flags)

## Detailed Description

A Framework to work with Alliance formats.

The AllianceFramework is also registered as Hurricane::Property on the Hurricane::DataBase.

## Member Enumeration Documentation

## ◆ InstancesCountFlags

enum CRL::AllianceFramework::InstancesCountFlags

Flags to control the way AllianceFramework::getInstancesCount() work.

Enumerator
Recursive | Account the instances down to the leaf cells.
IgnoreFeeds | Don't count feed cells.

## ◆ LibraryFlags

enum CRL::AllianceFramework::LibraryFlags

Flags to control Library creation.

Enumerator
CreateLibrary | Ask to create a library if it doesn't exists.
HasCatalog | This flag is set if the CATALOG file metadata is present in the library directory.

## Member Function Documentation

## ◆ create()

AllianceFramework * CRL::AllianceFramework::create | ( | unsigned long | flags = `NoFlags` | ) |

static

Returns: The AllianceFramework singleton. This function has no effect if the singleton has already been created. It is indeed an alias over AllianceFramework::get().

## ◆ get()

void CRL::AllianceFramework::get | ( |  | ) |

static

Returns: the singleton, create it if need be.

## ◆ getPrint()

string CRL::AllianceFramework::getPrint | ( |  | ) | const

Returns: A nicely formatted string displaying the configuration of the AllianceFramework, for ttys.

## ◆ isPOWER()

bool CRL::AllianceFramework::isPOWER | ( | const string & | name | ) |

inline

Returns: true if `name` is recognized as a power net name.

## ◆ isGROUND()

bool CRL::AllianceFramework::isGROUND | ( | const string & | name | ) |

inline

Returns: true if `name` is recognized as a ground net name.

## ◆ isCLOCK()

bool CRL::AllianceFramework::isCLOCK | ( | const string & | name | ) |

inline

Returns: true if `name` is recognized as a clock net name.

## ◆ isBLOCKAGE()

bool CRL::AllianceFramework::isBLOCKAGE | ( | const string & | name | ) |

inline

Returns: true if `name` is recognized as a blockage net name.

## ◆ isPad()

bool CRL::AllianceFramework::isPad | ( | const string & | name | ) |

inline

Returns: true if `name` is recognized as a pad cell name.

## ◆ getEnvironment()

Environment * CRL::AllianceFramework::getEnvironment | ( |  | ) |

inline

Returns: the Environement.

## ◆ getCatalog()

Catalog * CRL::AllianceFramework::getCatalog | ( |  | ) |

inline

Returns: the composite catalog build from all the library metadatas.

## ◆ getParentLibraryName()

const Name & CRL::AllianceFramework::getParentLibraryName | ( |  | ) | const

inline

Returns: the name of the framework parent library, actually hard coded to "RootLibrary".

## ◆ getParentLibrary()

Library * CRL::AllianceFramework::getParentLibrary | ( |  | ) |

inline

Returns: the library under which the Alliance ones are rooted.

## ◆ getLibrary()

Library * CRL::AllianceFramework::getLibrary | ( | unsigned int | index | ) |

Returns: the Hurricane::Library at `index` in the search path.

## ◆ getAllianceLibrary() [1/2]

AllianceLibrary * CRL::AllianceFramework::getAllianceLibrary | ( | unsigned int | index | ) |

Returns: the AllianceLibrary at `index` in the search path.

## ◆ getAllianceLibrary() [2/2]

AllianceLibrary * CRL::AllianceFramework::getAllianceLibrary | ( | Library * | library | ) |

Returns: the AllianceLibrary which is associated to the Hurricane::Library `library`.

## ◆ createLibrary()

AllianceLibrary * CRL::AllianceFramework::createLibrary | ( | const string & | path,
|  | unsigned int | flags,
|  | string | libName = `""`
| ) |  |

Parameters

  path | path to the library directory.
  flags | control the creation behavior.
  libName | the name of the library. Returns: the created Alliance library.

Create a new AllianceLibrary. If the library is not already in the search it's prepended, otherwise the one already in place is used. If the library is in load by lib mode, the library parser is called and all the Cells are loaded.

## ◆ saveLibrary() [1/2]

void CRL::AllianceFramework::saveLibrary | ( | Library * | library | ) |

Returns: save to disk all Cells of that library.

## ◆ saveLibrary() [2/2]

void CRL::AllianceFramework::saveLibrary | ( | AllianceLibrary * | library | ) |

Returns: save to disk all Cells of that library.

## ◆ getRoutingGauge()

CellGauge * CRL::AllianceFramework::getRoutingGauge | ( | const Name & | name = `""` | ) |

Returns: get the RoutingGauge `name`. If `name` is empty, the default one.

Returns: get the CellGauge `name`. If `name` is empty, the default one.

## ◆ getDefaultCGPinLayerName()

const Name CRL::AllianceFramework::getDefaultCGPinLayerName | ( |  | ) | const

inline

Returns: argh. Forget for what it is.

## ◆ addRoutingGauge()

void CRL::AllianceFramework::addRoutingGauge | ( | RoutingGauge * | gauge | ) |

Returns: Add a new RoutingGauge. The last added becomes the default one.

## ◆ addCellGauge()

void CRL::AllianceFramework::addCellGauge | ( | CellGauge * | gauge | ) |

Returns: Add a new CellGauge. The last added becomes the default one.

## ◆ getCell()

Cell * CRL::AllianceFramework::getCell | ( | const string & | name,
|  | unsigned int | mode,
|  | unsigned int | depth = `(unsigned int)-1`
| ) |  |

Parameters

  name | the name of the Cell.
  mode | control the loader behavior.
  depth | the number of hierarchical levels under this cell. Returns: the requested Cell.

Find the first cell that match in the library search path, then call the parsers to load the requested views. If the cell is already in memory, it is directly returned. Thus a Cell never gets loaded twice from disk.

## ◆ createCell()

Cell * CRL::AllianceFramework::createCell | ( | const string & | name,
|  | AllianceLibrary * | library = `NULL`
| ) |  |

Parameters

  name | the name of the cell.
  library | an Alliance library. Returns: the newly created Cell.

Create a new Cell named `name` in the AllianceLibrary `library`. If `library` is `NULL`, uses the working library. Checks are performed to ensure that in a given library no two cells have the same name.

## ◆ saveCell()

void CRL::AllianceFramework::saveCell | ( | Cell * | cell,
|  | unsigned int | mode
| ) |  |

Save on disk the requested Cell (in the revelant library directory).

## ◆ loadLibraryCells() [1/2]

unsigned int CRL::AllianceFramework::loadLibraryCells | ( | Library * | library | ) |

Returns: the number of loaded cell. Load the whole library.

## ◆ loadLibraryCells() [2/2]

unsigned int CRL::AllianceFramework::loadLibraryCells | ( | const Name & |  | ) |

Returns: the number of loaded cell. Load the whole library.

## ◆ getInstancesCount()

size_t CRL::AllianceFramework::getInstancesCount | ( | Cell * | cell,
|  | unsigned int | flags
| ) |  |

static

Returns: the number of instances of that cell. Depending on `flags`, may be recursive or exclude feed cells.

The documentation for this class was generated from the following files:

- AllianceFramework.h
- AllianceFramework.dox