Go to the source code of this file.
FUNCTION DEFINITIONS ///.
Function*************************************************************
Synopsis [Takes a network and a procedure to test.]
Description [The network demonstrates the bug in the procedure. Procedure should return 1 if the bug is demonstrated.]
SideEffects []
SeeAlso []
Definition at line 50 of file abcDebug.c.
53 char * pFileName =
"bug_found.blif";
54 int i, nSteps, nIter, ModNum, RandNum = 1;
60 if ( !(*pFuncError)( pNtk ) )
62 printf(
"The original network does not cause the bug. Quitting.\n" );
67 for ( nIter = 0; ; nIter++ )
74 for ( i = 0; i < nSteps; i++ )
77 ModNum = (i + RandNum) % nSteps;
83 if ( (*pFuncError)( pNtkMod ) )
92 printf(
"Iter %6d : Latches = %6d. Nodes = %6d. Steps = %6d. Error step = %3d. ",
100 printf(
"Final network written into file \"%s\". ", pFileName );
static int Abc_NtkIsLogic(Abc_Ntk_t *pNtk)
static ABC_NAMESPACE_IMPL_START int Abc_NtkCountFaninsTotal(Abc_Ntk_t *pNtk)
DECLARATIONS ///.
static int Abc_NtkLatchNum(Abc_Ntk_t *pNtk)
ABC_DLL Abc_Ntk_t * Abc_NtkDup(Abc_Ntk_t *pNtk)
static abctime Abc_Clock()
ABC_DLL void Abc_NtkDelete(Abc_Ntk_t *pNtk)
static int Abc_NtkNodeNum(Abc_Ntk_t *pNtk)
static Abc_Ntk_t * Abc_NtkAutoDebugModify(Abc_Ntk_t *pNtk, int ObjNum, int fConst1)
void Io_WriteBlifLogic(Abc_Ntk_t *pNtk, char *pFileName, int fWriteLatches)
FUNCTION DEFINITIONS ///.
Function*************************************************************
Synopsis [Perform modification with the given number.]
Description [Modification consists of replacing the node by a constant.]
SideEffects []
SeeAlso []
Definition at line 179 of file abcDebug.c.
ABC_DLL int Abc_NodeIsConst(Abc_Obj_t *pNode)
ABC_DLL Abc_Obj_t * Abc_NtkCreateNodeConst1(Abc_Ntk_t *pNtk)
ABC_DLL Abc_Ntk_t * Abc_NtkDup(Abc_Ntk_t *pNtk)
static int Abc_NtkNodeNum(Abc_Ntk_t *pNtk)
ABC_DLL int Abc_NtkToSop(Abc_Ntk_t *pNtk, int fDirect)
void Abc_NtkCycleInitStateSop(Abc_Ntk_t *pNtk, int nFrames, int fVerbose)
int Abc_NtkFindGivenFanin(Abc_Ntk_t *pNtk, int Step, Abc_Obj_t **ppObj, Abc_Obj_t **ppFanin)
ABC_DLL void Abc_ObjTransferFanout(Abc_Obj_t *pObjOld, Abc_Obj_t *pObjNew)
ABC_DLL int Abc_NtkSweep(Abc_Ntk_t *pNtk, int fVerbose)
ABC_DLL void Abc_NtkDeleteAll_rec(Abc_Obj_t *pObj)
ABC_DLL Abc_Obj_t * Abc_NtkCreateNodeConst0(Abc_Ntk_t *pNtk)
static int Abc_ObjIsPo(Abc_Obj_t *pObj)
ABC_DLL int Abc_NtkCleanupSeq(Abc_Ntk_t *pNtk, int fLatchSweep, int fAutoSweep, int fVerbose)
int Abc_NtkCountFaninsTotal |
( |
Abc_Ntk_t * |
pNtk | ) |
|
|
static |
DECLARATIONS ///.
CFile****************************************************************
FileName [abcDebug.c]
SystemName [ABC: Logic synthesis and verification system.]
PackageName [Network and node package.]
Synopsis [Automated debugging procedures.]
Author [Alan Mishchenko]
Affiliation [UC Berkeley]
Date [Ver. 1.0. Started - June 20, 2005.]
Revision [
- Id:
- abcDebug.c,v 1.00 2005/06/20 00:00:00 alanmi Exp
]
Function*************************************************************
Synopsis [Counts the total number of fanins.]
Description []
SideEffects []
SeeAlso []
Definition at line 116 of file abcDebug.c.
ABC_DLL int Abc_NodeIsConst(Abc_Obj_t *pNode)
static int Abc_ObjIsNode(Abc_Obj_t *pObj)
static int Abc_NtkPoNum(Abc_Ntk_t *pNtk)
#define Abc_ObjForEachFanin(pObj, pFanin, i)
static int Abc_ObjIsPo(Abc_Obj_t *pObj)
#define Abc_NtkForEachObj(pNtk, pObj, i)
ITERATORS ///.
Function*************************************************************
Synopsis [Returns the node and fanin to be modified.]
Description []
SideEffects []
SeeAlso []
Definition at line 145 of file abcDebug.c.
158 if ( Counter++ == Step )
ABC_DLL int Abc_NodeIsConst(Abc_Obj_t *pNode)
static int Abc_ObjIsNode(Abc_Obj_t *pObj)
static int Abc_NtkPoNum(Abc_Ntk_t *pNtk)
#define Abc_ObjForEachFanin(pObj, pFanin, i)
static int Abc_ObjIsPo(Abc_Obj_t *pObj)
#define Abc_NtkForEachObj(pNtk, pObj, i)
ITERATORS ///.