45static inline unsigned * Ssw_ObjSim(
Ssw_Sml_t *
p,
int Id ) {
return p->pData +
p->nWordsTotal * Id; }
46static inline unsigned Ssw_ObjRandomSim() {
return Aig_ManRandom(0); }
65 static int s_SPrimes[128] = {
66 1009, 1049, 1093, 1151, 1201, 1249, 1297, 1361, 1427, 1459,
67 1499, 1559, 1607, 1657, 1709, 1759, 1823, 1877, 1933, 1997,
68 2039, 2089, 2141, 2213, 2269, 2311, 2371, 2411, 2467, 2543,
69 2609, 2663, 2699, 2741, 2797, 2851, 2909, 2969, 3037, 3089,
70 3169, 3221, 3299, 3331, 3389, 3461, 3517, 3557, 3613, 3671,
71 3719, 3779, 3847, 3907, 3943, 4013, 4073, 4129, 4201, 4243,
72 4289, 4363, 4441, 4493, 4549, 4621, 4663, 4729, 4793, 4871,
73 4933, 4973, 5021, 5087, 5153, 5227, 5281, 5351, 5417, 5471,
74 5519, 5573, 5651, 5693, 5749, 5821, 5861, 5923, 6011, 6073,
75 6131, 6199, 6257, 6301, 6353, 6397, 6481, 6563, 6619, 6689,
76 6737, 6803, 6863, 6917, 6977, 7027, 7109, 7187, 7237, 7309,
77 7393, 7477, 7523, 7561, 7607, 7681, 7727, 7817, 7877, 7933,
78 8011, 8039, 8059, 8081, 8093, 8111, 8123, 8147
85 pSims = Ssw_ObjSim(
p, pObj->
Id);
86 for ( i =
p->nWordsPref; i < p->nWordsTotal; i++ )
87 uHash ^= pSims[i] * s_SPrimes[i & 0x7F];
106 pSims = Ssw_ObjSim(
p, pObj->
Id);
107 for ( i =
p->nWordsPref; i < p->nWordsTotal; i++ )
126 unsigned * pSims0, * pSims1;
128 pSims0 = Ssw_ObjSim(
p, pObj0->
Id);
129 pSims1 = Ssw_ObjSim(
p, pObj1->
Id);
130 for ( i =
p->nWordsPref; i < p->nWordsTotal; i++ )
131 if ( pSims0[i] != pSims1[i] )
182 unsigned * pSimL, * pSimR;
184 pSimL = Ssw_ObjSim(
p, Left );
185 pSimR = Ssw_ObjSim(
p, Right );
186 for ( k =
p->nWordsPref; k < p->nWordsTotal; k++ )
187 Counter += Aig_WordCountOnes( pSimL[k] ^ pSimR[k] );
204 unsigned * pSimLi, * pSimLo, * pSimCand;
208 pSimCand = Ssw_ObjSim(
p, Aig_Regular(pCand)->Id );
209 pSimLi = Ssw_ObjSim(
p, pObjLi->
Id );
210 pSimLo = Ssw_ObjSim(
p, pObjLo->
Id );
211 if ( Aig_Regular(pCand)->fPhase ^ Aig_IsComplement(pCand) )
213 for ( k =
p->nWordsPref; k < p->nWordsTotal; k++ )
214 if ( ~pSimCand[k] & (pSimLi[k] ^ pSimLo[k]) )
219 for ( k =
p->nWordsPref; k < p->nWordsTotal; k++ )
220 if ( pSimCand[k] & (pSimLi[k] ^ pSimLo[k]) )
239 unsigned * pSimLi, * pSimLo, * pSimCand;
243 pSimCand = Ssw_ObjSim(
p, Aig_Regular(pCand)->Id );
244 pSimLi = Ssw_ObjSim(
p, pObjLi->
Id );
245 pSimLo = Ssw_ObjSim(
p, pObjLo->
Id );
246 if ( Aig_Regular(pCand)->fPhase ^ Aig_IsComplement(pCand) )
248 for ( k =
p->nWordsPref; k < p->nWordsTotal; k++ )
249 Counter += Aig_WordCountOnes(~pSimCand[k] & ~(pSimLi[k] ^ pSimLo[k]));
253 for ( k =
p->nWordsPref; k < p->nWordsTotal; k++ )
254 Counter += Aig_WordCountOnes(pSimCand[k] & ~(pSimLi[k] ^ pSimLo[k]));
272 unsigned * pSimLi, * pSimLo;
276 pSimLi = Ssw_ObjSim(
p, pObjLi->
Id );
277 pSimLo = Ssw_ObjSim(
p, pObjLo->
Id );
278 for ( k =
p->nWordsPref; k < p->nWordsTotal; k++ )
279 Counter += Aig_WordCountOnes( ~(pSimLi[k] ^ pSimLo[k]) );
298 pSims = Ssw_ObjSim(
p, pObj->
Id);
299 for ( i =
p->nWordsPref; i < p->nWordsTotal; i++ )
318 unsigned * pSims = Ssw_ObjSim(
p, pObj->
Id);
319 return pSims[f] == 0;
337 pSims = Ssw_ObjSim(
p, Aig_Regular(pObj)->Id);
338 if ( Aig_Regular(pObj)->fPhase ^ Aig_IsComplement(pObj) )
340 for ( i = 0; i <
p->nWordsTotal; i++ )
341 Counter += Aig_WordCountOnes( ~pSims[i] );
345 for ( i = 0; i <
p->nWordsTotal; i++ )
346 Counter += Aig_WordCountOnes( pSims[i] );
365 unsigned * pSims, uWord;
366 int i, k, Counter = 0;
367 if ( Vec_PtrSize(vObjs) == 0 )
369 for ( i = 0; i <
p->nWordsTotal; i++ )
374 pSims = Ssw_ObjSim(
p, Aig_Regular(pObj)->Id);
375 if ( Aig_Regular(pObj)->fPhase ^ Aig_IsComplement(pObj) )
380 Counter += Aig_WordCountOnes( uWord );
400 memset(
p->pPatWords, 0,
sizeof(
unsigned) *
p->nPatWords );
418 memset(
p->pPatWords, 0xff,
sizeof(
unsigned) *
p->nPatWords );
422 nTruePis = Saig_ManPiNum(
p->pAig);
425 Abc_InfoXorBit(
p->pPatWords, nTruePis *
p->nFrames + k++ );
444 int i, k, BestPat, * pModel;
446 pFanin = Aig_ObjFanin0(pObjPo);
447 pSims = Ssw_ObjSim(
p, pFanin->
Id);
448 for ( i = 0; i <
p->nWordsTotal; i++ )
451 assert( i < p->nWordsTotal );
453 for ( k = 0; k < 32; k++ )
454 if ( pSims[i] & (1 << k) )
458 BestPat = i * 32 + k;
460 pModel =
ABC_ALLOC(
int, Aig_ManCiNum(
p->pAig)+1 );
463 pModel[i] = Abc_InfoHasBit(Ssw_ObjSim(
p, pObjPi->
Id), BestPat);
466 pModel[Aig_ManCiNum(
p->pAig)] = pObjPo->
Id;
487 pObj = Aig_ManCo(
p->pAig, 0 );
488 assert( Aig_ObjFanin0(pObj)->fPhase == (
unsigned)Aig_ObjFaninC0(pObj) );
517 assert( Aig_ObjIsCi(pObj) );
518 pSims = Ssw_ObjSim(
p, pObj->
Id );
519 for ( i = 0; i <
p->nWordsTotal; i++ )
520 pSims[i] = Ssw_ObjRandomSim();
522 assert(
p->nWordsFrame *
p->nFrames ==
p->nWordsTotal );
523 for ( f = 0; f <
p->nFrames; f++ )
524 pSims[
p->nWordsFrame*f] <<= 1;
542 assert( iFrame < p->nFrames );
543 assert( Aig_ObjIsCi(pObj) );
544 pSims = Ssw_ObjSim(
p, pObj->
Id ) +
p->nWordsFrame * iFrame;
545 for ( i = 0; i <
p->nWordsFrame; i++ )
546 pSims[i] = Ssw_ObjRandomSim();
564 assert( iFrame < p->nFrames );
565 assert( Aig_ObjIsCi(pObj) );
566 pSims = Ssw_ObjSim(
p, pObj->
Id ) +
p->nWordsFrame * iFrame;
567 for ( i = 0; i <
p->nWordsFrame; i++ )
568 pSims[i] = fConst1? ~(
unsigned)0 : 0;
585 assert( iFrame < p->nFrames );
586 assert( iWord < p->nWordsFrame );
587 assert( Aig_ObjIsCi(pObj) );
588 pSims = Ssw_ObjSim(
p, pObj->
Id ) +
p->nWordsFrame * iFrame;
589 pSims[iWord] = fConst1? ~(unsigned)0 : 0;
606 assert( iFrame < p->nFrames );
607 assert( Aig_ObjIsCi(pObj) );
608 pSims = Ssw_ObjSim(
p, pObj->
Id ) +
p->nWordsFrame * iFrame;
626 int f, i, k, Limit, nTruePis;
628 if (
p->nFrames == 1 )
634 Limit = Abc_MinInt( Aig_ManCiNum(
p->pAig),
p->nWordsTotal * 32 - 1 );
635 for ( i = 0; i < Limit; i++ )
636 Abc_InfoXorBit( Ssw_ObjSim(
p, Aig_ManCi(
p->pAig,i)->Id ), i+1 );
643 nTruePis = Aig_ManCiNum(
p->pAig) - Aig_ManRegNum(
p->pAig);
644 for ( f = 0; f <
p->nFrames; f++ )
656 Limit = Abc_MinInt( nTruePis,
p->nWordsFrame * 32 - 1 );
657 for ( i = 0; i < Limit; i++ )
658 Abc_InfoXorBit( Ssw_ObjSim(
p, Aig_ManCi(
p->pAig, i)->Id ) +
p->nWordsFrame*(
p->nFrames-1), i+1 );
685 Limit = Abc_MinInt( Saig_ManPiNum(
p->pAig),
p->nWordsFrame * 32 - 1 );
686 for ( i = 0; i < Limit; i++ )
687 Abc_InfoXorBit( Ssw_ObjSim(
p, Aig_ManCi(
p->pAig, i)->Id ), i+1 );
690 for ( f = 1; f <
p->nFrames; f++ )
708 unsigned * pSims, * pSims0, * pSims1;
709 int fCompl, fCompl0, fCompl1, i;
710 assert( iFrame < p->nFrames );
711 assert( !Aig_IsComplement(pObj) );
712 assert( Aig_ObjIsNode(pObj) );
713 assert( iFrame == 0 ||
p->nWordsFrame <
p->nWordsTotal );
715 pSims = Ssw_ObjSim(
p, pObj->
Id) +
p->nWordsFrame * iFrame;
716 pSims0 = Ssw_ObjSim(
p, Aig_ObjFanin0(pObj)->Id) +
p->nWordsFrame * iFrame;
717 pSims1 = Ssw_ObjSim(
p, Aig_ObjFanin1(pObj)->Id) +
p->nWordsFrame * iFrame;
720 fCompl0 = Aig_ObjPhaseReal(Aig_ObjChild0(pObj));
721 fCompl1 = Aig_ObjPhaseReal(Aig_ObjChild1(pObj));
723 if ( fCompl0 && fCompl1 )
726 for ( i = 0; i <
p->nWordsFrame; i++ )
727 pSims[i] = (pSims0[i] | pSims1[i]);
729 for ( i = 0; i <
p->nWordsFrame; i++ )
730 pSims[i] = ~(pSims0[i] | pSims1[i]);
732 else if ( fCompl0 && !fCompl1 )
735 for ( i = 0; i <
p->nWordsFrame; i++ )
736 pSims[i] = (pSims0[i] | ~pSims1[i]);
738 for ( i = 0; i <
p->nWordsFrame; i++ )
739 pSims[i] = (~pSims0[i] & pSims1[i]);
741 else if ( !fCompl0 && fCompl1 )
744 for ( i = 0; i <
p->nWordsFrame; i++ )
745 pSims[i] = (~pSims0[i] | pSims1[i]);
747 for ( i = 0; i <
p->nWordsFrame; i++ )
748 pSims[i] = (pSims0[i] & ~pSims1[i]);
753 for ( i = 0; i <
p->nWordsFrame; i++ )
754 pSims[i] = ~(pSims0[i] & pSims1[i]);
756 for ( i = 0; i <
p->nWordsFrame; i++ )
757 pSims[i] = (pSims0[i] & pSims1[i]);
774 unsigned * pSims0, * pSims1;
776 assert( iFrame0 < p->nFrames );
777 assert( iFrame1 < p->nFrames );
778 assert( !Aig_IsComplement(pObj0) );
779 assert( !Aig_IsComplement(pObj1) );
780 assert( iFrame0 == 0 ||
p->nWordsFrame <
p->nWordsTotal );
781 assert( iFrame1 == 0 ||
p->nWordsFrame <
p->nWordsTotal );
783 pSims0 = Ssw_ObjSim(
p, pObj0->
Id) +
p->nWordsFrame * iFrame0;
784 pSims1 = Ssw_ObjSim(
p, pObj1->
Id) +
p->nWordsFrame * iFrame1;
786 for ( i = 0; i <
p->nWordsFrame; i++ )
787 if ( pSims0[i] != pSims1[i] )
805 unsigned * pSims, * pSims0;
806 int fCompl, fCompl0, i;
807 assert( iFrame < p->nFrames );
808 assert( !Aig_IsComplement(pObj) );
809 assert( Aig_ObjIsCo(pObj) );
810 assert( iFrame == 0 ||
p->nWordsFrame <
p->nWordsTotal );
812 pSims = Ssw_ObjSim(
p, pObj->
Id) +
p->nWordsFrame * iFrame;
813 pSims0 = Ssw_ObjSim(
p, Aig_ObjFanin0(pObj)->Id) +
p->nWordsFrame * iFrame;
816 fCompl0 = Aig_ObjPhaseReal(Aig_ObjChild0(pObj));
819 for ( i = 0; i <
p->nWordsFrame; i++ )
820 pSims[i] = ~pSims0[i];
822 for ( i = 0; i <
p->nWordsFrame; i++ )
823 pSims[i] = pSims0[i];
839 unsigned * pSims0, * pSims1;
841 assert( iFrame < p->nFrames );
842 assert( !Aig_IsComplement(pOut) );
843 assert( !Aig_IsComplement(pIn) );
844 assert( Aig_ObjIsCo(pOut) );
845 assert( Aig_ObjIsCi(pIn) );
846 assert( iFrame == 0 ||
p->nWordsFrame <
p->nWordsTotal );
848 pSims0 = Ssw_ObjSim(
p, pOut->
Id) +
p->nWordsFrame * iFrame;
849 pSims1 = Ssw_ObjSim(
p, pIn->
Id) +
p->nWordsFrame * (iFrame+1);
851 for ( i = 0; i <
p->nWordsFrame; i++ )
852 pSims1[i] = pSims0[i];
868 unsigned * pSims0, * pSims1;
870 assert( !Aig_IsComplement(pOut) );
871 assert( !Aig_IsComplement(pIn) );
872 assert( Aig_ObjIsCo(pOut) );
873 assert( Aig_ObjIsCi(pIn) );
874 assert(
p->nWordsFrame <
p->nWordsTotal );
876 pSims0 = Ssw_ObjSim(
p, pOut->
Id) +
p->nWordsFrame * (
p->nFrames-1);
877 pSims1 = Ssw_ObjSim(
p, pIn->
Id);
879 for ( i = 0; i <
p->nWordsFrame; i++ )
880 pSims1[i] = pSims0[i];
901 assert( Aig_ManRegNum(
p->pAig) > 0 );
902 assert( Aig_ManRegNum(
p->pAig) <= Aig_ManCiNum(
p->pAig) );
932 nRegs = Aig_ManRegNum(
p->pAig);
934 assert( nRegs <= Aig_ManCiNum(
p->pAig) );
935 assert( Vec_IntSize(vInit) == nRegs *
p->nWordsFrame );
959 assert( Aig_ManRegNum(
p->pAig) > 0 );
960 assert( Aig_ManRegNum(
p->pAig) < Aig_ManCiNum(
p->pAig) );
986 if (
p->pAig->nConstrs && i >= Saig_ManPoNum(
p->pAig) -
p->pAig->nConstrs )
1011 for ( f = 0; f <
p->nFrames; f++ )
1023 if ( f ==
p->nFrames - 1 )
1029p->timeSim += Abc_Clock() - clk;
1050 pSims = Ssw_ObjSim(
p, 0 );
1051 for ( i = 0; i <
p->nWordsFrame; i++ )
1052 pSims[i] = ~pSims[i];
1058 pSims = Ssw_ObjSim(
p, pObj->
Id );
1059 for ( i = 0; i <
p->nWordsFrame; i++ )
1060 pSims[i] = ~pSims[i];
1081 if ( pVisited[
p->nFrames*pObj->
Id+f] == nVisCounter )
1083 pVisited[
p->nFrames*pObj->
Id+f] = nVisCounter;
1084 if ( Saig_ObjIsPi(
p->pAig, pObj ) || Aig_ObjIsConst1(pObj) )
1086 if ( Saig_ObjIsLo(
p->pAig, pObj ) )
1094 if ( Saig_ObjIsLi(
p->pAig, pObj ) )
1100 assert( Aig_ObjIsNode(pObj) );
1132p->timeSim += Abc_Clock() - clk;
1152 memset(
p, 0,
sizeof(
Ssw_Sml_t) +
sizeof(
unsigned) * (nPref + nFrames) * nWordsFrame );
1155 p->nFrames = nPref + nFrames;
1156 p->nWordsFrame = nWordsFrame;
1157 p->nWordsTotal = (nPref + nFrames) * nWordsFrame;
1158 p->nWordsPref = nPref * nWordsFrame;
1175 memset(
p->pData, 0,
sizeof(
unsigned) * Aig_ManObjNumMax(
p->pAig) *
p->nWordsTotal );
1194 vSimInfo = Vec_PtrStart( Aig_ManObjNumMax(
p->pAig) );
1196 Vec_PtrWriteEntry( vSimInfo, i, Ssw_ObjSim(
p, i) );
1306 return p->nWordsTotal;
1323 assert( !Aig_IsComplement(pObj) );
1324 return Ssw_ObjSim(
p, pObj->
Id );
1343 int iPo, iFrame, iBit, i, k;
1356 pSims = Ssw_ObjSim(
p, pObj->
Id );
1357 for ( i =
p->nWordsPref; i < p->nWordsTotal; i++ )
1360 iFrame = i /
p->nWordsFrame;
1361 iBit = 32 * (i %
p->nWordsFrame) + Aig_WordFindFirstBit( pSims[i] );
1366 assert( iPo < Aig_ManCoNum(
p->pAig)-Aig_ManRegNum(
p->pAig) );
1367 assert( iFrame < p->nFrames );
1368 assert( iBit < 32 * p->nWordsFrame );
1371 pCex =
Abc_CexAlloc( Aig_ManRegNum(
p->pAig), Aig_ManCiNum(
p->pAig) - Aig_ManRegNum(
p->pAig), iFrame + 1 );
1373 pCex->iFrame = iFrame;
1378 pSims = Ssw_ObjSim(
p, pObj->
Id );
1379 if ( Abc_InfoHasBit( pSims, iBit ) )
1380 Abc_InfoSetBit( pCex->pData, k );
1382 for ( i = 0; i <= iFrame; i++ )
1386 pSims = Ssw_ObjSim(
p, pObj->
Id );
1387 if ( Abc_InfoHasBit( pSims, 32 *
p->nWordsFrame * i + iBit ) )
1388 Abc_InfoSetBit( pCex->pData, pCex->nRegs + pCex->nPis * i + k );
1394 Abc_Print( 1,
"Ssw_SmlGetCounterExample(): Counter-example is invalid.\n" );
#define ABC_ALLOC(type, num)
#define ABC_NAMESPACE_IMPL_START
#define ABC_NAMESPACE_IMPL_END
#define Aig_ManForEachObj(p, pObj, i)
#define Aig_ManForEachCi(p, pObj, i)
ITERATORS ///.
struct Aig_Obj_t_ Aig_Obj_t
#define Aig_ManForEachNode(p, pObj, i)
typedefABC_NAMESPACE_HEADER_START struct Aig_Man_t_ Aig_Man_t
INCLUDES ///.
#define Aig_ManForEachCo(p, pObj, i)
unsigned Aig_ManRandom(int fReset)
typedefABC_NAMESPACE_IMPL_START struct Vec_Int_t_ Vec_Int_t
DECLARATIONS ///.
#define Saig_ManForEachLiLo(p, pObjLi, pObjLo, i)
#define Saig_ManForEachLi(p, pObj, i)
#define Saig_ManForEachPo(p, pObj, i)
#define Saig_ManForEachLo(p, pObj, i)
#define Saig_ManForEachPi(p, pObj, i)
int Saig_ManVerifyCex(Aig_Man_t *pAig, Abc_Cex_t *p)
typedefABC_NAMESPACE_HEADER_START struct Ssw_Man_t_ Ssw_Man_t
INCLUDES ///.
int Ssw_SmlNodeIsZero(Ssw_Sml_t *p, Aig_Obj_t *pObj)
int Ssw_SmlNumWordsTotal(Ssw_Sml_t *p)
unsigned * Ssw_SmlSimInfo(Ssw_Sml_t *p, Aig_Obj_t *pObj)
int Ssw_SmlNodeIsZeroFrame(Ssw_Sml_t *p, Aig_Obj_t *pObj, int f)
void Ssw_SmlSavePattern0(Ssw_Man_t *p, int fInit)
void Ssw_SmlUnnormalize(Ssw_Sml_t *p)
void Ssw_SmlNodeTransferNext(Ssw_Sml_t *p, Aig_Obj_t *pOut, Aig_Obj_t *pIn, int iFrame)
void Ssw_SmlAssignRandomFrame(Ssw_Sml_t *p, Aig_Obj_t *pObj, int iFrame)
Ssw_Sml_t * Ssw_SmlStart(Aig_Man_t *pAig, int nPref, int nFrames, int nWordsFrame)
void Ssw_SmlInitialize(Ssw_Sml_t *p, int fInit)
void Ssw_SmlClean(Ssw_Sml_t *p)
int Ssw_SmlNodesCompareInFrame(Ssw_Sml_t *p, Aig_Obj_t *pObj0, Aig_Obj_t *pObj1, int iFrame0, int iFrame1)
int Ssw_SmlCountEqual(Ssw_Sml_t *p, Aig_Obj_t *pObjLi, Aig_Obj_t *pObjLo)
void Ssw_SmlReinitialize(Ssw_Sml_t *p)
void Ssw_SmlResimulateSeq(Ssw_Sml_t *p)
void Ssw_SmlSimulateOne(Ssw_Sml_t *p)
Vec_Ptr_t * Ssw_SmlSimDataPointers(Ssw_Sml_t *p)
void Ssw_SmlSavePattern1(Ssw_Man_t *p, int fInit)
int Ssw_SmlObjIsConstBit(void *p, Aig_Obj_t *pObj)
int Ssw_SmlNodeCountOnesRealVec(Ssw_Sml_t *p, Vec_Ptr_t *vObjs)
int Ssw_SmlObjsAreEqualBit(void *p, Aig_Obj_t *pObj0, Aig_Obj_t *pObj1)
int Ssw_SmlCountXorImplication(Ssw_Sml_t *p, Aig_Obj_t *pObjLi, Aig_Obj_t *pObjLo, Aig_Obj_t *pCand)
void Ssw_SmlNodeSimulate(Ssw_Sml_t *p, Aig_Obj_t *pObj, int iFrame)
int Ssw_SmlObjsAreEqualWord(Ssw_Sml_t *p, Aig_Obj_t *pObj0, Aig_Obj_t *pObj1)
void Ssw_SmlSimulateOneDyn_rec(Ssw_Sml_t *p, Aig_Obj_t *pObj, int f, int *pVisited, int nVisCounter)
void Ssw_SmlSimulateOneFrame(Ssw_Sml_t *p)
int Ssw_SmlNodeCountOnesReal(Ssw_Sml_t *p, Aig_Obj_t *pObj)
int Ssw_SmlCheckXorImplication(Ssw_Sml_t *p, Aig_Obj_t *pObjLi, Aig_Obj_t *pObjLo, Aig_Obj_t *pCand)
DECLARATIONS ///.
void Ssw_SmlObjSetWord(Ssw_Sml_t *p, Aig_Obj_t *pObj, unsigned Word, int iWord, int iFrame)
int * Ssw_SmlCheckOutput(Ssw_Sml_t *p)
void Ssw_SmlInitializeSpecial(Ssw_Sml_t *p, Vec_Int_t *vInit)
int * Ssw_SmlCheckOutputSavePattern(Ssw_Sml_t *p, Aig_Obj_t *pObjPo)
void Ssw_SmlAssignDist1(Ssw_Sml_t *p, unsigned *pPat)
Ssw_Sml_t * Ssw_SmlSimulateSeq(Aig_Man_t *pAig, int nPref, int nFrames, int nWords)
int Ssw_SmlCheckNonConstOutputs(Ssw_Sml_t *p)
void Ssw_SmlStop(Ssw_Sml_t *p)
void Ssw_SmlNodeTransferFirst(Ssw_Sml_t *p, Aig_Obj_t *pOut, Aig_Obj_t *pIn)
void Ssw_SmlAssignRandom(Ssw_Sml_t *p, Aig_Obj_t *pObj)
void Ssw_SmlObjAssignConstWord(Ssw_Sml_t *p, Aig_Obj_t *pObj, int fConst1, int iFrame, int iWord)
int Ssw_SmlNumFrames(Ssw_Sml_t *p)
void Ssw_SmlObjAssignConst(Ssw_Sml_t *p, Aig_Obj_t *pObj, int fConst1, int iFrame)
int Ssw_SmlNodeNotEquWeight(Ssw_Sml_t *p, int Left, int Right)
unsigned Ssw_SmlObjHashWord(Ssw_Sml_t *p, Aig_Obj_t *pObj)
FUNCTION DEFINITIONS ///.
Abc_Cex_t * Ssw_SmlGetCounterExample(Ssw_Sml_t *p)
Ssw_Sml_t * Ssw_SmlSimulateComb(Aig_Man_t *pAig, int nWords)
void Ssw_SmlNodeCopyFanin(Ssw_Sml_t *p, Aig_Obj_t *pObj, int iFrame)
void Ssw_SmlAssignDist1Plus(Ssw_Sml_t *p, unsigned *pPat)
int Ssw_SmlObjIsConstWord(Ssw_Sml_t *p, Aig_Obj_t *pObj)
struct Ssw_Sml_t_ Ssw_Sml_t
void Abc_CexFree(Abc_Cex_t *p)
ABC_NAMESPACE_IMPL_START Abc_Cex_t * Abc_CexAlloc(int nRegs, int nRealPis, int nFrames)
DECLARATIONS ///.
typedefABC_NAMESPACE_HEADER_START struct Abc_Cex_t_ Abc_Cex_t
INCLUDES ///.
#define Vec_IntForEachEntry(vVec, Entry, i)
MACRO DEFINITIONS ///.
typedefABC_NAMESPACE_HEADER_START struct Vec_Ptr_t_ Vec_Ptr_t
INCLUDES ///.
#define Vec_PtrForEachEntry(Type, vVec, pEntry, i)
MACRO DEFINITIONS ///.