def create_elements(self, elems): p1, p2, p3 = self.get_io_ports() elems += self.ytron # R = spira.RouteManhattan( elems += spira.RouteManhattan(ports=[self.ytron.ports['Pl_M1'], p1], width=self.ytron.ref.shape.arm_widths[0], layer=RDD.PLAYER.M1.METAL, corners=self.corners) # print(R[0].layer) # R[0].set(layer=RDD.PLAYER.M2.METAL) # print(R[0].layer) # elems += R elems += spira.RouteStraight(p1=p2, p2=self.ytron.ports['Pr_M1'], layer=RDD.PLAYER.M1.METAL, path_type='sine', width_type='sine') elems += spira.RouteStraight(p1=p3, p2=self.ytron.ports['Psrc_M1'], layer=RDD.PLAYER.M1.METAL, path_type='sine', width_type='sine') return elems
def create_elements(self, elems): elems += [self.via_left, self.via_right] d1 = spira.Port(name='Al:D1', midpoint=(-1000, 0), orientation=180, width=20) d11 = spira.Port(name='M0:D3', midpoint=(-1000, 0), orientation=0, width=20) d2 = spira.Port(name='Al:D2', midpoint=(1000, 0), orientation=0, width=20) d12 = spira.Port(name='M0:D4', midpoint=(1000, 0), orientation=180, width=20) d3 = spira.Port(name='M0:D5', midpoint=(0, 0), orientation=90, width=20) # FIXME: Throughs out with a wierd angle. # elems += spira.RouteManhattan( # ports=[self.p1, d1], # width=5, layer=RDD.PLAYER.Al.METAL) elems += spira.RouteStraight(p1=self.p1, p2=d1, layer=RDD.PLAYER.Al.METAL) elems += spira.RouteStraight(p1=d11, p2=d12, layer=RDD.PLAYER.M0.METAL) elems += spira.RouteStraight(p1=self.p2, p2=d2, layer=RDD.PLAYER.Al.METAL) elems += spira.RouteStraight(p1=self.p1_out, p2=d3, layer=RDD.PLAYER.M0.METAL) return elems
def create_elements(self, elems): elems += spira.RouteStraight(p1=self.p1, p2=self.p2, layer=spira.RDD.PLAYER.R1.METAL) return elems
def create_elements(self, elems): p1, p2 = self.get_ports() elems += spira.RouteStraight(p1=p1, p2=p2, layer=spira.RDD.PLAYER.R1.METAL) return elems