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)
 
EnvironmentgetEnvironment ()
 
CataloggetCatalog ()
 
const NamegetParentLibraryName () const
 
LibrarygetParentLibrary ()
 
LibrarygetLibrary (unsigned int index)
 
AllianceLibrarygetAllianceLibrary (unsigned int index)
 
AllianceLibrarygetAllianceLibrary (Library *)
 
AllianceLibrarycreateLibrary (const string &path, unsigned int flags, string libName="")
 
void saveLibrary (Library *)
 
void saveLibrary (AllianceLibrary *)
 
RoutingGaugegetRoutingGauge (const Name &name="")
 
const Name getDefaultCGPinLayerName () const
 
void addRoutingGauge (RoutingGauge *)
 
void addCellGauge (CellGauge *)
 
CellgetCell (const string &name, unsigned int mode, unsigned int depth=(unsigned int) -1)
 
CellcreateCell (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 AllianceFrameworkcreate (unsigned long flags=NoFlags)
 
static AllianceFrameworkget ()
 
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

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

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
pathpath to the library directory.
flagscontrol the creation behavior.
libNamethe 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
namethe name of the Cell.
modecontrol the loader behavior.
depththe 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
namethe name of the cell.
libraryan 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:


Generated by doxygen 1.8.14 on Sun Nov 21 2021 Return to top of page
Coriolis Core (CRL) Copyright © 2008-2020 Sorbonne Universite, All rights reserved