abc-master
|
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h>
#include <math.h>
#include "misc/vec/vec.h"
Go to the source code of this file.
Data Structures | |
struct | SC_Pair_ |
struct | SC_SizePars_ |
struct | SC_BusPars_ |
struct | SC_WireLoad_ |
struct | SC_WireLoadSel_ |
struct | SC_TableTempl_ |
struct | SC_Surface_ |
struct | SC_Timing_ |
struct | SC_Timings_ |
struct | SC_Pin_ |
struct | SC_Cell_ |
struct | SC_Lib_ |
Macros | |
#define | ABC_SCL_CUR_VERSION 8 |
INCLUDES ///. More... | |
#define | SC_LibForEachCell(p, pCell, i) Vec_PtrForEachEntry( SC_Cell *, p->vCells, pCell, i ) |
#define | SC_LibForEachCellClass(p, pCell, i) Vec_PtrForEachEntry( SC_Cell *, p->vCellClasses, pCell, i ) |
#define | SC_LibForEachWireLoad(p, pWL, i) Vec_PtrForEachEntry( SC_WireLoad *, p->vWireLoads, pWL, i ) |
#define | SC_LibForEachWireLoadSel(p, pWLS, i) Vec_PtrForEachEntry( SC_WireLoadSel *, p->vWireLoadSels, pWLS, i ) |
#define | SC_LibForEachTempl(p, pTempl, i) Vec_PtrForEachEntry( SC_TableTempl *, p->vTempls, pTempl, i ) |
#define | SC_CellForEachPin(p, pPin, i) Vec_PtrForEachEntry( SC_Pin *, p->vPins, pPin, i ) |
#define | SC_CellForEachPinIn(p, pPin, i) Vec_PtrForEachEntryStop( SC_Pin *, p->vPins, pPin, i, p->n_inputs ) |
#define | SC_CellForEachPinOut(p, pPin, i) Vec_PtrForEachEntryStart( SC_Pin *, p->vPins, pPin, i, p->n_inputs ) |
#define | SC_RingForEachCell(pRing, pCell, i) for ( i = 0, pCell = pRing; i == 0 || pCell != pRing; pCell = pCell->pNext, i++ ) |
#define | SC_RingForEachCellRev(pRing, pCell, i) for ( i = 0, pCell = pRing; i == 0 || pCell != pRing; pCell = pCell->pPrev, i++ ) |
#define | SC_PinForEachRTiming(p, pRTime, i) Vec_PtrForEachEntry( SC_Timings *, p->vRTimings, pRTime, i ) |
Typedefs | |
typedef struct SC_Pair_ | SC_Pair |
typedef struct SC_SizePars_ | SC_SizePars |
typedef struct SC_BusPars_ | SC_BusPars |
typedef struct SC_WireLoad_ | SC_WireLoad |
STRUCTURE DEFINITIONS ///. More... | |
typedef struct SC_WireLoadSel_ | SC_WireLoadSel |
typedef struct SC_TableTempl_ | SC_TableTempl |
typedef struct SC_Surface_ | SC_Surface |
typedef struct SC_Timing_ | SC_Timing |
typedef struct SC_Timings_ | SC_Timings |
typedef struct SC_Pin_ | SC_Pin |
typedef struct SC_Cell_ | SC_Cell |
typedef struct SC_Lib_ | SC_Lib |
Enumerations | |
enum | SC_Dir { sc_dir_NULL, sc_dir_Input, sc_dir_Output, sc_dir_InOut, sc_dir_Internal } |
enum | SC_TSense { sc_ts_NULL, sc_ts_Pos, sc_ts_Neg, sc_ts_Non } |
#define ABC_SCL_CUR_VERSION 8 |
INCLUDES ///.
CFile****************************************************************
FileName [sclLib.h]
SystemName [ABC: Logic synthesis and verification system.]
PackageName [Standard-cell library representation.]
Synopsis [Simplified library representation for STA.]
Author [Alan Mishchenko, Niklas Een]
Affiliation [UC Berkeley]
Date [Ver. 1.0. Started - August 24, 2012.]
Revision [
]PARAMETERS ///
#define SC_CellForEachPin | ( | p, | |
pPin, | |||
i | |||
) | Vec_PtrForEachEntry( SC_Pin *, p->vPins, pPin, i ) |
#define SC_CellForEachPinIn | ( | p, | |
pPin, | |||
i | |||
) | Vec_PtrForEachEntryStop( SC_Pin *, p->vPins, pPin, i, p->n_inputs ) |
#define SC_CellForEachPinOut | ( | p, | |
pPin, | |||
i | |||
) | Vec_PtrForEachEntryStart( SC_Pin *, p->vPins, pPin, i, p->n_inputs ) |
#define SC_LibForEachCell | ( | p, | |
pCell, | |||
i | |||
) | Vec_PtrForEachEntry( SC_Cell *, p->vCells, pCell, i ) |
#define SC_LibForEachCellClass | ( | p, | |
pCell, | |||
i | |||
) | Vec_PtrForEachEntry( SC_Cell *, p->vCellClasses, pCell, i ) |
#define SC_LibForEachTempl | ( | p, | |
pTempl, | |||
i | |||
) | Vec_PtrForEachEntry( SC_TableTempl *, p->vTempls, pTempl, i ) |
#define SC_LibForEachWireLoad | ( | p, | |
pWL, | |||
i | |||
) | Vec_PtrForEachEntry( SC_WireLoad *, p->vWireLoads, pWL, i ) |
#define SC_LibForEachWireLoadSel | ( | p, | |
pWLS, | |||
i | |||
) | Vec_PtrForEachEntry( SC_WireLoadSel *, p->vWireLoadSels, pWLS, i ) |
#define SC_PinForEachRTiming | ( | p, | |
pRTime, | |||
i | |||
) | Vec_PtrForEachEntry( SC_Timings *, p->vRTimings, pRTime, i ) |
#define SC_RingForEachCell | ( | pRing, | |
pCell, | |||
i | |||
) | for ( i = 0, pCell = pRing; i == 0 || pCell != pRing; pCell = pCell->pNext, i++ ) |
#define SC_RingForEachCellRev | ( | pRing, | |
pCell, | |||
i | |||
) | for ( i = 0, pCell = pRing; i == 0 || pCell != pRing; pCell = pCell->pPrev, i++ ) |
typedef struct SC_BusPars_ SC_BusPars |
typedef struct SC_SizePars_ SC_SizePars |
typedef struct SC_Surface_ SC_Surface |
typedef struct SC_TableTempl_ SC_TableTempl |
typedef struct SC_Timing_ SC_Timing |
typedef struct SC_Timings_ SC_Timings |
typedef struct SC_WireLoad_ SC_WireLoad |
typedef struct SC_WireLoadSel_ SC_WireLoadSel |
enum SC_Dir |
Enumerator | |
---|---|
sc_dir_NULL | |
sc_dir_Input | |
sc_dir_Output | |
sc_dir_InOut | |
sc_dir_Internal |
Definition at line 45 of file sclLib.h.
enum SC_TSense |
Enumerator | |
---|---|
sc_ts_NULL | |
sc_ts_Pos | |
sc_ts_Neg | |
sc_ts_Non |
|
inlinestatic |
Definition at line 336 of file sclLib.h.
int Abc_SclCellFind | ( | SC_Lib * | p, |
char * | pName | ||
) |
Definition at line 79 of file sclLibUtil.c.
|
inlinestatic |
Definition at line 433 of file sclLib.h.
int Abc_SclClassCellNum | ( | SC_Cell * | pClass | ) |
Definition at line 84 of file sclLibUtil.c.
float Abc_SclComputeAverageSlew | ( | SC_Lib * | p | ) |
Function*************************************************************
Synopsis [Returns "average" slew.]
Description []
SideEffects []
SeeAlso []
Definition at line 317 of file sclLibUtil.c.
void Abc_SclConvertLeakageIntoArea | ( | SC_Lib * | p, |
float | A, | ||
float | B | ||
) |
Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
Definition at line 584 of file sclLibUtil.c.
void Abc_SclDumpGenlib | ( | char * | pFileName, |
SC_Lib * | p, | ||
float | Slew, | ||
float | Gain, | ||
int | nGatesMin | ||
) |
Definition at line 795 of file sclLibUtil.c.
SC_WireLoad* Abc_SclFetchWireLoadModel | ( | SC_Lib * | p, |
char * | pWLoadUsed | ||
) |
Function*************************************************************
Synopsis [Returns the wireload model for the given area.]
Description []
SideEffects []
SeeAlso []
Definition at line 230 of file sclLibUtil.c.
Function*************************************************************
Synopsis [Returns the largest inverter.]
Description []
SideEffects []
SeeAlso []
Definition at line 197 of file sclLibUtil.c.
Definition at line 208 of file sclLibUtil.c.
SC_WireLoad* Abc_SclFindWireLoadModel | ( | SC_Lib * | p, |
float | Area | ||
) |
Definition at line 247 of file sclLibUtil.c.
int Abc_SclHasDelayInfo | ( | void * | pScl | ) |
Function*************************************************************
Synopsis [Returns 1 if the library has delay info.]
Description []
SideEffects []
SeeAlso []
Definition at line 292 of file sclLibUtil.c.
void Abc_SclHashCells | ( | SC_Lib * | p | ) |
Definition at line 65 of file sclLibUtil.c.
void Abc_SclInstallGenlib | ( | void * | pScl, |
float | SlewInit, | ||
float | Gain, | ||
int | nGatesMin | ||
) |
Function*************************************************************
Synopsis [Install library.]
Description []
SideEffects []
SeeAlso []
Definition at line 844 of file sclLibUtil.c.
|
inlinestatic |
Definition at line 343 of file sclLib.h.
int Abc_SclLibClassNum | ( | SC_Lib * | pLib | ) |
Definition at line 93 of file sclLibUtil.c.
|
inlinestatic |
void Abc_SclLibNormalize | ( | SC_Lib * | p | ) |
Definition at line 615 of file sclLibUtil.c.
void Abc_SclLinkCells | ( | SC_Lib * | p | ) |
Definition at line 129 of file sclLibUtil.c.
|
inlinestatic |
Definition at line 327 of file sclLib.h.
|
inlinestatic |
Definition at line 421 of file sclLib.h.
void Abc_SclPrintCells | ( | SC_Lib * | p, |
float | Slew, | ||
float | Gain, | ||
int | fInvOnly, | ||
int | fShort | ||
) |
Definition at line 503 of file sclLibUtil.c.
SC_Lib* Abc_SclReadFromFile | ( | char * | pFileName | ) |
Definition at line 248 of file sclLibScl.c.
Definition at line 234 of file sclLibScl.c.
SC_Lib* Abc_SclReadLiberty | ( | char * | pFileName, |
int | fVerbose, | ||
int | fVeryVerbose | ||
) |
Definition at line 1626 of file sclLiberty.c.
|
inlinestatic |
Definition at line 301 of file sclLib.h.
|
inlinestatic |
Definition at line 393 of file sclLib.h.
|
inlinestatic |
Definition at line 293 of file sclLib.h.
|
inlinestatic |
Definition at line 386 of file sclLib.h.
|
inlinestatic |
Definition at line 310 of file sclLib.h.
|
inlinestatic |
|
inlinestatic |
Definition at line 320 of file sclLib.h.
|
inlinestatic |
Definition at line 411 of file sclLib.h.
|
inlinestatic |
FUNCTION DEFINITIONS ///.
Function*************************************************************
Synopsis [Constructors of the library data-structures.]
Description []
SideEffects []
SeeAlso []
Definition at line 276 of file sclLib.h.
|
inlinestatic |
|
inlinestatic |
Definition at line 284 of file sclLib.h.
|
inlinestatic |
void Abc_SclWriteLiberty | ( | char * | pFileName, |
SC_Lib * | p | ||
) |
Definition at line 660 of file sclLibScl.c.
void Abc_SclWriteScl | ( | char * | pFileName, |
SC_Lib * | p | ||
) |
Definition at line 444 of file sclLibScl.c.
Definition at line 241 of file sclLib.h.
|
inlinestatic |
|
inlinestatic |
Definition at line 244 of file sclLib.h.
|
inlinestatic |
|
inlinestatic |
Definition at line 240 of file sclLib.h.
|
inlinestatic |
Function*************************************************************
Synopsis [Compute one timing edge.]
Description []
SideEffects []
SeeAlso []
|
inlinestatic |
Definition at line 591 of file sclLib.h.
|
inlinestatic |
Function*************************************************************
Synopsis [Lookup table delay computation.]
Description []
SideEffects []
SeeAlso []
Definition at line 483 of file sclLib.h.
|
inlinestatic |
Definition at line 523 of file sclLib.h.
|
inlinestatic |
Definition at line 578 of file sclLib.h.
|
inlinestatic |
Definition at line 540 of file sclLib.h.