def METHOD_NAME(placement_verilog_d, concrete_name, opath):
    placement = {
        'leaves': {x['concrete_name']: x for x in placement_verilog_d['leaves']},
        'modules': {x['concrete_name']: x for x in placement_verilog_d['modules']}
    }
    flat_leaves = _flatten_leaves(placement, concrete_name)
    constrained_cns = dict()
    all_cns = {x['concrete_name'] for x in flat_leaves}
    for cn in all_cns:
        filename = pathlib.Path(opath) / '../inputs' / f'{cn}.json'
        if filename.exists() and filename.is_file():
            with filename.open("r") as fp:
                data = json.load(fp)
                if 'metadata' in data and 'constraints' in data['metadata']:
                    place_on_grids = [c for c in data['metadata']['constraints'] if c['constraint'] == 'PlaceOnGrid']
                    if place_on_grids:
                        constrained_cns[cn] = place_on_grids
    for flat_leaf in flat_leaves:
        if flat_leaf['concrete_name'] in constrained_cns:
            _check_place_on_grid(flat_leaf, constrained_cns[flat_leaf['concrete_name']])