19#ifndef ABC__map__mio__mio_h
20#define ABC__map__mio__mio_h
81#define Mio_LibraryForEachGate( Lib, Gate ) \
82 for ( Gate = Mio_LibraryReadGates(Lib); \
84 Gate = Mio_GateReadNext(Gate) )
85#define Mio_LibraryForEachGateSafe( Lib, Gate, Gate2 ) \
86 for ( Gate = Mio_LibraryReadGates(Lib), \
87 Gate2 = (Gate? Mio_GateReadNext(Gate): NULL); \
90 Gate2 = (Gate? Mio_GateReadNext(Gate): NULL) )
92#define Mio_GateForEachPin( Gate, Pin ) \
93 for ( Pin = Mio_GateReadPins(Gate); \
95 Pin = Mio_PinReadNext(Pin) )
96#define Mio_GateForEachPinSafe( Gate, Pin, Pin2 ) \
97 for ( Pin = Mio_GateReadPins(Gate), \
98 Pin2 = (Pin? Mio_PinReadNext(Pin): NULL); \
101 Pin2 = (Pin? Mio_PinReadNext(Pin): NULL) )
181extern char *
Mio_ReadFile(
char * FileName,
int fAddEnd );
207 float ** ptPinDelays,
int nPins,
int nInputs,
float tDelayZero,
208 float * ptDelaysRes,
float * ptPinDelayMax );
#define ABC_NAMESPACE_HEADER_END
#define ABC_NAMESPACE_HEADER_START
NAMESPACES ///.
typedefABC_NAMESPACE_IMPL_START struct Vec_Int_t_ Vec_Int_t
DECLARATIONS ///.
struct Vec_Str_t_ Vec_Str_t
unsigned __int64 word
DECLARATIONS ///.
Mio_Cell_t * Mio_CollectRootsNew(Mio_Library_t *pLib, int nInputs, int *pnGates, int fVerbose)
Mio_Gate_t * Mio_LibraryReadAnd2(Mio_Library_t *pLib)
float Mio_LibraryReadDelayInvFall(Mio_Library_t *pLib)
Mio_Gate_t * Mio_LibraryReadGates(Mio_Library_t *pLib)
Mio_Pin_t * Mio_GateReadPins(Mio_Gate_t *pGate)
void Mio_WriteLibraryVerilog(FILE *pFile, Mio_Library_t *pLib, int fPrintSops, int fShort, int fSelected)
float Mio_LibraryReadDelayInvMax(Mio_Library_t *pLib)
Mio_Gate_t * Mio_LibraryReadConst0(Mio_Library_t *pLib)
double Mio_PinReadDelayBlockFall(Mio_Pin_t *pPin)
Mio_Library_t * Abc_SclDeriveGenlibSimple(void *pScl)
void Mio_GateSetProfile(Mio_Gate_t *pGate, int Prof)
int Mio_GateReadPinNum(Mio_Gate_t *pGate)
Vec_Wrd_t * Mio_ParseFormulaTruth(char *pFormInit, char **ppVarNames, int nVars)
float Mio_LibraryReadAreaBuf(Mio_Library_t *pLib)
Mio_Gate_t ** Mio_CollectRoots(Mio_Library_t *pLib, int nInputs, float tDelay, int fSkipInv, int *pnGates, int fVerbose)
void Mio_LibraryReadProfile(FILE *pFile, Mio_Library_t *pLib)
Mio_Pin_t * Mio_PinDup(Mio_Pin_t *pPin)
Mio_Library_t * Mio_GateReadLib(Mio_Gate_t *pGate)
void Mio_GateDecProfile2(Mio_Gate_t *pGate)
char * Mio_LibDeriveSop(int nVars, Vec_Int_t *vExpr, Vec_Str_t *vStr)
char * Mio_LibraryReadName(Mio_Library_t *pLib)
DECLARATIONS ///.
Mio_PinPhase_t
INCLUDES ///.
void Mio_DeriveTruthTable(Mio_Gate_t *pGate, unsigned uTruthsIn[][2], int nSigns, int nInputs, unsigned uTruthRes[])
int Mio_ParseCheckFormula(Mio_Gate_t *pGate, char *pForm)
Mio_Cell_t * Mio_CollectRootsNewDefault(int nInputs, int *pnGates, int fVerbose)
float Mio_LibraryReadDelayNand2Max(Mio_Library_t *pLib)
void Mio_LibraryShortNames(Mio_Library_t *pLib)
Mio_Gate_t * Mio_LibraryReadNor2(Mio_Library_t *pLib)
double Mio_PinReadDelayBlockMax(Mio_Pin_t *pPin)
double Mio_GateReadArea(Mio_Gate_t *pGate)
void Mio_LibraryShiftDelay(Mio_Library_t *pLib, double Shift)
struct Mio_LibraryStruct_t_ Mio_Library_t
Mio_PinPhase_t Mio_PinReadPhase(Mio_Pin_t *pPin)
char * Mio_GateReadSop(Mio_Gate_t *pGate)
void Mio_LibraryDelete(Mio_Library_t *pLib)
DECLARATIONS ///.
char * Mio_LibraryReadSopByName(Mio_Library_t *pLib, char *pName)
Mio_Cell2_t * Mio_CollectRootsNewDefault2(int nInputs, int *pnGates, int fVerbose)
int Mio_GateReadProfile(Mio_Gate_t *pGate)
float Mio_LibraryReadAreaInv(Mio_Library_t *pLib)
void Mio_LibraryCleanProfile2(Mio_Library_t *pLib)
Mio_Gate_t * Mio_GateReadTwin(Mio_Gate_t *pGate)
void Mio_DeriveGateDelays(Mio_Gate_t *pGate, float **ptPinDelays, int nPins, int nInputs, float tDelayZero, float *ptDelaysRes, float *ptPinDelayMax)
void Mio_LibraryTransferProfile(Mio_Library_t *pLibDst, Mio_Library_t *pLibSrc)
word Mio_GateReadTruth(Mio_Gate_t *pGate)
void Mio_WriteLibrary(FILE *pFile, Mio_Library_t *pLib, int fPrintSops, int fShort, int fSelected)
float Mio_LibraryReadDelayNand2Rise(Mio_Library_t *pLib)
Vec_Int_t * Mio_GateReadExpr(Mio_Gate_t *pGate)
int Mio_LibraryHasProfile(Mio_Library_t *pLib)
void Mio_GateAddToProfile2(Mio_Gate_t *pGate, int Prof)
int Mio_GateIsInv(Mio_Gate_t *pGate)
double Mio_PinReadInputLoad(Mio_Pin_t *pPin)
Mio_Gate_t * Mio_LibraryReadGateByName(Mio_Library_t *pLib, char *pName, char *pOutName)
int Mio_UpdateGenlib2(Vec_Str_t *vStr, Vec_Str_t *vStr2, char *pFileName, int fVerbose)
int Mio_GateReadProfile2(Mio_Gate_t *pGate)
Mio_Gate_t ** Mio_LibraryReadGateArray(Mio_Library_t *pLib)
double Mio_PinReadMaxLoad(Mio_Pin_t *pPin)
Mio_Gate_t * Mio_LibraryReadGateByTruth(Mio_Library_t *pLib, word t)
void Mio_LibraryMatchesStop(Mio_Library_t *pLib)
char * Mio_GateReadPinName(Mio_Gate_t *pGate, int iPin)
Mio_Gate_t * Mio_GateReadNext(Mio_Gate_t *pGate)
struct Mio_Cell2_t_ Mio_Cell2_t
int Mio_GateReadValue(Mio_Gate_t *pGate)
void Mio_LibraryMatches2Start(Mio_Library_t *pLib)
void Mio_PinDelete(Mio_Pin_t *pPin)
void Mio_LibraryMatches2Fetch(Mio_Library_t *pLib, Vec_Ptr_t **pvNames, Vec_Wrd_t **pvTruths, Vec_Int_t **pvTt2Match4, Vec_Int_t **pvConfigs, Vec_Mem_t *pvTtMem2[3], Vec_Int_t *pvTt2Match2[3])
struct Mio_Cell_t_ Mio_Cell_t
float Mio_LibraryReadAreaNand2(Mio_Library_t *pLib)
char * Mio_PinReadName(Mio_Pin_t *pPin)
void Mio_LibraryMultiDelay(Mio_Library_t *pLib, double Multi)
float Mio_GateReadPinDelay(Mio_Gate_t *pGate, int iPin)
void Mio_GateSetValue(Mio_Gate_t *pGate, int Value)
char * Mio_GateReadName(Mio_Gate_t *pGate)
Mio_Gate_t * Mio_LibraryReadNand2(Mio_Library_t *pLib)
Mio_Pin_t * Mio_PinReadNext(Mio_Pin_t *pPin)
float Mio_LibraryReadDelayInvRise(Mio_Library_t *pLib)
word Mio_DeriveTruthTable6(Mio_Gate_t *pGate)
void Mio_LibraryTransferCellIds()
void Mio_LibraryMatches2Stop(Mio_Library_t *pLib)
Mio_Gate_t * Mio_LibraryReadConst1(Mio_Library_t *pLib)
int Mio_LibraryReadGateNameMax(Mio_Library_t *pLib)
double Mio_PinReadDelayFanoutRise(Mio_Pin_t *pPin)
void Mio_LibraryTransferDelays(Mio_Library_t *pLibD, Mio_Library_t *pLibS)
double Mio_PinReadDelayFanoutFall(Mio_Pin_t *pPin)
struct Mio_PinStruct_t_ Mio_Pin_t
char * Mio_GateReadOutName(Mio_Gate_t *pGate)
Mio_Gate_t * Mio_LibraryReadGateById(Mio_Library_t *pLib, int iD)
double Mio_PinReadDelayBlockRise(Mio_Pin_t *pPin)
void Mio_UpdateGenlib(Mio_Library_t *pLib)
FUNCTION DEFINITIONS ///.
int Mio_LibraryReadGateNum(Mio_Library_t *pLib)
char * Mio_LibraryReadFileName(Mio_Library_t *pLib)
char * Mio_ReadFile(char *FileName, int fAddEnd)
float Mio_LibraryReadDelayNand2Fall(Mio_Library_t *pLib)
void Mio_LibraryMatchesStart(Mio_Library_t *pLib, int fPinFilter, int fPinPerm, int fPinQuick)
Mio_Gate_t * Mio_LibraryReadInv(Mio_Library_t *pLib)
void Mio_GateDelete(Mio_Gate_t *pGate)
void Mio_LibrarySetName(Mio_Library_t *pLib, char *pName)
Mio_Library_t * Mio_LibraryRead(char *FileName, char *pBuffer, char *ExcludeFile, int nFaninLimit, int fVerbose)
void Mio_GateIncProfile2(Mio_Gate_t *pGate)
float Mio_LibraryReadDelayAigNode(Mio_Library_t *pLib)
void Mio_GateAddToProfile(Mio_Gate_t *pGate, int Prof)
Mio_Library_t * Abc_SclDeriveGenlib(void *pScl, void *pMio, float Slew, float Gain, int nGatesMin, int fVerbose)
void Mio_GateSetCell(Mio_Gate_t *pGate, int Cell)
struct Mio_GateStruct_t_ Mio_Gate_t
void Mio_GateSetProfile2(Mio_Gate_t *pGate, int Prof)
int Mio_CollectRootsNewDefault3(int nInputs, Vec_Ptr_t **pvNames, Vec_Wrd_t **pvTruths)
Mio_Gate_t * Mio_LibraryReadBuf(Mio_Library_t *pLib)
Mio_Gate_t * Mio_GateCreatePseudo(int nInputs)
float Mio_LibraryReadDelayAnd2Max(Mio_Library_t *pLib)
char * Mio_GateReadForm(Mio_Gate_t *pGate)
void Mio_LibraryWriteProfile(FILE *pFile, Mio_Library_t *pLib)
void Mio_LibraryMatchesFetch(Mio_Library_t *pLib, Vec_Mem_t **pvTtMem, Vec_Wec_t **pvTt2Match, Mio_Cell2_t **ppCells, int *pnCells, int fPinFilter, int fPinPerm, int fPinQuick)
Vec_Int_t * Mio_ParseFormula(char *pFormInit, char **ppVarNames, int nVars)
int Mio_GateReadCell(Mio_Gate_t *pGate)
int Mio_LibraryReadExclude(char *ExcludeFile, st__table *tExcludeGate)
word * Mio_GateReadTruthP(Mio_Gate_t *pGate)
Mio_Gate_t * Mio_LibraryReadOr2(Mio_Library_t *pLib)
int Mio_LibraryParseFormulas(Mio_Library_t *pLib)
FUNCTION DEFINITIONS ///.
void Mio_LibraryMultiArea(Mio_Library_t *pLib, double Multi)
double Mio_GateReadDelayMax(Mio_Gate_t *pGate)
void Mio_LibraryTransferProfile2(Mio_Library_t *pLibDst, Mio_Library_t *pLibSrc)
STRUCTURE DEFINITIONS ///.
typedefABC_NAMESPACE_IMPL_START struct Vec_Mem_t_ Vec_Mem_t
DECLARATIONS ///.
typedefABC_NAMESPACE_HEADER_START struct Vec_Ptr_t_ Vec_Ptr_t
INCLUDES ///.
typedefABC_NAMESPACE_HEADER_START struct Vec_Wec_t_ Vec_Wec_t
INCLUDES ///.
typedefABC_NAMESPACE_HEADER_START struct Vec_Wrd_t_ Vec_Wrd_t
INCLUDES ///.