abc-master
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
utilCex.h
Go to the documentation of this file.
1 /**CFile****************************************************************
2 
3  FileName [utilCex.h]
4 
5  SystemName [ABC: Logic synthesis and verification system.]
6 
7  PackageName [Handling sequential counter-examples.]
8 
9  Synopsis [Handling sequential counter-examples.]
10 
11  Author [Alan Mishchenko]
12 
13  Affiliation [UC Berkeley]
14 
15  Date [Ver. 1.0. Started - Feburary 13, 2011.]
16 
17  Revision [$Id: utilCex.h,v 1.00 2011/02/11 00:00:00 alanmi Exp $]
18 
19 ***********************************************************************/
20 
21 #ifndef ABC__misc__util__utilCex_h
22 #define ABC__misc__util__utilCex_h
23 
24 ////////////////////////////////////////////////////////////////////////
25 /// INCLUDES ///
26 ////////////////////////////////////////////////////////////////////////
27 
28 ////////////////////////////////////////////////////////////////////////
29 /// PARAMETERS ///
30 ////////////////////////////////////////////////////////////////////////
31 
33 
34 ////////////////////////////////////////////////////////////////////////
35 /// BASIC TYPES ///
36 ////////////////////////////////////////////////////////////////////////
37 
38 // sequential counter-example
39 typedef struct Abc_Cex_t_ Abc_Cex_t;
40 struct Abc_Cex_t_
41 {
42  int iPo; // the zero-based number of PO, for which verification failed
43  int iFrame; // the zero-based number of the time-frame, for which verificaiton failed
44  int nRegs; // the number of registers in the miter
45  int nPis; // the number of primary inputs in the miter
46  int nBits; // the number of words of bit data used
47  unsigned pData[0]; // the cex bit data (the number of bits: nRegs + (iFrame+1) * nPis)
48 };
49 
50 ////////////////////////////////////////////////////////////////////////
51 /// MACRO DEFINITIONS ///
52 ////////////////////////////////////////////////////////////////////////
53 
54 ////////////////////////////////////////////////////////////////////////
55 /// FUNCTION DECLARATIONS ///
56 ////////////////////////////////////////////////////////////////////////
57 
58 /*=== utilCex.c ===========================================================*/
59 extern Abc_Cex_t * Abc_CexAlloc( int nRegs, int nTruePis, int nFrames );
60 extern Abc_Cex_t * Abc_CexAllocFull( int nRegs, int nTruePis, int nFrames );
61 extern Abc_Cex_t * Abc_CexMakeTriv( int nRegs, int nTruePis, int nTruePos, int iFrameOut );
62 extern Abc_Cex_t * Abc_CexCreate( int nRegs, int nTruePis, int * pArray, int iFrame, int iPo, int fSkipRegs );
63 extern Abc_Cex_t * Abc_CexDup( Abc_Cex_t * p, int nRegsNew );
64 extern Abc_Cex_t * Abc_CexDeriveFromCombModel( int * pModel, int nPis, int nRegs, int iPo );
65 extern Abc_Cex_t * Abc_CexMerge( Abc_Cex_t * pCex, Abc_Cex_t * pPart, int iFrBeg, int iFrEnd );
66 extern void Abc_CexPrintStats( Abc_Cex_t * p );
67 extern void Abc_CexPrintStatsInputs( Abc_Cex_t * p, int nInputs );
68 extern void Abc_CexPrint( Abc_Cex_t * p );
69 extern void Abc_CexFreeP( Abc_Cex_t ** p );
70 extern void Abc_CexFree( Abc_Cex_t * p );
71 extern Abc_Cex_t * Abc_CexTransformPhase( Abc_Cex_t * p, int nPisOld, int nPosOld, int nRegsOld );
72 extern Abc_Cex_t * Abc_CexTransformTempor( Abc_Cex_t * p, int nPisOld, int nPosOld, int nRegsOld );
73 extern Abc_Cex_t * Abc_CexTransformUndc( Abc_Cex_t * p, char * pInit );
74 extern Abc_Cex_t * Abc_CexPermute( Abc_Cex_t * p, Vec_Int_t * vMapOld2New );
75 extern Abc_Cex_t * Abc_CexPermuteTwo( Abc_Cex_t * p, Vec_Int_t * vPermOld, Vec_Int_t * vPermNew );
76 extern int Abc_CexCountOnes( Abc_Cex_t * p );
77 
79 
80 #endif
81 
82 ////////////////////////////////////////////////////////////////////////
83 /// END OF FILE ///
84 ////////////////////////////////////////////////////////////////////////
Abc_Cex_t * Abc_CexAllocFull(int nRegs, int nTruePis, int nFrames)
Definition: utilCex.c:62
unsigned pData[0]
Definition: utilCex.h:47
void Abc_CexFreeP(Abc_Cex_t **p)
Definition: utilCex.c:350
static Llb_Mgr_t * p
Definition: llb3Image.c:950
typedefABC_NAMESPACE_IMPL_START struct Vec_Int_t_ Vec_Int_t
DECLARATIONS ///.
Definition: bblif.c:37
Abc_Cex_t * Abc_CexTransformTempor(Abc_Cex_t *p, int nPisOld, int nPosOld, int nRegsOld)
Definition: utilCex.c:416
int nPis
Definition: utilCex.h:45
Abc_Cex_t * Abc_CexTransformPhase(Abc_Cex_t *p, int nPisOld, int nPosOld, int nRegsOld)
Definition: utilCex.c:390
void Abc_CexPrintStats(Abc_Cex_t *p)
Definition: utilCex.c:256
int iFrame
Definition: utilCex.h:43
int nRegs
Definition: utilCex.h:44
Abc_Cex_t * Abc_CexAlloc(int nRegs, int nTruePis, int nFrames)
MACRO DEFINITIONS ///.
Definition: utilCex.c:51
Abc_Cex_t * Abc_CexCreate(int nRegs, int nTruePis, int *pArray, int iFrame, int iPo, int fSkipRegs)
Definition: utilCex.c:110
Abc_Cex_t * Abc_CexMerge(Abc_Cex_t *pCex, Abc_Cex_t *pPart, int iFrBeg, int iFrEnd)
Definition: utilCex.c:197
int iPo
Definition: utilCex.h:42
Abc_Cex_t * Abc_CexTransformUndc(Abc_Cex_t *p, char *pInit)
Definition: utilCex.c:448
Abc_Cex_t * Abc_CexDeriveFromCombModel(int *pModel, int nPis, int nRegs, int iPo)
Definition: utilCex.c:173
void Abc_CexPrint(Abc_Cex_t *p)
Definition: utilCex.c:311
#define ABC_NAMESPACE_HEADER_START
NAMESPACES ///.
Definition: abc_global.h:105
int Abc_CexCountOnes(Abc_Cex_t *p)
Definition: utilCex.c:548
#define ABC_NAMESPACE_HEADER_END
Definition: abc_global.h:106
int nBits
Definition: utilCex.h:46
Abc_Cex_t * Abc_CexPermuteTwo(Abc_Cex_t *p, Vec_Int_t *vPermOld, Vec_Int_t *vPermNew)
Definition: utilCex.c:515
void Abc_CexFree(Abc_Cex_t *p)
Definition: utilCex.c:371
Abc_Cex_t * Abc_CexMakeTriv(int nRegs, int nTruePis, int nTruePos, int iFrameOut)
Definition: utilCex.c:85
typedefABC_NAMESPACE_HEADER_START struct Abc_Cex_t_ Abc_Cex_t
INCLUDES ///.
Definition: utilCex.h:39
Abc_Cex_t * Abc_CexPermute(Abc_Cex_t *p, Vec_Int_t *vMapOld2New)
Definition: utilCex.c:487
void Abc_CexPrintStatsInputs(Abc_Cex_t *p, int nInputs)
Definition: utilCex.c:275
Abc_Cex_t * Abc_CexDup(Abc_Cex_t *p, int nRegsNew)
Definition: utilCex.c:145