32static void Abc_NtkDressTransferNames(
Abc_Ntk_t * pNtk,
stmm_table * tMapping,
int fVerbose );
57 assert( Abc_NtkIsLogic(pNtkLogic) );
61 if ( pNtkOrig == NULL )
63 assert( Abc_NtkIsNetlist(pNtkOrig) );
88printf(
"After mitering:\n" );
89printf(
"Logic: Nodes = %5d. Copy = %5d. \n", Abc_NtkNodeNum(pNtkLogic),
Abc_NtkCountCopy(pNtkLogic) );
90printf(
"Orig: Nodes = %5d. Copy = %5d. \n", Abc_NtkNodeNum(pNtkOrig),
Abc_NtkCountCopy(pNtkOrig) );
102printf(
"After fraiging:\n" );
103printf(
"Logic: Nodes = %5d. Copy = %5d. \n", Abc_NtkNodeNum(pNtkLogic),
Abc_NtkCountCopy(pNtkLogic) );
104printf(
"Orig: Nodes = %5d. Copy = %5d. \n", Abc_NtkNodeNum(pNtkOrig),
Abc_NtkCountCopy(pNtkOrig) );
108 tMapping = Abc_NtkDressDeriveMapping( pNtkOrig );
111 Abc_NtkDressTransferNames( pNtkLogic, tMapping, fVerbose );
133 Abc_Obj_t * pNode, * pNodeMap, * pNodeFraig;
135 assert( Abc_NtkIsNetlist(pNtk) );
140 pNodeFraig = Abc_ObjRegular(pNode->
pCopy);
145 pNodeMap = Abc_ObjNotCond( pNode, Abc_ObjIsComplement(pNode->
pCopy) );
147 stmm_insert( tResult, (
char *)pNodeFraig, (
char *)pNodeMap );
165 Abc_Obj_t * pNet, * pNode, * pNodeMap, * pNodeFraig;
167 int i, Counter = 0, CounterInv = 0, CounterInit =
stmm_count(tMapping);
168 assert( Abc_NtkIsLogic(pNtk) );
176 pNodeFraig = Abc_ObjRegular(pNode->
pCopy);
178 if ( !
stmm_lookup( tMapping, (
char *)pNodeFraig, (
char **)&pNodeMap ) )
181 pNodeMap = Abc_ObjNotCond( pNodeMap, Abc_ObjIsComplement(pNode->
pCopy) );
183 pNet = Abc_ObjFanout0(Abc_ObjRegular(pNodeMap));
187 if ( Abc_ObjIsComplement(pNodeMap) )
198 stmm_delete( tMapping, (
char **)&pNodeFraig, (
char **)&pNodeMap );
202 printf(
"Total number of names collected = %5d.\n", CounterInit );
203 printf(
"Total number of names assigned = %5d. (Dir = %5d. Compl = %5d.)\n",
204 Counter + CounterInv, Counter, CounterInv );
void Abc_NtkDress(Abc_Ntk_t *pNtkLogic, char *pFileName, int fVerbose)
FUNCTION DEFINITIONS ///.
Abc_Ntk_t * Abc_NtkIvyFraig(Abc_Ntk_t *pNtk, int nConfLimit, int fDoSparse, int fProve, int fTransfer, int fVerbose)
struct Abc_Obj_t_ Abc_Obj_t
ABC_DLL int Abc_NtkCountCopy(Abc_Ntk_t *pNtk)
ABC_DLL Abc_Ntk_t * Abc_NtkToLogic(Abc_Ntk_t *pNtk)
FUNCTION DEFINITIONS ///.
struct Abc_Ntk_t_ Abc_Ntk_t
ABC_DLL char * Abc_ObjAssignName(Abc_Obj_t *pObj, char *pName, char *pSuffix)
ABC_DLL Abc_Ntk_t * Abc_NtkStrash(Abc_Ntk_t *pNtk, int fAllNodes, int fCleanup, int fRecord)
ABC_DLL void Abc_NtkTransferCopy(Abc_Ntk_t *pNtk)
ABC_DLL int Abc_NtkAppend(Abc_Ntk_t *pNtk1, Abc_Ntk_t *pNtk2, int fAddPos)
ABC_DLL void Abc_NtkDelete(Abc_Ntk_t *pNtk)
ABC_DLL void Abc_NtkCleanCopy(Abc_Ntk_t *pNtk)
ABC_DLL int Abc_NtkCompareSignals(Abc_Ntk_t *pNtk1, Abc_Ntk_t *pNtk2, int fOnlyPis, int fComb)
#define Abc_NtkForEachNode(pNtk, pNode, i)
#define ABC_NAMESPACE_IMPL_START
#define ABC_NAMESPACE_IMPL_END
Abc_Ntk_t * Io_ReadNetlist(char *pFileName, Io_FileType_t FileType, int fCheck)
Io_FileType_t Io_ReadFileType(char *pFileName)
DECLARATIONS ///.
char * Nm_ManFindNameById(Nm_Man_t *p, int ObjId)
int stmm_delete(stmm_table *table, char **keyp, char **value)
int stmm_ptrhash(const char *x, int size)
int stmm_insert(stmm_table *table, char *key, char *value)
int stmm_ptrcmp(const char *x, const char *y)
void stmm_free_table(stmm_table *table)
stmm_table * stmm_init_table(stmm_compare_func_type compare, stmm_hash_func_type hash)
int stmm_lookup(stmm_table *table, char *key, char **value)
#define stmm_is_member(table, key)
#define stmm_count(table)