optical pins name revised. Pin type added
This commit is contained in:
@@ -590,7 +590,9 @@ class AED_Ring_PIN(MRR_AED): ## Finished in 2022.11.23
|
||||
spacing=self.via_i2m.spacing,
|
||||
sp_via_xs=self.via_i2m.sp_via_xs,
|
||||
instantiate=self.via_i2m.instantiate,
|
||||
).cell.put(INSTR.pin['a1'].x+self.w_metal/2+self.sp_cont,INSTR.pin['a1'].y,180)
|
||||
## revised in 2026.06.07 by Qin Yue
|
||||
# legacy: ).cell.put(INSTR.pin['a1'].x+self.w_metal/2+self.sp_cont,INSTR.pin['a1'].y,180)
|
||||
).cell.put(INSTR.pin['opt_a1'].x+self.w_metal/2+self.sp_cont,INSTR.pin['opt_a1'].y,180)
|
||||
|
||||
BUS_VIA_R = Vias(xs=self.via_i2m.xs,area=[self.w_metal,BUS_IMP.w_wg-self.sp_cont*2],
|
||||
xs_l1=self.via_i2m.xs_l1,
|
||||
@@ -599,21 +601,47 @@ class AED_Ring_PIN(MRR_AED): ## Finished in 2022.11.23
|
||||
spacing=self.via_i2m.spacing,
|
||||
sp_via_xs=self.via_i2m.sp_via_xs,
|
||||
instantiate=self.via_i2m.instantiate,
|
||||
).cell.put(INSTR.pin['b1'].x-self.w_metal/2-self.sp_cont,INSTR.pin['b1'].y)
|
||||
## revised in 2026.06.07 by Qin Yue
|
||||
# legacy: ).cell.put(INSTR.pin['b1'].x-self.w_metal/2-self.sp_cont,INSTR.pin['b1'].y)
|
||||
).cell.put(INSTR.pin['opt_b1'].x-self.w_metal/2-self.sp_cont,INSTR.pin['opt_b1'].y)
|
||||
|
||||
|
||||
if (abs(BUS_VIA_L.pin['a0'].x) > abs(VIA_LO.pin['b1'].x)):
|
||||
temp = eic_mt.bend(pin=VIA_LO.pin['b1'],angle=360-VIA_LO.pin['b1'].a,arrow=False).put(flip=0)
|
||||
## revised in 2026.06.07 by Qin Yue
|
||||
# legacy: if (abs(BUS_VIA_L.pin['a0'].x) > abs(VIA_LO.pin['b1'].x)):
|
||||
## revised in 2026.06.07 by Qin Yue
|
||||
# legacy: if (abs(BUS_VIA_L.pin['a0'].x) > abs(VIA_LO.pin['opt_b1'].x)):
|
||||
if (abs(BUS_VIA_L.pin['a0'].x) > abs(VIA_LO.pin['ele_b1'].x)):
|
||||
## revised in 2026.06.07 by Qin Yue
|
||||
# legacy: temp = eic_mt.bend(pin=VIA_LO.pin['b1'],angle=360-VIA_LO.pin['b1'].a,arrow=False).put(flip=0)
|
||||
## revised in 2026.06.07 by Qin Yue
|
||||
# legacy: temp = eic_mt.bend(pin=VIA_LO.pin['opt_b1'],angle=360-VIA_LO.pin['opt_b1'].a,arrow=False).put(flip=0)
|
||||
temp = eic_mt.bend(pin=VIA_LO.pin['ele_b1'],angle=360-VIA_LO.pin['ele_b1'].a,arrow=False).put(flip=0)
|
||||
eic_mt.ubend_p2p(pin2=BUS_VIA_L.pin['a0'],arrow=False).put()
|
||||
|
||||
else :
|
||||
eic_mt.strt_bend_strt_p2p(pin1=VIA_LO.pin['b1'],pin2=BUS_VIA_L.pin['a0'].move(0,0,90),arrow=False).put()
|
||||
## revised in 2026.06.07 by Qin Yue
|
||||
# legacy: eic_mt.strt_bend_strt_p2p(pin1=VIA_LO.pin['b1'],pin2=BUS_VIA_L.pin['a0'].move(0,0,90),arrow=False).put()
|
||||
## revised in 2026.06.07 by Qin Yue
|
||||
# legacy: eic_mt.strt_bend_strt_p2p(pin1=VIA_LO.pin['opt_b1'],pin2=BUS_VIA_L.pin['a0'].move(0,0,90),arrow=False).put()
|
||||
eic_mt.strt_bend_strt_p2p(pin1=VIA_LO.pin['ele_b1'],pin2=BUS_VIA_L.pin['a0'].move(0,0,90),arrow=False).put()
|
||||
|
||||
if (abs(BUS_VIA_R.pin['a0'].x) > abs(VIA_RO.pin['a1'].x)):
|
||||
temp = eic_mt.bend(pin=VIA_RO.pin['a1'],angle=VIA_RO.pin['a1'].a-180,arrow=False).put(flip=1)
|
||||
## revised in 2026.06.07 by Qin Yue
|
||||
# legacy: if (abs(BUS_VIA_R.pin['a0'].x) > abs(VIA_RO.pin['a1'].x)):
|
||||
## revised in 2026.06.07 by Qin Yue
|
||||
# legacy: if (abs(BUS_VIA_R.pin['a0'].x) > abs(VIA_RO.pin['opt_a1'].x)):
|
||||
if (abs(BUS_VIA_R.pin['a0'].x) > abs(VIA_RO.pin['ele_a1'].x)):
|
||||
## revised in 2026.06.07 by Qin Yue
|
||||
# legacy: temp = eic_mt.bend(pin=VIA_RO.pin['a1'],angle=VIA_RO.pin['a1'].a-180,arrow=False).put(flip=1)
|
||||
## revised in 2026.06.07 by Qin Yue
|
||||
# legacy: temp = eic_mt.bend(pin=VIA_RO.pin['opt_a1'],angle=VIA_RO.pin['opt_a1'].a-180,arrow=False).put(flip=1)
|
||||
temp = eic_mt.bend(pin=VIA_RO.pin['ele_a1'],angle=VIA_RO.pin['ele_a1'].a-180,arrow=False).put(flip=1)
|
||||
eic_mt.ubend_p2p(pin2=BUS_VIA_R.pin['a0'],arrow=False).put()
|
||||
else :
|
||||
eic_mt.strt_bend_strt_p2p(pin1=VIA_RO.pin['a1'],pin2=BUS_VIA_R.pin['a0'].move(0,0,-90),arrow=False).put()
|
||||
## revised in 2026.06.07 by Qin Yue
|
||||
# legacy: eic_mt.strt_bend_strt_p2p(pin1=VIA_RO.pin['a1'],pin2=BUS_VIA_R.pin['a0'].move(0,0,-90),arrow=False).put()
|
||||
## revised in 2026.06.07 by Qin Yue
|
||||
# legacy: eic_mt.strt_bend_strt_p2p(pin1=VIA_RO.pin['opt_a1'],pin2=BUS_VIA_R.pin['a0'].move(0,0,-90),arrow=False).put()
|
||||
eic_mt.strt_bend_strt_p2p(pin1=VIA_RO.pin['ele_a1'],pin2=BUS_VIA_R.pin['a0'].move(0,0,-90),arrow=False).put()
|
||||
|
||||
nd.Pin(name='en3',width=BUS_IMP.wg_Ltp-self.sp_cont*2).put(BUS_VIA_L.pin['a0'].x,BUS_VIA_L.pin['a0'].y,-90)
|
||||
nd.Pin(name='en4',width=BUS_IMP.wg_Ltp-self.sp_cont*2).put(BUS_VIA_R.pin['a0'].x,BUS_VIA_R.pin['a0'].y,-90)
|
||||
@@ -660,25 +688,53 @@ class AED_Ring_PIN(MRR_AED): ## Finished in 2022.11.23
|
||||
xs_l2=self.via_i2m.xs_l2,
|
||||
sz=self.via_i2m.sz,spacing=self.via_i2m.spacing,
|
||||
sp_via_xs=self.via_i2m.sp_via_xs,
|
||||
).cell.put(INSTR.pin['a1'].x+self.w_metal/2+self.sp_cont,INSTR.pin['a1'].y,180)
|
||||
## revised in 2026.06.07 by Qin Yue
|
||||
# legacy: ).cell.put(INSTR.pin['a1'].x+self.w_metal/2+self.sp_cont,INSTR.pin['a1'].y,180)
|
||||
).cell.put(INSTR.pin['opt_a1'].x+self.w_metal/2+self.sp_cont,INSTR.pin['opt_a1'].y,180)
|
||||
|
||||
BUS_VIA_R = Vias(xs=self.via_i2m.xs,area=[self.w_metal,BUS_IMP.w_wg-self.sp_cont*2],
|
||||
xs_l1=self.via_i2m.xs_l1,
|
||||
xs_l2=self.via_i2m.xs_l2,
|
||||
sp_via_xs=self.via_i2m.sp_via_xs,
|
||||
sz=self.via_i2m.sz,spacing=self.via_i2m.spacing).cell.put(INSTR.pin['b1'].x-self.w_metal/2-self.sp_cont,INSTR.pin['b1'].y)
|
||||
## revised in 2026.06.07 by Qin Yue
|
||||
# legacy: sz=self.via_i2m.sz,spacing=self.via_i2m.spacing).cell.put(INSTR.pin['b1'].x-self.w_metal/2-self.sp_cont,INSTR.pin['b1'].y)
|
||||
sz=self.via_i2m.sz,spacing=self.via_i2m.spacing).cell.put(INSTR.pin['opt_b1'].x-self.w_metal/2-self.sp_cont,INSTR.pin['opt_b1'].y)
|
||||
|
||||
eic_mt.bend(pin=VIA_LO.pin['a1'],angle=VIA_LO.pin['a1'].a-90,arrow=False).put(flip=1)
|
||||
eic_mt.strt_bend_strt_p2p(pin2=BUS_VIA_L.pin['a1'],arrow=False).put()
|
||||
## revised in 2026.06.07 by Qin Yue
|
||||
# legacy: eic_mt.bend(pin=VIA_LO.pin['a1'],angle=VIA_LO.pin['a1'].a-90,arrow=False).put(flip=1)
|
||||
## revised in 2026.06.07 by Qin Yue
|
||||
# legacy: eic_mt.bend(pin=VIA_LO.pin['opt_a1'],angle=VIA_LO.pin['opt_a1'].a-90,arrow=False).put(flip=1)
|
||||
eic_mt.bend(pin=VIA_LO.pin['ele_a1'],angle=VIA_LO.pin['ele_a1'].a-90,arrow=False).put(flip=1)
|
||||
## revised in 2026.06.07 by Qin Yue
|
||||
# legacy: eic_mt.strt_bend_strt_p2p(pin2=BUS_VIA_L.pin['a1'],arrow=False).put()
|
||||
## revised in 2026.06.07 by Qin Yue
|
||||
# legacy: eic_mt.strt_bend_strt_p2p(pin2=BUS_VIA_L.pin['opt_a1'],arrow=False).put()
|
||||
eic_mt.strt_bend_strt_p2p(pin2=BUS_VIA_L.pin['ele_a1'],arrow=False).put()
|
||||
|
||||
eic_mt.bend(pin=VIA_RO.pin['b1'],angle=90-VIA_RO.pin['b1'].a).put(flip=0)
|
||||
eic_mt.strt_bend_strt_p2p(pin2=BUS_VIA_R.pin['a1'],arrow=False).put()
|
||||
## revised in 2026.06.07 by Qin Yue
|
||||
# legacy: eic_mt.bend(pin=VIA_RO.pin['b1'],angle=90-VIA_RO.pin['b1'].a).put(flip=0)
|
||||
## revised in 2026.06.07 by Qin Yue
|
||||
# legacy: eic_mt.bend(pin=VIA_RO.pin['opt_b1'],angle=90-VIA_RO.pin['opt_b1'].a).put(flip=0)
|
||||
eic_mt.bend(pin=VIA_RO.pin['ele_b1'],angle=90-VIA_RO.pin['ele_b1'].a).put(flip=0)
|
||||
## revised in 2026.06.07 by Qin Yue
|
||||
# legacy: eic_mt.strt_bend_strt_p2p(pin2=BUS_VIA_R.pin['a1'],arrow=False).put()
|
||||
## revised in 2026.06.07 by Qin Yue
|
||||
# legacy: eic_mt.strt_bend_strt_p2p(pin2=BUS_VIA_R.pin['opt_a1'],arrow=False).put()
|
||||
eic_mt.strt_bend_strt_p2p(pin2=BUS_VIA_R.pin['ele_a1'],arrow=False).put()
|
||||
|
||||
else :
|
||||
temp = eic_mt.bend(pin=VIA_LO.pin['b1'],angle=VIA_LO.pin['b1'].a-270,arrow=False).put(flip=1)
|
||||
## revised in 2026.06.07 by Qin Yue
|
||||
# legacy: temp = eic_mt.bend(pin=VIA_LO.pin['b1'],angle=VIA_LO.pin['b1'].a-270,arrow=False).put(flip=1)
|
||||
## revised in 2026.06.07 by Qin Yue
|
||||
# legacy: temp = eic_mt.bend(pin=VIA_LO.pin['opt_b1'],angle=VIA_LO.pin['opt_b1'].a-270,arrow=False).put(flip=1)
|
||||
temp = eic_mt.bend(pin=VIA_LO.pin['ele_b1'],angle=VIA_LO.pin['ele_b1'].a-270,arrow=False).put(flip=1)
|
||||
nd.Pin(name='en3',width=w_cont_out-self.sp_cont*2+ovlp,pin=temp.pin['b0']).put()
|
||||
|
||||
temp = eic_mt.bend(pin=VIA_RO.pin['a1'],angle=270-VIA_RO.pin['a1'].a,arrow=False).put()
|
||||
## revised in 2026.06.07 by Qin Yue
|
||||
# legacy: temp = eic_mt.bend(pin=VIA_RO.pin['a1'],angle=270-VIA_RO.pin['a1'].a,arrow=False).put()
|
||||
## revised in 2026.06.07 by Qin Yue
|
||||
# legacy: temp = eic_mt.bend(pin=VIA_RO.pin['opt_a1'],angle=270-VIA_RO.pin['opt_a1'].a,arrow=False).put()
|
||||
temp = eic_mt.bend(pin=VIA_RO.pin['ele_a1'],angle=270-VIA_RO.pin['ele_a1'].a,arrow=False).put()
|
||||
nd.Pin(name='en4',width=w_cont_out-self.sp_cont*2+ovlp,pin=temp.pin['b0']).put()
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user