def bigtest( self): """Create layout instances for comprehensive testing, such as DRC or regression testing. """ i = 0 x = 0 y = 0 for master in [ "V0", "V1", "ndcont", "pdcont", "pcont"]: for xCnt in range( 10): for yCnt in range( 10): for origin in [ "centerCenter", "lowerCenter", "lowerLeft", "centerLeft"]: param = ParamArray( xCnt = xCnt, yCnt = yCnt, origin = origin, ) inst = Instance(("%s" % master), param, None, ("I%d" % i)) inst.setOrigin( Point( x, y)) i += 1 if (i % 20): x += 20 else: x = 0 y += 20 print("Total number of instances created: %d" % i) self.save()
def bigtest( self): """Create layout instances for comprehensive testing, such as DRC or regression testing. """ i = 0 x = 0 y = 0 for w in [ 0.09, 2.0]: for l in [ 0.05, 1.0]: for fingers in [ 1, 2]: for diffContactLeftCov in [ 0.0, 0.33, 1.0]: for gateContactLeftCov in [ 0.0, 0.33, 1.0]: for diffContactCenterCov in [ 0.0, 0.33, 1.0]: for gateContactCenterCov in [ 0.0, 0.33, 1.0]: for diffContactRightCov in [ 0.0, 0.33, 1.0]: for gateContactRightCov in [ 0.0, 0.33, 1.0]: param = ParamArray( w = w, l = l, fingers = fingers, diffContactLeft = (not diffContactLeftCov), diffContactLeftCov = diffContactLeftCov, gateContactLeft = (not gateContactLeftCov), gateContactLeftCov = gateContactLeftCov, diffContactCenter = (not diffContactCenterCov), diffContactCenterCov = diffContactCenterCov, gateContactCenter = (not gateContactCenterCov), gateContactCenterCov = gateContactCenterCov, diffContactRight = (not diffContactRightCov), diffContactRightCov = diffContactRightCov, gateContactRight = (not gateContactRightCov), gateContactRightCov = gateContactRightCov, ) for master in [ "nmos_vtg", "pmos_vtg"]: inst = Instance(("%s" % master), param, None, ("I%d" % i)) inst.setOrigin( Point( x,y)) i += 1 if (i % 100): x += 20 else: x = 0 y += 20 print("Total number of instances created: %d" % i) self.save()
def smalltest( self): """Create layout instances for quick development debugging. """ i = 0 x = 0 y = 0 param = ParamArray() for master in [ "V0", "V1", "ndcont", "pdcont", "dcont", "pcont"]: inst = Instance(("%s" % master), param, None, ("I%d" % i)) inst.setOrigin( Point( x, y)) i += 1 if (i % 4): x += 5 else: x = 0 y += 5 self.save()
def smalltest( self): """Create layout instances for quick development debugging. """ i = 0 x = 0 y = 0 for width in [ 0.6, 2.0]: for length in [ 0.18, 0.6]: for sourceDiffOverlap in [0.0, 0.1]: for drainDiffOverlap in [0.0, 0.1]: for oxide in ["thin", "thick"]: for tranType in ["nmos_vtg", "pmos_vtg"]: for xtorFillLayer in ["metal1"]: param = ParamArray( width = width, length = length, sourceDiffOverlap = sourceDiffOverlap, drainDiffOverlap = drainDiffOverlap, oxide = oxide, tranType = tranType, xtorFillLayer = xtorFillLayer, ) inst = Instance("PyTransistor", param, None, ("I%d" % i)) inst.setOrigin( Point( x, y)) i += 1 if (i % 20): x += 10 else: x = 0 y += 10 self.save()
def smalltest( self): """Create layout instances for quick development debugging. """ i = 0 x = 0 y = 0 param = ParamArray( w = 0.6, l = 0.18, fingers = 1, diffContactLeft = True, diffContactLeftCov = 0.7, gateContactLeft = False, gateContactLeftCov = 0.7, diffContactCenter = False, diffContactCenterCov = 0.5, gateContactCenter = False, gateContactCenterCov = 0.5, diffContactRight = False, diffContactRightCov = 1.0, gateContactRight = True, gateContactRightCov = 1.0, ) for master in [ "nmos_vtg", "pmos_vtg"]: inst = Instance(("%s" % master), param, None, ("I%d" % i)) inst.setOrigin( Point( x,y)) i += 1 if (i % 4): x += 10 else: x = 0 y += 10 param = ParamArray( w = 2.0, l = 1.5, fingers = 1, diffContactLeft = True, diffContactLeftCov = 0.3, gateContactLeft = True, gateContactLeftCov = 0.3, diffContactCenter = True, diffContactCenterCov = 0.5, gateContactCenter = True, gateContactCenterCov = 0.5, diffContactRight = True, diffContactRightCov = 0.7, gateContactRight = True, gateContactRightCov = 0.7, ) for master in [ "nmos_vtg", "pmos_vtg"]: inst = Instance(("%s" % master), param, None, ("I%d" % i)) inst.setOrigin( Point( x,y)) i += 1 if (i % 4): x += 10 else: x = 0 y += 10 param = ParamArray( w = 2.0, l = 1.5, fingers = 2, diffContactLeft = True, diffContactLeftCov = 0.3, gateContactLeft = True, gateContactLeftCov = 0.3, diffContactCenter = True, diffContactCenterCov = 0.5, gateContactCenter = True, gateContactCenterCov = 0.5, diffContactRight = True, diffContactRightCov = 1.0, gateContactRight = True, gateContactRightCov = 1.0, ) for master in [ "nmos_vtg", "pmos_vtg"]: inst = Instance(("%s" % master), param, None, ("I%d" % i)) inst.setOrigin( Point( x,y)) i += 1 if (i % 4): x += 10 else: x = 0 y += 10 param = ParamArray( w = 2.0, l = 1.5, fingers = 2, diffContactLeft = False, diffContactLeftCov = 1.0, gateContactLeft = True, gateContactLeftCov = 1.0, diffContactCenter = False, diffContactCenterCov = 0.5, gateContactCenter = True, gateContactCenterCov = 0.6, diffContactRight = True, diffContactRightCov = 0.4, gateContactRight = False, gateContactRightCov = 0.4, ) for master in [ "nmos_vtg", "pmos_vtg"]: inst = Instance(("%s" % master), param, None, ("I%d" % i)) inst.setOrigin( Point( x,y)) i += 1 if (i % 4): x += 10 else: x = 0 y += 20 self.save()