Ejemplo n.º 1
0
 def _s_CPW_strip_T(self):
     """creates top CPW"""
     vs=sP([(self.locpw-self.w/2.0, -self.end_cpw_x),
                 (self.locpw-self.w/2.0+self.w, -self.end_cpw_x),
                 (self.locpw+self.qdt_gate_width/2.0, self.gate_stop),
                 (self.locpw-self.qdt_gate_width/2.0, self.gate_stop)])
     vs=sP([(self.l_idt_x+self.idt_wbox,self.ocpw-self.w/2.0+self.gap+self.w),
                 (self.end_cpw_x, -self.end_cpw_x),
                 (self.locpw-self.w/2.0-self.gap, -self.end_cpw_x),
                 (self.locpw-self.gate_gap/2.0,self.ocpw-self.w/2.0+self.gap+self.w)
                 ], vs)
     vs=sP([(self.locpw-self.gate_gap/2.0, self.ocpw-self.w/2.0+self.gap+self.w),
                 (self.locpw-self.gate_gap/2.0-10.0e-6, self.ocpw+self.w/2.0),
                 (self.locpw-self.gate_gap/2.0-30.0e-6, self.ocpw+self.w/2.0),
                 (self.locpw-self.gate_gap/2.0-40.0e-6, self.ocpw-self.w/2.0+self.gap+self.w),
                 ], vs)
     vs=sP([(self.locpw+self.gate_gap/2.0, self.ocpw-self.w/2.0+self.gap+self.w),
                 (self.locpw+self.gate_gap/2.0+10.0e-6, self.ocpw+self.w/2.0),
                 (self.locpw+self.gate_gap/2.0+30.0e-6, self.ocpw+self.w/2.0),
                 (self.locpw+self.gate_gap/2.0+40.0e-6, self.ocpw-self.w/2.0+self.gap+self.w),
                 ], vs)
     vs=sP([(self.r_idt_x-self.idt_wbox,self.ocpw-self.w/2.0+self.gap+self.w),
                 (-self.end_cpw_x, -self.end_cpw_x),
                 (self.locpw+self.w/2.0+self.gap, -self.end_cpw_x),
                 (self.locpw+self.gate_gap/2.0,self.ocpw-self.w/2.0+self.gap+self.w)
                 ], vs)
     return vs
Ejemplo n.º 2
0
 def _s_CPW_strip_T(self):
     """creates top CPW"""
     vs=sP([(self.locpw-self.w/2.0, -self.end_cpw_x),
                 (self.locpw-self.w/2.0+self.w, -self.end_cpw_x),
                 (self.locpw+self.qdt_gate_width/2.0, self.gate_stop),
                 (self.locpw-self.qdt_gate_width/2.0, self.gate_stop)])
     vs=sP([(self.l_idt_x+self.idt_wbox,self.ocpw-self.w/2.0+self.gap+self.w),
                 (self.end_cpw_x, -self.end_cpw_x),
                 (self.locpw-self.w/2.0-self.gap, -self.end_cpw_x),
                 (self.locpw-self.gate_gap/2.0,self.ocpw-self.w/2.0+self.gap+self.w)
                 ], vs)
     vs=sP([(self.locpw-self.gate_gap/2.0, self.ocpw-self.w/2.0+self.gap+self.w),
                 (self.locpw-self.gate_gap/2.0-10.0e-6, self.ocpw+self.w/2.0),
                 (self.locpw-self.gate_gap/2.0-30.0e-6, self.ocpw+self.w/2.0),
                 (self.locpw-self.gate_gap/2.0-40.0e-6, self.ocpw-self.w/2.0+self.gap+self.w),
                 ], vs)
     vs=sP([(self.locpw+self.gate_gap/2.0, self.ocpw-self.w/2.0+self.gap+self.w),
                 (self.locpw+self.gate_gap/2.0+10.0e-6, self.ocpw+self.w/2.0),
                 (self.locpw+self.gate_gap/2.0+30.0e-6, self.ocpw+self.w/2.0),
                 (self.locpw+self.gate_gap/2.0+40.0e-6, self.ocpw-self.w/2.0+self.gap+self.w),
                 ], vs)
     vs=sP([(self.r_idt_x-self.idt_wbox,self.ocpw-self.w/2.0+self.gap+self.w),
                 (-self.end_cpw_x, -self.end_cpw_x),
                 (self.locpw+self.w/2.0+self.gap, -self.end_cpw_x),
                 (self.locpw+self.gate_gap/2.0,self.ocpw-self.w/2.0+self.gap+self.w)
                 ], vs)
     return vs
Ejemplo n.º 3
0
 def _s_CPW_strip_L(self):
     """creates left CPW"""
     vs = sP([(self.end_cpw_x, self.ocpw - self.w / 2.0),
              (self.end_cpw_x, self.ocpw - self.w / 2.0 + self.w),
              (self.l_idt_x + self.idt_wbox,
               self.ocpw - self.w / 2.0 + self.w),
              (self.l_idt_x + self.idt_wbox, self.ocpw - self.w / 2.0)])
     vs = sP(
         [(self.end_cpw_x, self.ocpw - self.w / 2.0 + self.gap + self.w),
          (self.end_cpw_x, -self.end_cpw_x),
          (self.l_idt_x + self.idt_wbox,
           self.ocpw - self.w / 2.0 + self.gap + self.w)], vs)
     vs = sP([
         (self.end_cpw_x, self.ocpw - self.w / 2.0 - self.gap),
         (self.end_cpw_x, self.end_cpw_x),
         (self.l_idt_x + self.idt_wbox, self.ocpw - self.w / 2.0 - self.gap)
     ], vs)
     vs = sP([(self.l_idt_x + self.idt_wbox, self.ocpw - self.w / 2.0),
              (self.l_idt_x + self.idt_conn_w / 2.0,
               self.ocpw - self.w / 2.0 - self.idt_conn_h),
              (self.l_idt_x - self.idt_conn_w / 2.0,
               self.ocpw - self.w / 2.0 - self.idt_conn_h),
              (self.l_idt_x - self.idt_wbox, self.ocpw - self.w / 2.0)], vs)
     vs = sP([
         (self.l_idt_x + self.idt_wbox,
          self.ocpw - self.w / 2.0 - self.gap),
         (self.l_idt_x + self.idt_conn_w / 2.0,
          self.ocpw - self.w / 2.0 - self.gap + self.idt_conn_h),
         (self.l_idt_x - self.idt_conn_w / 2.0,
          self.ocpw - self.w / 2.0 - self.gap + self.idt_conn_h),
         (self.l_idt_x - self.idt_wbox, self.ocpw - self.w / 2.0 - self.gap)
     ], vs)
     return vs
Ejemplo n.º 4
0
    def _s_bond_pad_TL(self):
        """creates top left part of bond pad"""
        vs=sP([(-self.xbox+self.bond_pad+self.taper_length+self.bond_pad_in_shift, self.ocpw-self.w/2.0),
                    (-self.xbox+self.bond_pad+self.taper_length+self.bond_pad_in_shift, self.ocpw-self.w/2.0+self.w),
                    (-self.mb_c, self.ocpw-self.w/2.0+self.w),
                    (-self.mb_c, self.ocpw-self.w/2.0)])
        vs=sP([(-self.xbox+self.bond_pad+self.overlap+self.bond_pad_in_shift, -self.bond_pad/2.0+self.ocpw),
                (-self.xbox+self.bond_pad+self.overlap+self.bond_pad_in_shift, self.bond_pad/2.0+self.ocpw),
                (-self.xbox+self.bond_pad+self.taper_length+self.bond_pad_in_shift, self.ocpw+self.w/2.0),
                (-self.xbox+self.bond_pad+self.taper_length+self.bond_pad_in_shift, self.ocpw-self.w/2.0)], vs)
        sP([(-self.xbox+self.bond_pad+self.bond_pad_in_shift, -self.bond_pad/2.0+self.ocpw),
            (-self.xbox+self.bond_pad+self.overlap+self.bond_pad_in_shift, -self.bond_pad/2.0+self.ocpw),
            (-self.xbox+self.bond_pad+self.overlap+self.bond_pad_in_shift, self.bond_pad/2.0+self.ocpw),
            (-self.xbox+self.bond_pad+self.bond_pad_in_shift, self.bond_pad/2.0+self.ocpw)], vs)

        vs=sP([(-self.xbox+self.bond_pad+self.bond_pad_in_shift, self.bond_pad/2.0+self.bond_pad_gap+self.ocpw),
                   (-self.xbox+self.bond_pad+self.bond_pad_in_shift, self.end_cpw_y),
                   (-self.xbox+self.bond_pad+self.taper_length+self.bond_pad_in_shift, self.end_cpw_y),
                   (-self.xbox+self.bond_pad+self.taper_length+self.bond_pad_in_shift, self.w/2.0+self.gap+self.ocpw)], vs)
        vs=sP([(-(self.xbox-self.bond_pad-self.taper_length)+self.bond_pad_in_shift, self.w/2.0+self.gap+self.ocpw),
                   (-(self.xbox-self.bond_pad-self.taper_length)+self.bond_pad_in_shift, self.end_cpw_y),
                   (-self.mb_c, self.end_cpw_y),
                   (-self.mb_c, self.w/2.0+self.gap+self.ocpw)], vs)
        vs=sP([(-(self.xbox-self.bond_pad)+self.bond_pad_in_shift, -self.bond_pad/2.0-self.bond_pad_gap+self.ocpw),
                   (-(self.xbox-self.bond_pad)+self.bond_pad_in_shift, -self.end_cpw_y),
                   (-(self.xbox-self.bond_pad-self.taper_length)+self.bond_pad_in_shift, -self.end_cpw_y),
                   (-(self.xbox-self.bond_pad-self.taper_length)+self.bond_pad_in_shift, -self.w/2.0-self.gap+self.ocpw)], vs)
        vs=sP([(-(self.xbox-self.bond_pad-self.taper_length)+self.bond_pad_in_shift, -self.w/2.0-self.gap+self.ocpw),
                   (-(self.xbox-self.bond_pad-self.taper_length)+self.bond_pad_in_shift, -self.end_cpw_y),
                   (-self.mb_c, -self.end_cpw_y),
                   (-self.mb_c, -self.w/2.0-self.gap+self.ocpw)], vs)
        return vs
Ejemplo n.º 5
0
    def _s_bond_pad_TL(self):
        """creates top left part of bond pad"""
        vs=sP([(-self.xbox+self.bond_pad+self.taper_length+self.bond_pad_in_shift, self.ocpw-self.w/2.0),
                    (-self.xbox+self.bond_pad+self.taper_length+self.bond_pad_in_shift, self.ocpw-self.w/2.0+self.w),
                    (-self.mb_c, self.ocpw-self.w/2.0+self.w),
                    (-self.mb_c, self.ocpw-self.w/2.0)])
        vs=sP([(-self.xbox+self.bond_pad+self.overlap+self.bond_pad_in_shift, -self.bond_pad/2.0+self.ocpw),
                (-self.xbox+self.bond_pad+self.overlap+self.bond_pad_in_shift, self.bond_pad/2.0+self.ocpw),
                (-self.xbox+self.bond_pad+self.taper_length+self.bond_pad_in_shift, self.ocpw+self.w/2.0),
                (-self.xbox+self.bond_pad+self.taper_length+self.bond_pad_in_shift, self.ocpw-self.w/2.0)], vs)
        sP([(-self.xbox+self.bond_pad+self.bond_pad_in_shift, -self.bond_pad/2.0+self.ocpw),
            (-self.xbox+self.bond_pad+self.overlap+self.bond_pad_in_shift, -self.bond_pad/2.0+self.ocpw),
            (-self.xbox+self.bond_pad+self.overlap+self.bond_pad_in_shift, self.bond_pad/2.0+self.ocpw),
            (-self.xbox+self.bond_pad+self.bond_pad_in_shift, self.bond_pad/2.0+self.ocpw)], vs)

        vs=sP([(-self.xbox+self.bond_pad+self.bond_pad_in_shift, self.bond_pad/2.0+self.bond_pad_gap+self.ocpw),
                   (-self.xbox+self.bond_pad+self.bond_pad_in_shift, self.end_cpw_y),
                   (-self.xbox+self.bond_pad+self.taper_length+self.bond_pad_in_shift, self.end_cpw_y),
                   (-self.xbox+self.bond_pad+self.taper_length+self.bond_pad_in_shift, self.w/2.0+self.gap+self.ocpw)], vs)
        vs=sP([(-(self.xbox-self.bond_pad-self.taper_length)+self.bond_pad_in_shift, self.w/2.0+self.gap+self.ocpw),
                   (-(self.xbox-self.bond_pad-self.taper_length)+self.bond_pad_in_shift, self.end_cpw_y),
                   (-self.mb_c, self.end_cpw_y),
                   (-self.mb_c, self.w/2.0+self.gap+self.ocpw)], vs)
        vs=sP([(-(self.xbox-self.bond_pad)+self.bond_pad_in_shift, -self.bond_pad/2.0-self.bond_pad_gap+self.ocpw),
                   (-(self.xbox-self.bond_pad)+self.bond_pad_in_shift, -self.end_cpw_y),
                   (-(self.xbox-self.bond_pad-self.taper_length)+self.bond_pad_in_shift, -self.end_cpw_y),
                   (-(self.xbox-self.bond_pad-self.taper_length)+self.bond_pad_in_shift, -self.w/2.0-self.gap+self.ocpw)], vs)
        vs=sP([(-(self.xbox-self.bond_pad-self.taper_length)+self.bond_pad_in_shift, -self.w/2.0-self.gap+self.ocpw),
                   (-(self.xbox-self.bond_pad-self.taper_length)+self.bond_pad_in_shift, -self.end_cpw_y),
                   (-self.mb_c, -self.end_cpw_y),
                   (-self.mb_c, -self.w/2.0-self.gap+self.ocpw)], vs)
        return vs
Ejemplo n.º 6
0
 def _s_marker(self):
     """marker for aligning wafer"""
     return sP([(-self.marker_width/2.0-self.linewidth/2.0, -self.linewidth/2.0),
         (-self.marker_width/2.0, 0.0),
         (-self.marker_width/2.0-self.linewidth/2.0, self.linewidth/2.0),
         (self.marker_width/2.0+self.linewidth/2.0, self.linewidth/2.0),
         (self.marker_width/2.0, 0.0),
         (self.marker_width/2.0+self.linewidth/2.0, -self.linewidth/2.0)])
Ejemplo n.º 7
0
 def _s_labelbox_TL(self):
     """returns a top left label box with the right side open"""
     vs=sP([(-self.mb_c, self.mb_c),
                     (-self.xbox, self.mb_c),
                     (-self.xbox, self.ybox),
                     (-self.mb_c, self.ybox),
                     (-self.mb_c, self.mb_y+self.M1_size/2.0+self.lbl_height),
                     (-self.mb_x-self.lbl_width/2.0, self.mb_y+self.M1_size/2.0+self.lbl_height),
                     (-self.mb_x-self.lbl_width/2.0, self.mb_y+self.M1_size/2.0),
                     (-self.mb_x-self.M1_size/2.0, self.mb_y+self.M1_size/2.0),
                     (-self.mb_x-self.M1_size/2.0, self.mb_y-self.M1_size/2.0),
                     (-self.mb_x+self.M1_size/2.0, self.mb_y-self.M1_size/2.0),
                     (-self.mb_x+self.M1_size/2.0, self.mb_y+self.M1_size/2.0),
                     (-self.mb_c, self.mb_y+self.M1_size/2.0)])
     return sP([(-self.mb_c, self.mb_y+self.M1_size/2.0),
                     (-self.mb_x+self.lbl_width/2.0, self.mb_y+self.M1_size/2.0),
                     (-self.mb_x+self.lbl_width/2.0, self.mb_y+self.M1_size/2.0+self.lbl_height),
                     (-self.mb_c, self.mb_y+self.M1_size/2.0+self.lbl_height)], vs=vs)
Ejemplo n.º 8
0
 def _s_labelbox_TL(self):
     """returns a top left label box with the right side open"""
     vs=sP([(-self.mb_c, self.mb_c),
                     (-self.xbox, self.mb_c),
                     (-self.xbox, self.ybox),
                     (-self.mb_c, self.ybox),
                     (-self.mb_c, self.mb_y+self.M1_size/2.0+self.lbl_height),
                     (-self.mb_x-self.lbl_width/2.0, self.mb_y+self.M1_size/2.0+self.lbl_height),
                     (-self.mb_x-self.lbl_width/2.0, self.mb_y+self.M1_size/2.0),
                     (-self.mb_x-self.M1_size/2.0, self.mb_y+self.M1_size/2.0),
                     (-self.mb_x-self.M1_size/2.0, self.mb_y-self.M1_size/2.0),
                     (-self.mb_x+self.M1_size/2.0, self.mb_y-self.M1_size/2.0),
                     (-self.mb_x+self.M1_size/2.0, self.mb_y+self.M1_size/2.0),
                     (-self.mb_c, self.mb_y+self.M1_size/2.0)])
     return sP([(-self.mb_c, self.mb_y+self.M1_size/2.0),
                     (-self.mb_x+self.lbl_width/2.0, self.mb_y+self.M1_size/2.0),
                     (-self.mb_x+self.lbl_width/2.0, self.mb_y+self.M1_size/2.0+self.lbl_height),
                     (-self.mb_c, self.mb_y+self.M1_size/2.0+self.lbl_height)], vs=vs)
Ejemplo n.º 9
0
 def _s_testpad_TL(self):
     """returns top left part of test pad"""
     return sP([(-self.testpad_width/2.0, -self.testpad_height/2.0),
               (-self.testpad_width/2.0, -self.testpad_height/2.0+self.tp_bond_pad),
               (-self.contact_width/2.0, -self.contact_height/2.0),
               (-self.contact_width/2.0, -self.bridge_gap_y/2.0),
               (-self.bridge_gap_x/2.0, -self.bridge_gap_y/2.0),
               (-self.bridge_gap_x/2.0, -self.contact_height/2.0),
               (-self.testpad_width/2.0+self.tp_bond_pad, -self.testpad_height/2.0)])
Ejemplo n.º 10
0
 def _s_markbox_BL(self):
     """returns a bottom left mark box with the right side open for a test structure"""
     return sP([(-self.mb_c, -self.mb_c), (-self.xbox, -self.mb_c),
                (-self.xbox, -self.ybox), (-self.mb_c, -self.ybox),
                (-self.mb_c, self.testy - self.gndplane_testgap / 2.0),
                (-self.mb_x - self.M1_size / 2.0,
                 self.testy - self.gndplane_testgap / 2.0),
                (-self.mb_x - self.M1_size / 2.0,
                 self.testy + self.gndplane_testgap / 2.0),
                (-self.mb_c, self.testy + self.gndplane_testgap / 2.0)])
Ejemplo n.º 11
0
 def _s_markbox_BL(self):
     """returns a bottom left mark box with the right side open for a test structure"""
     return sP([(-self.mb_c, -self.mb_c),
                     (-self.xbox, -self.mb_c),
                     (-self.xbox, -self.ybox),
                     (-self.mb_c, -self.ybox),
                     (-self.mb_c, self.testy-self.gndplane_testgap/2.0),
                     (-self.mb_x-self.M1_size/2.0, self.testy-self.gndplane_testgap/2.0),
                     (-self.mb_x-self.M1_size/2.0, self.testy+self.gndplane_testgap/2.0),
                     (-self.mb_c, self.testy+self.gndplane_testgap/2.0)])
Ejemplo n.º 12
0
 def _s_CPW_strip_R(self):
     """creates right CPW"""
     vs = sP([(-self.end_cpw_x, self.ocpw - self.w / 2.0),
              (-self.end_cpw_x, self.ocpw - self.w / 2.0 + self.w),
              (self.r_idt_x - self.idt_wbox,
               self.ocpw - self.w / 2.0 + self.w),
              (self.r_idt_x - self.idt_wbox, self.ocpw - self.w / 2.0)])
     vs = sP(
         [
             (-self.end_cpw_x,
              self.ocpw - self.w / 2.0 + self.gap + self.w),
             (-self.end_cpw_x, -self.end_cpw_x),
             #(self.mb_c, self.mb_c),
             (self.r_idt_x - self.idt_wbox,
              self.ocpw - self.w / 2.0 + self.gap + self.w)
         ],
         vs)
     vs = sP(
         [
             (-self.end_cpw_x, self.ocpw - self.w / 2.0 - self.gap),
             (-self.end_cpw_x, self.end_cpw_x),
             #(self.mb_c, -self.mb_c),
             (self.r_idt_x - self.idt_wbox,
              self.ocpw - self.w / 2.0 - self.gap)
         ],
         vs)
     vs = sP([(self.r_idt_x - self.idt_wbox, self.ocpw - self.w / 2.0),
              (self.r_idt_x - self.idt_conn_w / 2.0,
               self.ocpw - self.w / 2.0 - self.idt_conn_h),
              (self.r_idt_x + self.idt_conn_w / 2.0,
               self.ocpw - self.w / 2.0 - self.idt_conn_h),
              (self.r_idt_x + self.idt_wbox, self.ocpw - self.w / 2.0)], vs)
     vs = sP([
         (self.r_idt_x - self.idt_wbox,
          self.ocpw - self.w / 2.0 - self.gap),
         (self.r_idt_x - self.idt_conn_w / 2.0,
          self.ocpw - self.w / 2.0 - self.gap + self.idt_conn_h),
         (self.r_idt_x + self.idt_conn_w / 2.0,
          self.ocpw - self.w / 2.0 - self.gap + self.idt_conn_h),
         (self.r_idt_x + self.idt_wbox, self.ocpw - self.w / 2.0 - self.gap)
     ], vs)
     return vs
Ejemplo n.º 13
0
 def _s_testpad_TL(self):
     """returns top left part of test pad"""
     return sP([(-self.testpad_width / 2.0, -self.testpad_height / 2.0),
                (-self.testpad_width / 2.0,
                 -self.testpad_height / 2.0 + self.tp_bond_pad),
                (-self.contact_width / 2.0, -self.contact_height / 2.0),
                (-self.contact_width / 2.0, -self.bridge_gap_y / 2.0),
                (-self.bridge_gap_x / 2.0, -self.bridge_gap_y / 2.0),
                (-self.bridge_gap_x / 2.0, -self.contact_height / 2.0),
                (-self.testpad_width / 2.0 + self.tp_bond_pad,
                 -self.testpad_height / 2.0)])
Ejemplo n.º 14
0
 def _s_CPW_strip_L(self):
     """creates left CPW"""
     vs=sP([(self.end_cpw_x, self.ocpw-self.w/2.0),
                     (self.end_cpw_x, self.ocpw-self.w/2.0+self.w),
                     (self.l_idt_x+self.idt_wbox, self.ocpw-self.w/2.0+self.w),
                     (self.l_idt_x+self.idt_wbox, self.ocpw-self.w/2.0)])
     vs=sP([(self.end_cpw_x, self.ocpw-self.w/2.0+self.gap+self.w),
                     (self.end_cpw_x, -self.end_cpw_x),
                     (self.l_idt_x+self.idt_wbox, self.ocpw-self.w/2.0+self.gap+self.w)], vs)
     vs=sP([(self.end_cpw_x, self.ocpw-self.w/2.0-self.gap),
                     (self.end_cpw_x, self.end_cpw_x),
                     (self.l_idt_x+self.idt_wbox, self.ocpw-self.w/2.0-self.gap)], vs)
     vs=sP([(self.l_idt_x+self.idt_wbox, self.ocpw-self.w/2.0),
                 (self.l_idt_x+self.idt_conn_w/2.0, self.ocpw-self.w/2.0-self.idt_conn_h),
                 (self.l_idt_x-self.idt_conn_w/2.0, self.ocpw-self.w/2.0-self.idt_conn_h),
                 (self.l_idt_x-self.idt_wbox, self.ocpw-self.w/2.0)], vs)
     vs=sP([(self.l_idt_x+self.idt_wbox, self.ocpw-self.w/2.0-self.gap),
                 (self.l_idt_x+self.idt_conn_w/2.0, self.ocpw-self.w/2.0-self.gap+self.idt_conn_h),
                 (self.l_idt_x-self.idt_conn_w/2.0, self.ocpw-self.w/2.0-self.gap+self.idt_conn_h),
                 (self.l_idt_x-self.idt_wbox, self.ocpw-self.w/2.0-self.gap)], vs)
     return vs
Ejemplo n.º 15
0
 def _s_width_checker(self):
     return sP([(-self.width/2.0, -self.height/2.0),
             (-self.width/2.0, -self.small_box/2.0),
             (-self.width/2.0-self.small_box/2.0, -self.small_box/2.0),
             (-self.width/2.0-self.small_box/2.0, self.small_box/2.0),
             (-self.width/2.0, self.small_box/2.0),
             (-self.width/2.0, self.height/2.0),
             (self.width/2.0, self.height/2.0),
             (self.width/2.0, self.small_box/2.0),
             (self.width/2.0+self.small_box/2.0, self.small_box/2.0),
             (self.width/2.0+self.small_box/2.0, -self.small_box/2.0),
             (self.width/2.0, -self.small_box/2.0),
             (self.width/2.0, -self.height/2.0)])
Ejemplo n.º 16
0
 def _s_CPW_strip_R(self):
     """creates right CPW"""
     vs=sP([(-self.end_cpw_x, self.ocpw-self.w/2.0),
                     (-self.end_cpw_x, self.ocpw-self.w/2.0+self.w),
                     (self.r_idt_x-self.idt_wbox, self.ocpw-self.w/2.0+self.w),
                     (self.r_idt_x-self.idt_wbox, self.ocpw-self.w/2.0)])
     vs=sP([(-self.end_cpw_x, self.ocpw-self.w/2.0+self.gap+self.w),
                     (-self.end_cpw_x, -self.end_cpw_x),
                     #(self.mb_c, self.mb_c),
                     (self.r_idt_x-self.idt_wbox, self.ocpw-self.w/2.0+self.gap+self.w)], vs)
     vs=sP([(-self.end_cpw_x, self.ocpw-self.w/2.0-self.gap),
                     (-self.end_cpw_x, self.end_cpw_x),
                     #(self.mb_c, -self.mb_c),
                     (self.r_idt_x-self.idt_wbox, self.ocpw-self.w/2.0-self.gap)], vs)
     vs=sP([(self.r_idt_x-self.idt_wbox, self.ocpw-self.w/2.0),
                 (self.r_idt_x-self.idt_conn_w/2.0, self.ocpw-self.w/2.0-self.idt_conn_h),
                 (self.r_idt_x+self.idt_conn_w/2.0, self.ocpw-self.w/2.0-self.idt_conn_h),
                 (self.r_idt_x+self.idt_wbox, self.ocpw-self.w/2.0)], vs)
     vs=sP([(self.r_idt_x-self.idt_wbox, self.ocpw-self.w/2.0-self.gap),
                 (self.r_idt_x-self.idt_conn_w/2.0, self.ocpw-self.w/2.0-self.gap+self.idt_conn_h),
                 (self.r_idt_x+self.idt_conn_w/2.0, self.ocpw-self.w/2.0-self.gap+self.idt_conn_h),
                 (self.r_idt_x+self.idt_wbox, self.ocpw-self.w/2.0-self.gap)], vs)
     return vs
Ejemplo n.º 17
0
    def _s_bond_pad_TL(self):
        """creates top left part of bond pad"""
        vs=sC(-self.xbox+self.bond_pad/2.0, self.ocpw, self.bond_pad, self.bond_pad)
        vs=sP([(-self.xbox+self.bond_pad+self.taper_length, self.ocpw-self.w/2.0),
                    (-self.xbox+self.bond_pad+self.taper_length, self.ocpw-self.w/2.0+self.w),
                    (-self.mb_c, self.ocpw-self.w/2.0+self.w),
                    (-self.mb_c, self.ocpw-self.w/2.0)], vs)
        vs=sT(-self.mb_c, self.ocpw-self.w/2.0, self.Au_sec, self.w, nt=4, vs=vs)

        vs=sT(-self.mb_c, self.ocpw+self.w/2.0+self.gap, self.Au_sec,
                   self.mb_c-self.ocpw-self.w/2.0-self.gap, nt=30, vs=vs)

        vs=sT(-self.mb_c, -self.mb_c, self.Au_sec,
                   self.mb_c-self.w/2.0-self.gap+self.ocpw, nt=30, vs=vs)
        vs=sP([(-self.xbox+self.bond_pad, -self.bond_pad/2.0+self.ocpw),
                (-self.xbox+self.bond_pad, self.bond_pad/2.0+self.ocpw),
                (-self.xbox+self.bond_pad+self.taper_length, self.ocpw+self.w/2.0),
                (-self.xbox+self.bond_pad+self.taper_length, self.ocpw-self.w/2.0)], vs)

        vs=sP([(-self.xbox, self.bond_pad/2.0+self.bond_pad_gap+self.ocpw),
                   (-self.xbox+self.bond_pad, self.bond_pad/2.0+self.bond_pad_gap+self.ocpw),
                   (-self.xbox+self.bond_pad,  self.mb_c),
                   (-self.xbox, self.mb_c)], vs)
        vs=sP([(-self.xbox+self.bond_pad, self.bond_pad/2.0+self.bond_pad_gap+self.ocpw),
                   (-self.xbox+self.bond_pad, self.mb_c),
                   (-self.xbox+self.bond_pad+self.taper_length, self.mb_c),
                   (-self.xbox+self.bond_pad+self.taper_length, self.w/2.0+self.gap+self.ocpw)], vs)
        vs=sP([(-(self.xbox-self.bond_pad-self.taper_length), self.w/2.0+self.gap+self.ocpw),
                   (-(self.xbox-self.bond_pad-self.taper_length), self.mb_c),
                   (-self.mb_c, self.mb_c),
                   (-self.mb_c, self.w/2.0+self.gap+self.ocpw)], vs)
        vs=sP([(-self.xbox, -self.bond_pad/2.0-self.bond_pad_gap+self.ocpw),
                   (-(self.xbox-self.bond_pad), -self.bond_pad/2.0-self.bond_pad_gap+self.ocpw),
                   (-(self.xbox-self.bond_pad),  -self.mb_c),
                   (-self.xbox, -self.mb_c)], vs)
        vs=sP([(-(self.xbox-self.bond_pad), -self.bond_pad/2.0-self.bond_pad_gap+self.ocpw),
                   (-(self.xbox-self.bond_pad), -self.mb_c),
                   (-(self.xbox-self.bond_pad-self.taper_length), -self.mb_c),
                   (-(self.xbox-self.bond_pad-self.taper_length), -self.w/2.0-self.gap+self.ocpw)], vs)
        vs=sP([(-(self.xbox-self.bond_pad-self.taper_length), -self.w/2.0-self.gap+self.ocpw),
                   (-(self.xbox-self.bond_pad-self.taper_length), -self.mb_c),
                   (-self.mb_c, -self.mb_c),
                   (-self.mb_c, -self.w/2.0-self.gap+self.ocpw)], vs)
        return vs
Ejemplo n.º 18
0
    def _s_CPW_strip_B(self):
        """creates bottom CPW"""
        vs=sP([(self.locpw-self.w/2.0, self.end_cpw_x),
                    (self.locpw-self.w/2.0+self.w, self.end_cpw_x),
                    (self.locpw+self.qdt_gate_width/2.0, self.ocpw-self.w/2.0-self.gap),
                    (self.locpw-self.qdt_gate_width/2.0, self.ocpw-self.w/2.0-self.gap)])
        vs=sP([(self.l_idt_x+self.idt_wbox, self.ocpw-self.w/2.0-self.gap),
                    (self.end_cpw_x, self.end_cpw_x),
                    (self.locpw-self.w/2.0-self.gap, self.end_cpw_x),
                    (self.locpw-self.w/2.0-self.gap+30.0e-6, self.end_cpw_x/2),
                    (self.locpw-self.w/2.0-self.gap+20.0e-6, self.end_cpw_x/4)], vs)
        vs=sP([(self.r_idt_x-self.idt_wbox, self.ocpw-self.w/2.0-self.gap),
                    (-self.end_cpw_x, self.end_cpw_x),
                    (self.locpw+self.w/2.0+self.gap, self.end_cpw_x),
                    (self.locpw+self.w/2.0+self.gap-30.0e-6, self.end_cpw_x/2),
                    (self.locpw+self.w/2.0+self.gap-0.0e-6, self.end_cpw_x/4)], vs)
        vs=sP([(self.locpw-self.gate_gap/2.0, self.ocpw-3*self.w/2.0-2*self.gap),
                    (self.locpw-self.gate_gap/2.0-10.0e-6, self.ocpw-3*self.w/2.0-self.gap),
                    (self.locpw-self.gate_gap/2.0-30.0e-6, self.ocpw-3*self.w/2.0-self.gap),
                    (self.locpw-self.gate_gap/2.0-40.0e-6, self.ocpw-3*self.w/2.0-2*self.gap),
                    ], vs)
        vs=sP([(self.locpw+self.gate_gap/2.0, self.ocpw-3*self.w/2.0-2*self.gap),
                    (self.locpw+self.gate_gap/2.0+10.0e-6, self.ocpw-3*self.w/2.0-self.gap),
                    (self.locpw+self.gate_gap/2.0+30.0e-6, self.ocpw-3*self.w/2.0-self.gap),
                    (self.locpw+self.gate_gap/2.0+40.0e-6, self.ocpw-3*self.w/2.0-2*self.gap),
                    ], vs)

        vs=sP([(self.locpw-self.gate_gap/2.0-40.0e-6, self.ocpw-3*self.w/2.0-2*self.gap),
                    (self.locpw-self.w/2.0, self.end_cpw_x),
                    (self.locpw, self.end_cpw_x),
                    (self.locpw, self.ocpw-3*self.w/2.0-2*self.gap),
                    ], vs)
        vs=sP([(self.locpw+self.gate_gap/2.0+40.0e-6, self.ocpw-3*self.w/2.0-2*self.gap),
                    (self.locpw+self.w/2.0, self.end_cpw_x),
                    (self.locpw, self.end_cpw_x),
                    (self.locpw, self.ocpw-3*self.w/2.0-2*self.gap),
                    ], vs)
        return vs
Ejemplo n.º 19
0
    def _s_CPW_strip_B(self):
        """creates bottom CPW"""
        vs=sP([(self.locpw-self.w/2.0, self.end_cpw_x),
                    (self.locpw-self.w/2.0+self.w, self.end_cpw_x),
                    (self.locpw+self.qdt_gate_width/2.0, self.ocpw-self.w/2.0-self.gap),
                    (self.locpw-self.qdt_gate_width/2.0, self.ocpw-self.w/2.0-self.gap)])
        vs=sP([(self.l_idt_x+self.idt_wbox, self.ocpw-self.w/2.0-self.gap),
                    (self.end_cpw_x, self.end_cpw_x),
                    (self.locpw-self.w/2.0-self.gap, self.end_cpw_x),
                    (self.locpw-self.w/2.0-self.gap+30.0e-6, self.end_cpw_x/2),
                    (self.locpw-self.w/2.0-self.gap+20.0e-6, self.end_cpw_x/4)], vs)
        vs=sP([(self.r_idt_x-self.idt_wbox, self.ocpw-self.w/2.0-self.gap),
                    (-self.end_cpw_x, self.end_cpw_x),
                    (self.locpw+self.w/2.0+self.gap, self.end_cpw_x),
                    (self.locpw+self.w/2.0+self.gap-30.0e-6, self.end_cpw_x/2),
                    (self.locpw+self.w/2.0+self.gap-0.0e-6, self.end_cpw_x/4)], vs)
        vs=sP([(self.locpw-self.gate_gap/2.0, self.ocpw-3*self.w/2.0-2*self.gap),
                    (self.locpw-self.gate_gap/2.0-10.0e-6, self.ocpw-3*self.w/2.0-self.gap),
                    (self.locpw-self.gate_gap/2.0-30.0e-6, self.ocpw-3*self.w/2.0-self.gap),
                    (self.locpw-self.gate_gap/2.0-40.0e-6, self.ocpw-3*self.w/2.0-2*self.gap),
                    ], vs)
        vs=sP([(self.locpw+self.gate_gap/2.0, self.ocpw-3*self.w/2.0-2*self.gap),
                    (self.locpw+self.gate_gap/2.0+10.0e-6, self.ocpw-3*self.w/2.0-self.gap),
                    (self.locpw+self.gate_gap/2.0+30.0e-6, self.ocpw-3*self.w/2.0-self.gap),
                    (self.locpw+self.gate_gap/2.0+40.0e-6, self.ocpw-3*self.w/2.0-2*self.gap),
                    ], vs)

        vs=sP([(self.locpw-self.gate_gap/2.0-40.0e-6, self.ocpw-3*self.w/2.0-2*self.gap),
                    (self.locpw-self.w/2.0, self.end_cpw_x),
                    (self.locpw, self.end_cpw_x),
                    (self.locpw, self.ocpw-3*self.w/2.0-2*self.gap),
                    ], vs)
        vs=sP([(self.locpw+self.gate_gap/2.0+40.0e-6, self.ocpw-3*self.w/2.0-2*self.gap),
                    (self.locpw+self.w/2.0, self.end_cpw_x),
                    (self.locpw, self.end_cpw_x),
                    (self.locpw, self.ocpw-3*self.w/2.0-2*self.gap),
                    ], vs)
        return vs
Ejemplo n.º 20
0
 def _s_wafer_aligner(self):
     vs=sP([(-self.flat_length/2.0, self.linewidth/2.0),
            (-self.flat_length/2.0, 3.0*self.linewidth/2.0),
            (self.flat_length/2.0, 3.0*self.linewidth/2.0),
            (self.flat_length/2.0, self.linewidth/2.0)])
     sP([(-self.flat_length/2.0, -self.linewidth/2.0),
            (-self.flat_length/2.0, -3.0*self.linewidth/2.0),
            (self.flat_length/2.0, -3.0*self.linewidth/2.0),
            (self.flat_length/2.0, -self.linewidth/2.0)], vs=vs)
     reset_property(self, "_s_marker")
     for n in range(self.num_marker):
         sTransform(self._s_marker, (n-self.num_marker/2)*self.flat_length/self.num_marker, vs=vs)
     sTransform(self._s_marker, -self.flat_length/2.0-self.linewidth/2.0, theta=90.0, vs=vs)
     sTransform(self._s_marker, self.flat_length/2.0+self.linewidth/2.0, theta=90.0, vs=vs)
     sP([(-self.flat_length/2.0-4.0*self.linewidth, -3.0*self.linewidth/2.0),
         (-self.flat_length/2.0-4.0*self.linewidth, 3.0*self.linewidth/2.0),
         (-self.flat_length/2.0-self.linewidth, 3.0*self.linewidth/2.0),
         (-self.flat_length/2.0-self.linewidth, -3.0*self.linewidth/2.0)], vs=vs)
     sP([(self.flat_length/2.0+4.0*self.linewidth, -3.0*self.linewidth/2.0),
         (self.flat_length/2.0+4.0*self.linewidth, 3.0*self.linewidth/2.0),
         (self.flat_length/2.0+self.linewidth, 3.0*self.linewidth/2.0),
         (self.flat_length/2.0+self.linewidth, -3.0*self.linewidth/2.0)], vs=vs)
     sPoly(self.width_checker, y_off=3.0*self.linewidth/2.0+self.width_checker.height/2.0, vs=vs)
     return sPoly(self.width_checker, y_off=-3.0*self.linewidth/2.0-self.width_checker.height/2.0, vs=vs)
Ejemplo n.º 21
0
 def P(self, verts):
     """adds a polygon to the polylist with vertices given as a list of tuples"""
     sP(verts, self.verts)  #extend necesary
Ejemplo n.º 22
0
 def _s_crossbox_TL(self):
     """returns top left part of test pad"""
     return sP([(-self.width/2.0, self.linewidth/2.0),
             (-self.linewidth/2.0, self.linewidth/2.0),
             (-self.linewidth/2.0, self.height/2.0),
             (-self.width/2.0, self.height/2.0)])
Ejemplo n.º 23
0
 def P(self, verts):
     """adds a polygon to the polylist with vertices given as a list of tuples"""
     sP(verts, self.verts) #extend necesary
Ejemplo n.º 24
0
    def _s_bond_pad_TL(self):
        """creates top left part of bond pad"""
        vs = sC(-self.xbox + self.bond_pad / 2.0, self.ocpw, self.bond_pad,
                self.bond_pad)
        vs = sP([(-self.xbox + self.bond_pad + self.taper_length,
                  self.ocpw - self.w / 2.0),
                 (-self.xbox + self.bond_pad + self.taper_length,
                  self.ocpw - self.w / 2.0 + self.w),
                 (-self.mb_c, self.ocpw - self.w / 2.0 + self.w),
                 (-self.mb_c, self.ocpw - self.w / 2.0)], vs)
        vs = sT(-self.mb_c,
                self.ocpw - self.w / 2.0,
                self.Au_sec,
                self.w,
                nt=4,
                vs=vs)

        vs = sT(-self.mb_c,
                self.ocpw + self.w / 2.0 + self.gap,
                self.Au_sec,
                self.mb_c - self.ocpw - self.w / 2.0 - self.gap,
                nt=30,
                vs=vs)

        vs = sT(-self.mb_c,
                -self.mb_c,
                self.Au_sec,
                self.mb_c - self.w / 2.0 - self.gap + self.ocpw,
                nt=30,
                vs=vs)
        vs = sP(
            [(-self.xbox + self.bond_pad, -self.bond_pad / 2.0 + self.ocpw),
             (-self.xbox + self.bond_pad, self.bond_pad / 2.0 + self.ocpw),
             (-self.xbox + self.bond_pad + self.taper_length,
              self.ocpw + self.w / 2.0),
             (-self.xbox + self.bond_pad + self.taper_length,
              self.ocpw - self.w / 2.0)], vs)

        vs = sP(
            [(-self.xbox, self.bond_pad / 2.0 + self.bond_pad_gap + self.ocpw),
             (-self.xbox + self.bond_pad,
              self.bond_pad / 2.0 + self.bond_pad_gap + self.ocpw),
             (-self.xbox + self.bond_pad, self.mb_c),
             (-self.xbox, self.mb_c)], vs)
        vs = sP([(-self.xbox + self.bond_pad,
                  self.bond_pad / 2.0 + self.bond_pad_gap + self.ocpw),
                 (-self.xbox + self.bond_pad, self.mb_c),
                 (-self.xbox + self.bond_pad + self.taper_length, self.mb_c),
                 (-self.xbox + self.bond_pad + self.taper_length,
                  self.w / 2.0 + self.gap + self.ocpw)], vs)
        vs = sP([(-(self.xbox - self.bond_pad - self.taper_length),
                  self.w / 2.0 + self.gap + self.ocpw),
                 (-(self.xbox - self.bond_pad - self.taper_length), self.mb_c),
                 (-self.mb_c, self.mb_c),
                 (-self.mb_c, self.w / 2.0 + self.gap + self.ocpw)], vs)
        vs = sP([
            (-self.xbox, -self.bond_pad / 2.0 - self.bond_pad_gap + self.ocpw),
            (-(self.xbox - self.bond_pad),
             -self.bond_pad / 2.0 - self.bond_pad_gap + self.ocpw),
            (-(self.xbox - self.bond_pad), -self.mb_c),
            (-self.xbox, -self.mb_c)
        ], vs)
        vs = sP(
            [(-(self.xbox - self.bond_pad),
              -self.bond_pad / 2.0 - self.bond_pad_gap + self.ocpw),
             (-(self.xbox - self.bond_pad), -self.mb_c),
             (-(self.xbox - self.bond_pad - self.taper_length), -self.mb_c),
             (-(self.xbox - self.bond_pad - self.taper_length),
              -self.w / 2.0 - self.gap + self.ocpw)], vs)
        vs = sP(
            [(-(self.xbox - self.bond_pad - self.taper_length),
              -self.w / 2.0 - self.gap + self.ocpw),
             (-(self.xbox - self.bond_pad - self.taper_length), -self.mb_c),
             (-self.mb_c, -self.mb_c),
             (-self.mb_c, -self.w / 2.0 - self.gap + self.ocpw)], vs)
        return vs