def METHOD_NAME():
    db = Database(util.get_db_root(), util.get_part())
    grid = db.grid()
    tile_list = []
    for tile_name in sorted(grid.tiles()):
        if "IOB18" not in tile_name or "SING" in tile_name:
            continue
        tile_list.append(tile_name)
    get_xy = util.create_xy_fun('RIOB18_')
    tile_list.sort(key=get_xy)
    for iob_tile_name in tile_list:
        iob_gridinfo = grid.gridinfo_at_loc(
            grid.loc_of_tilename(iob_tile_name))
        # Find IOI tile adjacent to IOB
        for suffix in ["IOI", "IOI_TBYTESRC", "IOI_TBYTETERM"]:
            try:
                ioi_tile_name = iob_tile_name.replace("IOB18", suffix)
                ioi_gridinfo = grid.gridinfo_at_loc(
                    grid.loc_of_tilename(ioi_tile_name))
                break
            except KeyError:
                pass
        iob18s = [k for k, v in iob_gridinfo.sites.items() if v == "IOB18S"][0]
        iob18m = [k for k, v in iob_gridinfo.sites.items() if v == "IOB18M"][0]
        odelay_s = iob18s.replace("IOB", "ODELAY")
        odelay_m = iob18m.replace("IOB", "ODELAY")
        yield iob18m, odelay_m, iob18s, odelay_s