示例#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
示例#2
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
示例#3
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)])
示例#4
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)])
示例#5
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)])
示例#6
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
示例#7
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)])
示例#8
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
示例#9
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
示例#10
0
 def _s_labelbox_TL(self):
     """returns a top left label box with the right side open"""
     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.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)])
示例#11
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
示例#12
0
 def _s_labelbox_TL(self):
     """returns a top left label box with the right side open"""
     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.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)
     ])
示例#13
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
示例#14
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
示例#15
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
示例#16
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