Esempio n. 1
0
        xmonCross = XmonCross(xmon_center, cross_width, cross_len,
                              cross_gnd_gap)
        # cutting everything out except for the tail that will be capcitavely coupled
        # to Xmon
        for key in list(worm.primitives.keys()):
            if (key == "cop_tail"
                ) or key.startswith("fork") or key.startswith("erased"):
                pass
            else:
                del worm.primitives[key]

        # calculate bounding box dimensions
        tmp_reg = Region()
        worm.place(tmp_reg)
        xmonCross.place(tmp_reg)
        bbox = tmp_reg.bbox()

        # calculate simulation box dimensions
        CHIP.dx = 3 * bbox.width()
        CHIP.dy = 2 * bbox.height()
        chip_p1 = DPoint(bbox.center()) + DPoint(-0.5 * CHIP.dx,
                                                 -0.5 * CHIP.dy)
        chip_p2 = DPoint(bbox.center()) + DPoint(0.5 * CHIP.dx, 0.5 * CHIP.dy)
        chip_box = pya.Box(DPoint(0, 0), DPoint(CHIP.dx, CHIP.dy))

        # forming resonator's tail upper side open-circuited for simulation
        p1 = worm.cop_tail.start
        p2 = p1 + DPoint(0, 20e3)
        empty_cpw_tail_start = CPW(0, Z_res.b / 2, p1, p2)

        # placing all objects in proper order and translating them to origin
Esempio n. 2
0
        cv = mw.create_layout(1)
        lv = mw.current_view()
    else:
        cv = lv.active_cellview()

# find or create the desired by programmer cell and layer
    layout = cv.layout()
    layout.dbu = 0.001
    if (layout.has_cell("testScript")):
        pass
    else:
        cell = layout.create_cell("testScript")

    info = pya.LayerInfo(1, 0)
    layer_i = layout.layer(info)

    lv.select_cell(cell.cell_index(), 0)
    lv.add_missing_layers()

    region = Region()
    Z0 = CPW(1e3, 1e3, DPoint(0, 0), DPoint(1e6, 0))
    Z0.place(region)
    print(region.bbox())  # output: ()
    cell.shapes(layer_i).insert(region)  # output: nothing is drawn
    '''region = Region()
    Z0 = CPW( 1e3,1e3, DPoint(0,0), DPoint(1e6,0) )
    region = region + Z0.metal_region - Z0.empty_region 
    print( region.bbox() ) # output: (0,-500,1e6,500)
    cell.shapes( layer_i ).insert( region ) #output: line is drawn as intended
    '''
    lv.zoom_fit()