mirror of https://github.com/YosysHQ/abc.git
Adding support for user-specified wire delays in &if.
This commit is contained in:
parent
712f46ca23
commit
62487de97b
|
|
@ -36980,8 +36980,24 @@ int Abc_CommandAbc9If( Abc_Frame_t * pAbc, int argc, char ** argv )
|
|||
return 1;
|
||||
}
|
||||
|
||||
// add wire delay to LUT library delays
|
||||
if ( pPars->WireDelay > 0 && pPars->pLutLib )
|
||||
{
|
||||
int i, k;
|
||||
for ( i = 0; i <= pPars->pLutLib->LutMax; i++ )
|
||||
for ( k = 0; k <= i; k++ )
|
||||
pPars->pLutLib->pLutDelays[i][k] += pPars->WireDelay;
|
||||
}
|
||||
// perform mapping
|
||||
pNew = Gia_ManPerformMapping( pAbc->pGia, pPars );
|
||||
// subtract wire delay from LUT library delays
|
||||
if ( pPars->WireDelay > 0 && pPars->pLutLib )
|
||||
{
|
||||
int i, k;
|
||||
for ( i = 0; i <= pPars->pLutLib->LutMax; i++ )
|
||||
for ( k = 0; k <= i; k++ )
|
||||
pPars->pLutLib->pLutDelays[i][k] -= pPars->WireDelay;
|
||||
}
|
||||
if ( pNew == NULL )
|
||||
{
|
||||
Abc_Print( -1, "Abc_CommandAbc9If(): Mapping of GIA has failed.\n" );
|
||||
|
|
|
|||
|
|
@ -217,7 +217,7 @@ void If_ObjPerformMappingAnd( If_Man_t * p, If_Obj_t * pObj, int Mode, int fPrep
|
|||
assert( pCut->Delay != -1 );
|
||||
// assert( pCut->Delay <= pObj->Required + p->fEpsilon );
|
||||
if ( pCut->Delay > pObj->Required + 2*p->fEpsilon )
|
||||
Abc_Print( 1, "If_ObjPerformMappingAnd(): Warning! Delay of node %d (%f) exceeds the required times (%f).\n",
|
||||
Abc_Print( 1, "If_ObjPerformMappingAnd(): Warning! Node with ID %d has delay (%f) exceeding the required times (%f).\n",
|
||||
pObj->Id, pCut->Delay, pObj->Required + p->fEpsilon );
|
||||
pCut->Area = (Mode == 2)? If_CutAreaDerefed( p, pCut ) : If_CutAreaFlow( p, pCut );
|
||||
if ( p->pPars->fEdge )
|
||||
|
|
|
|||
Loading…
Reference in New Issue