summaryrefslogtreecommitdiffstats
path: root/src/aig/ntl/ntlTable.c
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2008-10-25 08:01:00 -0700
committerAlan Mishchenko <alanmi@berkeley.edu>2008-10-25 08:01:00 -0700
commitd2b735f794575ce0f10f01bba1255cf1dc3b8aaf (patch)
treebaac975efb3057f03506f165acbd36d2e67341b6 /src/aig/ntl/ntlTable.c
parent2418d9b08d0b49c675f02dc2351e2230079174af (diff)
downloadabc-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.c77
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 []