summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoralanminko <37236958+alanminko@users.noreply.github.com>2022-04-04 12:55:49 -0700
committerGitHub <noreply@github.com>2022-04-04 12:55:49 -0700
commit547de09670ca4728abf52491455ad26c0823347a (patch)
tree4b16b8b6d58185d8d3b11fa1ba43f8163e9f6f58
parent5405003a5e99758988507cfb0f9ae4341c0025ff (diff)
parentf288c4d7f6e97146bdc4de48f14168cbce9d3c96 (diff)
downloadabc-547de09670ca4728abf52491455ad26c0823347a.tar.gz
abc-547de09670ca4728abf52491455ad26c0823347a.tar.bz2
abc-547de09670ca4728abf52491455ad26c0823347a.zip
Merge pull request #145 from QuantamHD/fix_internal_pins
Fixes internal pin parsing error in ASAP7 liberty file.
-rw-r--r--src/map/scl/sclLiberty.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/map/scl/sclLiberty.c b/src/map/scl/sclLiberty.c
index 4b6adab4..49b5c237 100644
--- a/src/map/scl/sclLiberty.c
+++ b/src/map/scl/sclLiberty.c
@@ -955,6 +955,8 @@ int Scl_LibertyReadPinDirection( Scl_Tree_t * p, Scl_Item_t * pPin )
return 0;
if ( !strcmp(pToken, "output") )
return 1;
+ if ( !strcmp(pToken, "internal") )
+ return 2;
break;
}
return -1;
@@ -1525,7 +1527,7 @@ Vec_Str_t * Scl_LibertyReadSclStr( Scl_Tree_t * p, int fVerbose, int fVeryVerbos
float CapOne, CapRise, CapFall;
if ( Scl_LibertyReadPinFormula(p, pPin) != NULL ) // skip output pin
continue;
- assert( Scl_LibertyReadPinDirection(p, pPin) == 0 );
+ assert( Scl_LibertyReadPinDirection(p, pPin) == 0 || Scl_LibertyReadPinDirection(p, pPin) == 2);
pName = Scl_LibertyReadString(p, pPin->Head);
Vec_PtrPush( vNameIns, Abc_UtilStrsav(pName) );
Vec_StrPutS_( vOut, pName );
@@ -1546,6 +1548,8 @@ Vec_Str_t * Scl_LibertyReadSclStr( Scl_Tree_t * p, int fVerbose, int fVeryVerbos
{
if ( !Scl_LibertyReadPinFormula(p, pPin) ) // skip input pin
continue;
+ if (Scl_LibertyReadPinDirection(p, pPin) == 2) // skip internal pin
+ continue;
assert( Scl_LibertyReadPinDirection(p, pPin) == 1 );
pName = Scl_LibertyReadString(p, pPin->Head);
Vec_StrPutS_( vOut, pName );