def _default_MMI22_list(self):
        print '____________ MMI 2x2 ______________'
        MMI22_list = []

        for l, dl in enumerate(self.length_inc_vec):
            print 'length number ' + str(l)
            print 'dl ' + str(dl)
            print 'MM length ' + str(self.length_22 + dl)
            cell = MMI2x2Tapered(mmi_trace_template=self.wg_t_MM,
                                 input_trace_template=self.wg_t_port,
                                 output_trace_template=self.wg_t_port,
                                 trace_template=self.wg_t,
                                 name='MMI22_w_' + str(self.width) + '_l_' +
                                 str(self.length_22 + dl))
            cell.Layout(transition_length=self.l_taper,
                        length=self.length_22 + dl,
                        trace_spacing=self.ts_12)

            MMI22_list.append(cell)

            print 'cell name ' + str(cell.name)
            print '__________________________'

        for w, dw in enumerate(self.width_inc_vec):
            MM_w = self.width + dw
            print 'width number ' + str(w)
            print 'dw ' + str(dw)
            print 'MM width ' + str(MM_w)
            wg_t_MM_w = WireWaveguideTemplate()
            wg_t_MM_w.Layout(
                core_width=MM_w,
                cladding_width=MM_w + 2 * 8,
            )

            cell = MMI2x2Tapered(mmi_trace_template=wg_t_MM_w,
                                 input_trace_template=self.wg_t_port,
                                 output_trace_template=self.wg_t_port,
                                 trace_template=self.wg_t,
                                 name='MMI22_w_' + str(self.width + dw) +
                                 '_l_' + str(self.length_22))
            cell.Layout(transition_length=self.l_taper,
                        length=self.length_22,
                        trace_spacing=self.ts_12 +
                        dw)  #.visualize(annotate=True)
            print cell
            MMI22_list.append(cell)

            print 'cell name ' + str(cell.name)
            print '__________________________'

        print 'last MMI22 done'
        print '_ _ _ _ _ _ _ _ _ _ _ _ _ '
        return MMI22_list
Example #2
0
    def _default_DC_list(self):
        print '____________ MMI 2x2 ______________'
        MMI22_list = []

        for l, dl in enumerate(self.gap_inc_vec):
            print 'length number ' + str(l)
            print 'dl ' + str(dl)

            cell = MMI2x2Tapered(mmi_trace_template=self.mmi_trace_template,
                                 input_trace_template=self.mmi_access_template,
                                 output_trace_template=self.mmi_access_template,
                                 trace_template=self.trace_template,
                                 )

            cell.Layout(name="MMI22_l_{}".format(str(self.gap_inc_vec[l])), transition_length=200.0,
                        length=self.gap_inc_vec[l], trace_spacing=11.0
                        )

            # cell = RingRectSymm180DropFilter(name='ring' + str(dl) + str(self.length),
            #                                  ring_trace_template=self.trace_template)
            # cell.Layout(bend_radius=200,
            #             coupler_lengths=[self.length, self.length],
            #             coupler_radii=[300.0, 300.0],
            #             coupler_angles=[90.0, 90.0],
            #             coupler_spacings=[3.8 + self.gap_inc_vec[l], 3.8 + self.gap_inc_vec[l]],
            #             straights=(self.length, 0.0),
            #             # manhattan=True,
            #             )

            MMI22_list.append(cell)

            print 'cell name ' + str(cell.name)
            print '__________________________'

        return MMI22_list
Example #3
0
    def _default_DC_list(self):
        print '____________ MMI 2x2 ______________'
        MMI22_list = []

        for l, dl in enumerate(self.gap_inc_vec):
            print 'length number ' + str(l)
            print 'dl ' + str(dl)

            cell = MMI2x2Tapered(
                mmi_trace_template=self.mmi_trace_template,
                input_trace_template=self.mmi_access_template,
                output_trace_template=self.mmi_access_template,
                trace_template=self.trace_template,
            )

            cell.Layout(name="MMI22_l_{}".format(str(self.gap_inc_vec[l])),
                        transition_length=200.0,
                        length=self.gap_inc_vec[l],
                        trace_spacing=11.0)

            MMI22_list.append(cell)

            print 'cell name ' + str(cell.name)
            print '__________________________'

        return MMI22_list
Example #4
0
 def _default_mmi22(self):
     mmi22 = MMI2x2Tapered(mmi_trace_template=self.mmi_trace_template,
                           input_trace_template=self.mmi_access_template,
                           output_trace_template=self.mmi_access_template,
                           trace_template=self.wg_sm,
                           )
     return mmi22
Example #5
0
layout_WG3 = WG3.Layout(start_position=(50.0, 0.0), end_position=(350.0, 0.0))

mmi1_12 = MMI1x2Tapered(
    mmi_trace_template=mmi_trace_template,
    input_trace_template=mmi_access_template,
    output_trace_template=mmi_access_template,
    trace_template=wg_sm,
)

layout_mmi1_12 = mmi1_12.Layout(transition_length=200.0,
                                length=97.0,
                                trace_spacing=11.0)

mmi22 = MMI2x2Tapered(
    mmi_trace_template=mmi_trace_template,
    input_trace_template=mmi_access_template,
    output_trace_template=mmi_access_template,
    trace_template=wg_sm,
)

layout_mmi22 = mmi22.Layout(transition_length=200.0,
                            length=398.0,
                            trace_spacing=11.0)

# layout_mmi1_21.visualize(annotate="true")

# C = SBendDirectionalCoupler(name="my_sbenddircoup3",
#                             trace_template1=wg_sm,
#                             coupler_length=100.0)
# layout = C.Layout(coupler_spacing=3.8+2,
#                 bend_radius=300,
#                 straight_after_bend=60.0,