diff options
author | Alan Mishchenko <alanmi@berkeley.edu> | 2008-10-25 08:01:00 -0700 |
---|---|---|
committer | Alan Mishchenko <alanmi@berkeley.edu> | 2008-10-25 08:01:00 -0700 |
commit | d2b735f794575ce0f10f01bba1255cf1dc3b8aaf (patch) | |
tree | baac975efb3057f03506f165acbd36d2e67341b6 /src/aig/ntl/ntlTable.c | |
parent | 2418d9b08d0b49c675f02dc2351e2230079174af (diff) | |
download | abc-d2b735f794575ce0f10f01bba1255cf1dc3b8aaf.tar.gz abc-d2b735f794575ce0f10f01bba1255cf1dc3b8aaf.tar.bz2 abc-d2b735f794575ce0f10f01bba1255cf1dc3b8aaf.zip |
Version abc81025
Diffstat (limited to 'src/aig/ntl/ntlTable.c')
-rw-r--r-- | src/aig/ntl/ntlTable.c | 77 |
1 files changed, 76 insertions, 1 deletions
diff --git a/src/aig/ntl/ntlTable.c b/src/aig/ntl/ntlTable.c index fe58e2f8..208b4491 100644 --- a/src/aig/ntl/ntlTable.c +++ b/src/aig/ntl/ntlTable.c @@ -180,6 +180,27 @@ Ntl_Net_t * Ntl_ModelFindOrCreateNet( Ntl_Mod_t * p, char * pName ) /**Function************************************************************* + Synopsis [Assigns numbers to PIs and POs.] + + Description [] + + SideEffects [] + + SeeAlso [] + +***********************************************************************/ +void Ntl_ModelSetPioNumbers( Ntl_Mod_t * p ) +{ + Ntl_Obj_t * pObj; + int i; + Ntl_ModelForEachPi( p, pObj, i ) + pObj->iTemp = i; + Ntl_ModelForEachPo( p, pObj, i ) + pObj->iTemp = i; +} + +/**Function************************************************************* + Synopsis [Returns -1, 0, +1 (when it is PI, not found, or PO).] Description [] @@ -189,7 +210,7 @@ Ntl_Net_t * Ntl_ModelFindOrCreateNet( Ntl_Mod_t * p, char * pName ) SeeAlso [] ***********************************************************************/ -int Ntl_ModelFindPioNumber( Ntl_Mod_t * p, int fPiOnly, int fPoOnly, char * pName, int * pNumber ) +int Ntl_ModelFindPioNumber_old( Ntl_Mod_t * p, int fPiOnly, int fPoOnly, char * pName, int * pNumber ) { Ntl_Net_t * pNet; Ntl_Obj_t * pObj; @@ -243,6 +264,60 @@ int Ntl_ModelFindPioNumber( Ntl_Mod_t * p, int fPiOnly, int fPoOnly, char * pNam /**Function************************************************************* + Synopsis [Returns -1, 0, +1 (when it is PI, not found, or PO).] + + Description [] + + SideEffects [] + + SeeAlso [] + +***********************************************************************/ +int Ntl_ModelFindPioNumber( Ntl_Mod_t * p, int fPiOnly, int fPoOnly, char * pName, int * pNumber ) +{ + Ntl_Net_t * pNet; + Ntl_Obj_t * pTerm; + *pNumber = -1; + pNet = Ntl_ModelFindNet( p, pName ); + if ( pNet == NULL ) + return 0; + if ( fPiOnly ) + { + pTerm = pNet->pDriver; + if ( pTerm && Ntl_ObjIsPi(pTerm) ) + { + *pNumber = pTerm->iTemp; + return -1; + } + return 0; + } + if ( fPoOnly ) + { + pTerm = pNet->pCopy; + if ( pTerm && Ntl_ObjIsPo(pTerm) ) + { + *pNumber = pTerm->iTemp; + return 1; + } + return 0; + } + pTerm = pNet->pCopy; + if ( pTerm && Ntl_ObjIsPo(pTerm) ) + { + *pNumber = pTerm->iTemp; + return 1; + } + pTerm = pNet->pDriver; + if ( pTerm && Ntl_ObjIsPi(pTerm) ) + { + *pNumber = pTerm->iTemp; + return -1; + } + return 0; +} + +/**Function************************************************************* + Synopsis [Sets the driver of the net.] Description [] |