mirror of https://github.com/YosysHQ/abc.git
Integrated buffering and sizing.
This commit is contained in:
parent
6e2ee1d30a
commit
118cb03be4
|
|
@ -355,7 +355,7 @@ void Abc_SclBufSize( Bus_Man_t * p )
|
|||
printf( "Node %7d : ", i );
|
||||
printf( "%12s ", pCellNew->pName );
|
||||
printf( "(%2d/%2d) ", pCellNew->Order, pCellNew->nGates );
|
||||
printf( "gain =%5.2f ", Load / SC_CellPinCapAve(pCellNew) );
|
||||
printf( "gain =%5d ", (int)(100.0 * Load / SC_CellPinCapAve(pCellNew)) );
|
||||
printf( "dept =%7.0f ps ", SC_LibTimePs(p->pLib, Dept) );
|
||||
printf( "\n" );
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1092,19 +1092,18 @@ void Abc_SclPrintCells( SC_Lib * p, float Slew, float Gain )
|
|||
SC_RingForEachCell( pRepr, pCell, i )
|
||||
{
|
||||
Abc_SclComputeParametersCell( p, pCell, Slew, &ED, &PD );
|
||||
printf( " %3d ", i+1 );
|
||||
printf( "%s", pCell->fSkip ? "s" : " " );
|
||||
printf( " %3d ", i+1 );
|
||||
printf( "%s", pCell->fSkip ? "s" : " " );
|
||||
printf( " : " );
|
||||
printf( "%-*s ", nLength, pCell->pName );
|
||||
printf( "%2d ", pCell->drive_strength );
|
||||
printf( "A =%8.2f ", pCell->area );
|
||||
printf( "D =%6.0f ps ", 0.01 * ED * Gain + PD );
|
||||
printf( "ED =%6.0f ps ", ED );
|
||||
printf( "PD =%6.0f ps ", PD );
|
||||
printf( "C =%5.1f ff ", SC_CellPinCapAve(pCell) );
|
||||
printf( "Lm =%5.1f ff ", 0.01 * Gain * SC_CellPinCapAve(pCell) );
|
||||
// printf( "MaxS =%5.1f ps ", SC_CellPin(pCell, pCell->n_inputs)->max_out_slew );
|
||||
printf( "Lm2 =%5.0f ff ", SC_CellPin(pCell, pCell->n_inputs)->max_out_cap );
|
||||
printf( "%-*s ", nLength, pCell->pName );
|
||||
printf( "%2d ", pCell->drive_strength );
|
||||
printf( "A =%8.2f ", pCell->area );
|
||||
printf( "D =%6.0f ps ", 0.01 * ED * Gain + PD );
|
||||
printf( "ED =%6.0f ps ", ED );
|
||||
printf( "PD =%6.0f ps ", PD );
|
||||
printf( "C =%5.1f ff ", SC_CellPinCapAve(pCell) );
|
||||
printf( "Cm =%5.0f ff ", SC_CellPin(pCell, pCell->n_inputs)->max_out_cap );
|
||||
printf( "Sm =%5.1f ps ", SC_CellPin(pCell, pCell->n_inputs)->max_out_slew );
|
||||
printf( "\n" );
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -121,7 +121,7 @@ static inline void Abc_SclTimeNodePrint( SC_Man * p, Abc_Obj_t * pObj, int fRise
|
|||
printf( "Cin =%4.0f ff ", pCell ? SC_CellPinCapAve(pCell) : 0.0 );
|
||||
printf( "Cout =%5.0f ff ", Abc_SclObjLoadFf(p, pObj, fRise >= 0 ? fRise : 0 ) );
|
||||
printf( "Cmax =%5.0f ff ", pCell ? SC_CellPin(pCell, pCell->n_inputs)->max_out_cap : 0.0 );
|
||||
printf( "G =%5.1f ", pCell ? Abc_SclObjLoadAve(p, pObj) / SC_CellPinCap(pCell, 0) : 0.0 );
|
||||
printf( "G =%5d ", pCell ? (int)(100.0 * Abc_SclObjLoadAve(p, pObj) / SC_CellPinCapAve(pCell)) : 0 );
|
||||
printf( "SL =%5.1f ps", Abc_SclObjSlackPs(p, pObj, p->MaxDelay0) );
|
||||
printf( "\n" );
|
||||
}
|
||||
|
|
@ -138,10 +138,8 @@ void Abc_SclTimeNtkPrint( SC_Man * p, int fShowAll, int fPrintPath )
|
|||
printf( "Min = %5.1f %% ", 100.0 * Abc_SclCountMinSize(p->pLib, p->pNtk, 0) / Abc_NtkNodeNum(p->pNtk) );
|
||||
printf( "Area = %12.2f ", Abc_SclGetTotalArea( p ) );
|
||||
printf( "Delay = %8.2f ps ", maxDelay );
|
||||
printf( "Min = %5.1f %%\n", 100.0 * Abc_SclCountNearCriticalNodes(p) / Abc_NtkNodeNum(p->pNtk) );
|
||||
if ( !fPrintPath )
|
||||
return;
|
||||
|
||||
printf( "Min = %5.1f %% ", 100.0 * Abc_SclCountNearCriticalNodes(p) / Abc_NtkNodeNum(p->pNtk) );
|
||||
printf( " \n" );
|
||||
if ( fShowAll )
|
||||
{
|
||||
// printf( "Timing information for all nodes: \n" );
|
||||
|
|
@ -154,7 +152,7 @@ void Abc_SclTimeNtkPrint( SC_Man * p, int fShowAll, int fPrintPath )
|
|||
if ( Abc_ObjFaninNum(pObj) > 0 )
|
||||
Abc_SclTimeNodePrint( p, pObj, -1, nLength, maxDelay );
|
||||
}
|
||||
else
|
||||
if ( fPrintPath )
|
||||
{
|
||||
// printf( "Critical path: \n" );
|
||||
// find the longest cell name
|
||||
|
|
|
|||
Loading…
Reference in New Issue