diff options
author | Alan Mishchenko <alanmi@berkeley.edu> | 2014-02-06 12:22:30 -0800 |
---|---|---|
committer | Alan Mishchenko <alanmi@berkeley.edu> | 2014-02-06 12:22:30 -0800 |
commit | 48912a22474688302c4ed62133111740061f58bb (patch) | |
tree | 3900a5030532a3d7630459ea1272a1ce3a784a79 /src/map/scl/sclLiberty.c | |
parent | b910cba3e2e065d444d4a7b1bcbf81227417fc11 (diff) | |
download | abc-48912a22474688302c4ed62133111740061f58bb.tar.gz abc-48912a22474688302c4ed62133111740061f58bb.tar.bz2 abc-48912a22474688302c4ed62133111740061f58bb.zip |
Fixing Liberty parser to handle 'scalar' delay/slew tables.
Diffstat (limited to 'src/map/scl/sclLiberty.c')
-rw-r--r-- | src/map/scl/sclLiberty.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/map/scl/sclLiberty.c b/src/map/scl/sclLiberty.c index e128b515..36d01c1b 100644 --- a/src/map/scl/sclLiberty.c +++ b/src/map/scl/sclLiberty.c @@ -1030,6 +1030,23 @@ int Scl_LibertyScanTable( Scl_Tree_t * p, Vec_Ptr_t * vOut, Scl_Item_t * pTiming Vec_PtrPush( vOut, vInd2 ); Vec_PtrPush( vOut, vValues ); } + else if ( !strcmp(pTempl, "scalar") ) + { + Scl_ItemForEachChild( p, pTable, pItem ) + if ( !Scl_LibertyCompare(p, pItem->Key, "values") ) + { + assert(vValues == NULL); + vValues = Scl_LibertyReadFloatVec( Scl_LibertyReadString(p, pItem->Head) ); + assert( Vec_FltSize(vValues) == 1 ); + // write entries + Vec_PtrPush( vOut, Vec_IntStart(1) ); + Vec_PtrPush( vOut, Vec_IntStart(1) ); + Vec_PtrPush( vOut, vValues ); + break; + } + else + { printf( "Cannot read \"scalar\" template\n" ); return 0; } + } else { // fetch the template |