void Abc_NtkTimeSetDefaultRequired( Abc_Ntk_t * pNtk, float Rise, float Fall ) { if ( Rise == 0.0 && Fall == 0.0 ) return; if ( pNtk->pManTime == NULL ) pNtk->pManTime = Abc_ManTimeStart(); pNtk->pManTime->tReqDef.Rise = Rise; pNtk->pManTime->tReqDef.Fall = Fall; }
/**Function************************************************************* Synopsis [Sets the default arrival time for the network.] Description [] SideEffects [] SeeAlso [] ***********************************************************************/ void Abc_NtkTimeSetDefaultArrival( Abc_Ntk_t * pNtk, float Rise, float Fall ) { if ( Rise == 0.0 && Fall == 0.0 ) return; if ( pNtk->pManTime == NULL ) pNtk->pManTime = Abc_ManTimeStart(); pNtk->pManTime->tArrDef.Rise = Rise; pNtk->pManTime->tArrDef.Fall = Fall; pNtk->pManTime->tArrDef.Worst = ABC_MAX( Rise, Fall ); }
void Abc_NtkTimeSetRequired( Abc_Ntk_t * pNtk, int ObjId, float Rise, float Fall ) { Vec_Ptr_t * vTimes; Abc_Time_t * pTime; if ( pNtk->pManTime == NULL ) pNtk->pManTime = Abc_ManTimeStart(); if ( pNtk->pManTime->tReqDef.Rise == Rise && pNtk->pManTime->tReqDef.Fall == Fall ) return; Abc_ManTimeExpand( pNtk->pManTime, ObjId + 1, 1 ); // set the required time vTimes = pNtk->pManTime->vReqs; pTime = (Abc_Time_t *)vTimes->pArray[ObjId]; pTime->Rise = Rise; pTime->Fall = Fall; }
void Abc_NtkTimeSetDefaultOutputLoad( Abc_Ntk_t * pNtk, float Rise, float Fall ) { if ( Rise == 0.0 && Fall == 0.0 ) return; if ( pNtk->pManTime == NULL ) pNtk->pManTime = Abc_ManTimeStart(); pNtk->pManTime->tOutLoadDef.Rise = Rise; pNtk->pManTime->tOutLoadDef.Fall = Fall; if ( pNtk->pManTime->tOutLoad != NULL ) { int i; for ( i = 0; i < Abc_NtkCoNum(pNtk); i++ ) if ( pNtk->pManTime->tOutLoad[i].Rise == 0 && pNtk->pManTime->tOutLoad[i].Fall == 0 ) pNtk->pManTime->tOutLoad[i] = pNtk->pManTime->tOutLoadDef; } }
/**Function************************************************************* Synopsis [Sets the default arrival time for the network.] Description [] SideEffects [] SeeAlso [] ***********************************************************************/ void Abc_NtkTimeSetDefaultInputDrive( Abc_Ntk_t * pNtk, float Rise, float Fall ) { if ( Rise == 0.0 && Fall == 0.0 ) return; if ( pNtk->pManTime == NULL ) pNtk->pManTime = Abc_ManTimeStart(); pNtk->pManTime->tInDriveDef.Rise = Rise; pNtk->pManTime->tInDriveDef.Fall = Fall; if ( pNtk->pManTime->tInDrive != NULL ) { int i; for ( i = 0; i < Abc_NtkCiNum(pNtk); i++ ) if ( pNtk->pManTime->tInDrive[i].Rise == 0 && pNtk->pManTime->tInDrive[i].Fall == 0 ) pNtk->pManTime->tInDrive[i] = pNtk->pManTime->tInDriveDef; } }
/**Function************************************************************* Synopsis [Sets the arrival time for an object.] Description [] SideEffects [] SeeAlso [] ***********************************************************************/ void Abc_NtkTimeSetArrival( Abc_Ntk_t * pNtk, int ObjId, float Rise, float Fall ) { Vec_Ptr_t * vTimes; Abc_Time_t * pTime; if ( pNtk->pManTime == NULL ) pNtk->pManTime = Abc_ManTimeStart(); if ( pNtk->pManTime->tArrDef.Rise == Rise && pNtk->pManTime->tArrDef.Fall == Fall ) return; Abc_ManTimeExpand( pNtk->pManTime, ObjId + 1, 1 ); // set the arrival time vTimes = pNtk->pManTime->vArrs; pTime = vTimes->pArray[ObjId]; pTime->Rise = Rise; pTime->Fall = Rise; pTime->Worst = ABC_MAX( Rise, Fall ); }
void Abc_NtkTimeSetOutputLoad( Abc_Ntk_t * pNtk, int PoNum, float Rise, float Fall ) { Abc_Time_t * pTime; assert( PoNum >= 0 && PoNum < Abc_NtkCoNum(pNtk) ); if ( pNtk->pManTime == NULL ) pNtk->pManTime = Abc_ManTimeStart(); if ( pNtk->pManTime->tOutLoadDef.Rise == Rise && pNtk->pManTime->tOutLoadDef.Fall == Fall ) return; if ( pNtk->pManTime->tOutLoad == NULL ) { int i; pNtk->pManTime->tOutLoad = ABC_CALLOC( Abc_Time_t, Abc_NtkCoNum(pNtk) ); for ( i = 0; i < Abc_NtkCoNum(pNtk); i++ ) pNtk->pManTime->tOutLoad[i] = pNtk->pManTime->tOutLoadDef; } pTime = pNtk->pManTime->tOutLoad + PoNum; pTime->Rise = Rise; pTime->Fall = Fall; }
/**Function************************************************************* Synopsis [Sets the arrival time for an object.] Description [] SideEffects [] SeeAlso [] ***********************************************************************/ void Abc_NtkTimeSetInputDrive( Abc_Ntk_t * pNtk, int PiNum, float Rise, float Fall ) { Abc_Time_t * pTime; assert( PiNum >= 0 && PiNum < Abc_NtkCiNum(pNtk) ); if ( pNtk->pManTime == NULL ) pNtk->pManTime = Abc_ManTimeStart(); if ( pNtk->pManTime->tInDriveDef.Rise == Rise && pNtk->pManTime->tInDriveDef.Fall == Fall ) return; if ( pNtk->pManTime->tInDrive == NULL ) { int i; pNtk->pManTime->tInDrive = ABC_CALLOC( Abc_Time_t, Abc_NtkCiNum(pNtk) ); for ( i = 0; i < Abc_NtkCiNum(pNtk); i++ ) pNtk->pManTime->tInDrive[i] = pNtk->pManTime->tInDriveDef; } pTime = pNtk->pManTime->tInDrive + PiNum; pTime->Rise = Rise; pTime->Fall = Fall; }