diff options
author | Alan Mishchenko <alanmi@berkeley.edu> | 2013-07-24 11:42:37 -0700 |
---|---|---|
committer | Alan Mishchenko <alanmi@berkeley.edu> | 2013-07-24 11:42:37 -0700 |
commit | a206287b21632331eb6c433a8c1854a6baecbe40 (patch) | |
tree | a6f698294b07436f6e53436cc05e7cb43ebcb477 /src/base/io/ioReadBlif.c | |
parent | 00d023713b68fc554197efeb2c766b14ac3ec4bd (diff) | |
download | abc-a206287b21632331eb6c433a8c1854a6baecbe40.tar.gz abc-a206287b21632331eb6c433a8c1854a6baecbe40.tar.bz2 abc-a206287b21632331eb6c433a8c1854a6baecbe40.zip |
Adding support for input slew and output capacitance to timer and gate-sizer (bug fix).
Diffstat (limited to 'src/base/io/ioReadBlif.c')
-rw-r--r-- | src/base/io/ioReadBlif.c | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/src/base/io/ioReadBlif.c b/src/base/io/ioReadBlif.c index aeb1ec3e..e9e5b329 100644 --- a/src/base/io/ioReadBlif.c +++ b/src/base/io/ioReadBlif.c @@ -1001,6 +1001,15 @@ int Io_ReadBlifNetworkDefaultOutputRequired( Io_ReadBlif_t * p, Vec_Ptr_t * vTok SeeAlso [] ***********************************************************************/ +int Io_ReadFindCiId( Abc_Ntk_t * pNtk, Abc_Obj_t * pObj ) +{ + Abc_Obj_t * pTemp; + int i; + Abc_NtkForEachCi( pNtk, pTemp, i ) + if ( pTemp == pObj ) + return i; + return -1; +} int Io_ReadBlifNetworkInputDrive( Io_ReadBlif_t * p, Vec_Ptr_t * vTokens ) { Abc_Obj_t * pNet; @@ -1034,7 +1043,7 @@ int Io_ReadBlifNetworkInputDrive( Io_ReadBlif_t * p, Vec_Ptr_t * vTokens ) return 1; } // set the arrival time - Abc_NtkTimeSetInputDrive( p->pNtkCur, Abc_NtkObj(p->pNtkCur, Abc_ObjFanin0(pNet)->Id)->iTemp, (float)TimeRise, (float)TimeFall ); + Abc_NtkTimeSetInputDrive( p->pNtkCur, Io_ReadFindCiId(p->pNtkCur, Abc_NtkObj(p->pNtkCur, Abc_ObjFanin0(pNet)->Id)), (float)TimeRise, (float)TimeFall ); return 0; } @@ -1049,6 +1058,15 @@ int Io_ReadBlifNetworkInputDrive( Io_ReadBlif_t * p, Vec_Ptr_t * vTokens ) SeeAlso [] ***********************************************************************/ +int Io_ReadFindCoId( Abc_Ntk_t * pNtk, Abc_Obj_t * pObj ) +{ + Abc_Obj_t * pTemp; + int i; + Abc_NtkForEachPo( pNtk, pTemp, i ) + if ( pTemp == pObj ) + return i; + return -1; +} int Io_ReadBlifNetworkOutputLoad( Io_ReadBlif_t * p, Vec_Ptr_t * vTokens ) { Abc_Obj_t * pNet; @@ -1082,7 +1100,7 @@ int Io_ReadBlifNetworkOutputLoad( Io_ReadBlif_t * p, Vec_Ptr_t * vTokens ) return 1; } // set the arrival time - Abc_NtkTimeSetOutputLoad( p->pNtkCur, Abc_NtkObj(p->pNtkCur, Abc_ObjFanout0(pNet)->Id)->iTemp, (float)TimeRise, (float)TimeFall ); + Abc_NtkTimeSetOutputLoad( p->pNtkCur, Io_ReadFindCoId(p->pNtkCur, Abc_NtkObj(p->pNtkCur, Abc_ObjFanout0(pNet)->Id)), (float)TimeRise, (float)TimeFall ); return 0; } |