From faef4b182faa55fb22a9f128a621b6a79f72fb96 Mon Sep 17 00:00:00 2001 From: Jean-Paul Chaput Date: Sun, 10 May 2020 11:47:30 +0200 Subject: [PATCH] Manage all devices in karakaze/AnalogDesign.readParameters(). * Change: In Karakaze/analogdesign/AnalogDesign.readParameters(), only Transistor and Capacitors where manageds. So when a devices in the dspec was from another type, it did issue an error. Now cleanly skip unsupported (yet) devices. --- karakaze/python/analogdesign.py | 48 ++++++++++++++++++--------------- 1 file changed, 27 insertions(+), 21 deletions(-) diff --git a/karakaze/python/analogdesign.py b/karakaze/python/analogdesign.py index 6d990a24..c2b038c7 100644 --- a/karakaze/python/analogdesign.py +++ b/karakaze/python/analogdesign.py @@ -357,27 +357,33 @@ class AnalogDesign ( object ): self.parameters.read( path ); for dspec in self.devicesSpecs: - if dspec[0] == MultiCapacitor: - Cname = dspec[1] - Cparameters = self.parameters.getCapacitor( Cname ) - if not Cparameters: - raise Error( 3, [ 'AnalogDesign.readParameters(): Missing parameters for capacity \"%s\".' % Cname ] ) - continue - dspec[4] = Cparameters.C * 1e+12 - trace( 110, '\t- \"%s\" : C:%fpF\n' % (Cname ,dspec[4]) ) - else: - Tname = dspec[1].split('_')[0] - Tparameters = self.parameters.getTransistor( Tname ) - if not Tparameters: - raise Error( 3, [ 'AnalogDesign.readParameters(): Missing parameters for \"%s\".' % Tname ] ) - continue - dspec[4] = toLength( Tparameters.W ) - dspec[5] = toLength( Tparameters.L ) - dspec[6] = Tparameters.M - trace( 110, '\t- \"%s\" : W:%f L:%f M:%d\n' % (Tname - ,dspec[4] - ,dspec[5] - ,dspec[6]) ) + if issubclass(dspec[0],TransistorFamily): + Tname = dspec[1].split('_')[0] + Tparameters = self.parameters.getTransistor( Tname ) + if not Tparameters: + raise Error( 3, [ 'AnalogDesign.readParameters(): Missing parameters for \"%s\".' % Tname ] ) + continue + dspec[4] = toLength( Tparameters.W ) + dspec[5] = toLength( Tparameters.L ) + dspec[6] = Tparameters.M + trace( 110, '\t- \"%s\" : W:%f L:%f M:%d\n' % (Tname + ,dspec[4] + ,dspec[5] + ,dspec[6]) ) + elif issubclass(dspec[0],CapacitorFamily): + Cname = dspec[1] + Cparameters = self.parameters.getCapacitor( Cname ) + if not Cparameters: + raise Error( 3, [ 'AnalogDesign.readParameters(): Missing parameters for capacity \"%s\".' % Cname ] ) + continue + dspec[4] = Cparameters.C * 1e+12 + trace( 110, '\t- \"%s\" : C:%fpF\n' % (Cname ,dspec[4]) ) + elif issubclass(dspec[0],ResistorFamily): + print WarningMessage( 'Resistor devices are not supported yet by Oceane parser (instance:"{}").'.format(dspec[1]) ) + elif dspec[0] == Cell: + pass + else: + print WarningMessage( 'Unsupported analog device type {0} (instance:"{1}").'.format(dspec[0],dspec[1]) ) trace( 110, '-,' ) return