Modified the foundry_install script to use CDL for annotating port
order---This was not being done when the CDL was marked as not to
be converted directly to SPICE.
diff --git a/VERSION b/VERSION
index 77a7294..b3206bd 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-1.0.360
+1.0.361
diff --git a/common/foundry_install.py b/common/foundry_install.py
index cb93cda..231c316 100755
--- a/common/foundry_install.py
+++ b/common/foundry_install.py
@@ -2152,6 +2152,7 @@
destdir = targetdir + cdl_reflib + 'spi'
srcdir = targetdir + gds_reflib + 'gds'
lefdir = targetdir + lef_reflib + 'lef'
+ cdldir = targetdir + cdl_reflib + 'cdl'
os.makedirs(destdir, exist_ok=True)
# For each library, create the library subdirectory
@@ -2165,14 +2166,17 @@
destlibdir = destdir + '/' + destlib
srclibdir = srcdir + '/' + destlib
leflibdir = lefdir + '/' + destlib
+ cdllibdir = cdldir + '/' + destlib
else:
destdir = targetdir + cdl_reflib + destlib + '/spice'
srcdir = targetdir + gds_reflib + destlib + '/gds'
lefdir = targetdir + lef_reflib + destlib + '/lef'
+ cdldir = targetdir + cdl_reflib + destlib + '/cdl'
destlibdir = destdir
srclibdir = srcdir
leflibdir = lefdir
+ cdllibdir = cdldir
os.makedirs(destlibdir, exist_ok=True)
@@ -2201,6 +2205,15 @@
llist = glob.glob(leflibdir + '/*.lef')
llist = natural_sort.natural_sort(llist)
+ if have_cdl and no_cdl_convert:
+ # CDL is not being converted directly to SPICE but it exists,
+ # and being the only source of pin order, it should be used
+ # for pin order annotation.
+ allcdllibname = cdllibdir + '/' + destlib + '.cdl'
+ if not os.path.isfile(allcdllibname):
+ clist = glob.glob(cdllibdir + '/*.cdl')
+ clist = natural_sort.natural_sort(clist)
+
print('Creating magic generation script to generate SPICE library.')
with open(destlibdir + '/generate_magic.tcl', 'w') as ofile:
print('#!/usr/bin/env wish', file=ofile)
@@ -2232,6 +2245,14 @@
else:
print('lef read ' + allleflibname, file=ofile)
+ if have_cdl and no_cdl_convert:
+ if not os.path.isfile(allcdllibname):
+ # Annotate the cells with pin order from the CDL files
+ for cdlfile in clist:
+ print('catch {readspice ' + cdlfile + '}', file=ofile)
+ else:
+ print('catch {readspice ' + allcdllibname + '}', file=ofile)
+
# Load first file and remove the (UNNAMED) cell
if not os.path.isfile(allgdslibname):
print('load ' + os.path.splitext(glist[0])[0], file=ofile)