Exemple #1
0
    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()
Exemple #2
0
    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()
Exemple #3
0
    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()
Exemple #5
0
    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()