ABC: A System for Sequential Synthesis and Verification
 
Loading...
Searching...
No Matches
retLvalue.c File Reference
#include "retInt.h"
Include dependency graph for retLvalue.c:

Go to the source code of this file.

Enumerations

enum  { ABC_RET_UPDATE_FAIL , ABC_RET_UPDATE_NO , ABC_RET_UPDATE_YES }
 DECLARATIONS ///. More...
 

Functions

int Abc_NtkRetimeLValue (Abc_Ntk_t *pNtk, int nIterLimit, int fVerbose)
 FUNCTION DEFINITIONS ///.
 
void Abc_ManCollectLatches_rec (Abc_Obj_t *pObj, Vec_Ptr_t *vLatches)
 

Enumeration Type Documentation

◆ anonymous enum

anonymous enum

DECLARATIONS ///.

CFile****************************************************************

FileName [retLvalue.c]

SystemName [ABC: Logic synthesis and verification system.]

PackageName [Retiming package.]

Synopsis [Implementation of Pan's retiming algorithm.]

Author [Alan Mishchenko]

Affiliation [UC Berkeley]

Date [Ver. 1.0. Started - Oct 31, 2006.]

Revision [

Id
retLvalue.c,v 1.00 2006/10/31 00:00:00 alanmi Exp

]

Enumerator
ABC_RET_UPDATE_FAIL 
ABC_RET_UPDATE_NO 
ABC_RET_UPDATE_YES 

Definition at line 31 of file retLvalue.c.

@ ABC_RET_UPDATE_FAIL
Definition retLvalue.c:31
@ ABC_RET_UPDATE_YES
Definition retLvalue.c:31
@ ABC_RET_UPDATE_NO
Definition retLvalue.c:31

Function Documentation

◆ Abc_ManCollectLatches_rec()

void Abc_ManCollectLatches_rec ( Abc_Obj_t * pObj,
Vec_Ptr_t * vLatches )

Function*************************************************************

Synopsis [Collects latches in the topological order.]

Description []

SideEffects []

SeeAlso []

Definition at line 309 of file retLvalue.c.

310{
311 Abc_Obj_t * pDriver;
312 if ( !Abc_ObjIsLatch(pObj) )
313 return;
314 // skip already collected latches
315 if ( Abc_NodeIsTravIdCurrent(pObj) )
316 return;
317 Abc_NodeSetTravIdCurrent(pObj);
318 // get the driver node feeding into the latch
319 pDriver = Abc_ObjFanin0(Abc_ObjFanin0(pObj));
320 // call recursively if the driver looks like a latch output
321 if ( Abc_ObjIsBo(pDriver) )
322 Abc_ManCollectLatches_rec( Abc_ObjFanin0(pDriver), vLatches );
323 // collect the latch
324 Vec_PtrPush( vLatches, pObj );
325}
struct Abc_Obj_t_ Abc_Obj_t
Definition abc.h:116
void Abc_ManCollectLatches_rec(Abc_Obj_t *pObj, Vec_Ptr_t *vLatches)
Definition retLvalue.c:309
Here is the call graph for this function:
Here is the caller graph for this function:

◆ Abc_NtkRetimeLValue()

int Abc_NtkRetimeLValue ( Abc_Ntk_t * pNtk,
int nIterLimit,
int fVerbose )

FUNCTION DEFINITIONS ///.

Function*************************************************************

Synopsis [Implements Pan's retiming algorithm.]

Description []

SideEffects []

SeeAlso []

Definition at line 61 of file retLvalue.c.

62{
63 Vec_Int_t * vLags;
64 int nLatches = Abc_NtkLatchNum(pNtk);
65 assert( Abc_NtkIsLogic( pNtk ) );
66 // get the lags
67 vLags = Abc_NtkRetimeGetLags( pNtk, nIterLimit, fVerbose );
68 // compute the retiming
69// Abc_NtkRetimeUsingLags( pNtk, vLags, fVerbose );
70 Vec_IntFree( vLags );
71 // fix the COs
72// Abc_NtkLogicMakeSimpleCos( pNtk, 0 );
73 // check for correctness
74 if ( !Abc_NtkCheck( pNtk ) )
75 fprintf( stdout, "Abc_NtkRetimeLValue(): Network check has failed.\n" );
76 // return the number of latches saved
77 return nLatches - Abc_NtkLatchNum(pNtk);
78}
ABC_DLL int Abc_NtkCheck(Abc_Ntk_t *pNtk)
FUNCTION DEFINITIONS ///.
Definition abcCheck.c:64
typedefABC_NAMESPACE_IMPL_START struct Vec_Int_t_ Vec_Int_t
DECLARATIONS ///.
Definition bblif.c:37
#define assert(ex)
Definition util_old.h:213
Here is the call graph for this function:
Here is the caller graph for this function: