def create_elements(self, elems): r1 = Row() s1 = spira.SRef(r1) # s2 = spira.SRef(r1, midpoint=(2000, -1000)) s2 = spira.SRef(r1, transformation=spira.Translation((2000, -1000))) elems += s1 elems += s2 print(s1.ports['Al:T2']) print(s2.ports['Al:T2']) d1 = spira.Port(name='Al:D1', midpoint=(1000, 7000), orientation=180, width=20) # d2 = spira.Port(name='Al:D2', midpoint=(-1000, -5000), orientation=0, width=20) elems += spira.RouteManhattan( ports=[s1.ports['Al:T2'], d1, s2.ports['Al:T2']], width=20, layer=RDD.PLAYER.Al.METAL) elems += spira.RouteManhattan(ports=[s1.ports['Al:T1'], self.d2], width=20, layer=RDD.PLAYER.Al.METAL) return elems
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): ports = self.get_io_ports() elems += spira.RouteManhattan(ports=ports, layer=spira.RDD.PLAYER.M1.METAL) return elems
def create_elements(self, elems): elems += spira.RouteManhattan(ports=[self.p1, self.p2], layer=spira.RDD.PLAYER.R1.METAL) return elems
def create_elements(self, elems): elems = super().create_elements(elems) elems += spira.RouteManhattan(ports=[self.p2, self.p3], corners='round', layer=spira.RDD.PLAYER.R1.METAL) return elems
def create_elements(self, elems): elems += spira.RouteManhattan(ports=[self.p1, self.p2], layer=self.layer) return elems