summaryrefslogtreecommitdiffstats
path: root/src/aig/ssw/sswSim.c
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2011-07-21 17:55:44 +0700
committerAlan Mishchenko <alanmi@berkeley.edu>2011-07-21 17:55:44 +0700
commit9a2a0f2912e296e866ba220dce6ccf25018cf29b (patch)
tree54ea0dae7c4d13a67db0a7b509e738d1e50acb17 /src/aig/ssw/sswSim.c
parent515835579ede817bcab09ee67b32ff4f7acaae32 (diff)
downloadabc-9a2a0f2912e296e866ba220dce6ccf25018cf29b.tar.gz
abc-9a2a0f2912e296e866ba220dce6ccf25018cf29b.tar.bz2
abc-9a2a0f2912e296e866ba220dce6ccf25018cf29b.zip
Changes to enable smarter simulation.
Diffstat (limited to 'src/aig/ssw/sswSim.c')
-rw-r--r--src/aig/ssw/sswSim.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/aig/ssw/sswSim.c b/src/aig/ssw/sswSim.c
index 37fc16af..daee24ec 100644
--- a/src/aig/ssw/sswSim.c
+++ b/src/aig/ssw/sswSim.c
@@ -928,11 +928,11 @@ void Ssw_SmlInitialize( Ssw_Sml_t * p, int fInit )
void Ssw_SmlInitializeSpecial( Ssw_Sml_t * p, Vec_Int_t * vInit )
{
Aig_Obj_t * pObj;
- int Entry, i, k, nRegs;
+ int Entry, i, nRegs;
nRegs = Aig_ManRegNum(p->pAig);
assert( nRegs > 0 );
assert( nRegs <= Aig_ManPiNum(p->pAig) );
- assert( Vec_IntSize(vInit) == nRegs * p->nFrames );
+ assert( Vec_IntSize(vInit) == nRegs * p->nWordsFrame );
// assign random info for primary inputs
Saig_ManForEachPi( p->pAig, pObj, i )
Ssw_SmlAssignRandom( p, pObj );
@@ -982,8 +982,12 @@ int Ssw_SmlCheckNonConstOutputs( Ssw_Sml_t * p )
Aig_Obj_t * pObj;
int i;
Saig_ManForEachPo( p->pAig, pObj, i )
+ {
+ if ( p->pAig->nConstrs && i >= Saig_ManPoNum(p->pAig) - p->pAig->nConstrs )
+ return 0;
if ( !Ssw_SmlNodeIsZero(p, pObj) )
return 1;
+ }
return 0;
}