예제 #1
0
        (xbot + 100, ybot - 200),
        (xmmi_top - 100, ybot - 200),
        (xmmi_top - 100, ybot),
        (xmmi_top, ybot),
    ],
    wgt,
)
tk.add(top, wg3)

gc2 = GratingCouplerFocusing(
    wgt,
    focus_distance=20.0,
    width=20,
    length=40,
    period=1.0,
    dutycycle=0.7,
    port=(mmi2.portlist["input"]["port"][0] + 100,
          mmi2.portlist["input"]["port"][1]),
    direction="EAST",
)
tk.add(top, gc2)

wg_gc2 = Waveguide(
    [mmi2.portlist["input"]["port"], gc2.portlist["output"]["port"]], wgt)
tk.add(top, wg_gc2)

tk.build_mask(top, wgt, final_layer=3, final_datatype=0)

gdspy.LayoutViewer()
gdspy.write_gds("tutorial2.gds", unit=1.0e-6, precision=1.0e-9)
예제 #2
0
circle = gdspy.Round((0, 0), radius=(inch / 2) * 25400, tolerance=0.01)
#------------------------------------
MyStamps = LesStamps.Stamps()
top = gdspy.Cell("top")

MyStamps.MakesStampFromMotif(top,
                             MyStamps.LinesCell(name='Lines_Grating'),
                             X0=-16_000,
                             Y0=0)
MyStamps.MakesStampFromMotif(top,
                             MyStamps.LinesCell(name='Lines_Taper'),
                             X0=0,
                             Y0=0)
# X0=20_000,Y0=0)

MyStamps.MakesStampFromMotif(top,
                             MyStamps.Spirales(name='Spiral_Grating'),
                             X0=-16_000,
                             Y0=-20_000)
MyStamps.MakesStampFromMotif(top,
                             MyStamps.Spirales(name='Spiral_Taper'),
                             X0=0,
                             Y0=-20_000)

tk.add(top, circle)  #circle for the wafer size

tk.build_mask(top, MyStamps.wgt[1], final_layer=3, final_datatype=0)
gdspy.write_gds('tests.gds', unit=1.0e-6, precision=1.0e-9)
# gds viewer KLayout
# gdspy.LayoutViewer()