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)