Ejemplo n.º 1
0
    dsn = prj.create_design_module(lib_name, cell_name)
    print('design parameters:\n%s' % pprint.pformat(params))
    dsn.design_specs(**params)

    # implement the design
    print('implementing design with library %s' % impl_lib)
    dsn.implement_design(impl_lib, top_cell_name=cell_name, erase=True)

    # generate the layout
    layout_params = dsn.get_layout_params(**layout_params)
    pprint.pprint(layout_params)
    cProfile.runctx(
        'temp_db.new_template(params=layout_params, temp_cls=NPassGateWClk, debug=False)',
        globals(),
        locals(),
        filename='passgate_stats.data')
    temp = temp_db.new_template(params=layout_params,
                                temp_cls=NPassGateWClk,
                                debug=False)
    temp_db.batch_layout(prj, [temp], [cell_name], debug=True)
    #temp.write_summary_file('%s.yaml' % cell_name, impl_lib, cell_name)
    temp.write_summary_file('adc_sampler_ec.yaml', impl_lib, cell_name)
    ''' 
    #lvs
    print('running lvs')
    lvs_passed, lvs_log = prj.run_lvs(impl_lib, cell_name)
    if not lvs_passed:
        raise Exception('oops lvs died.  See LVS log file %s' % lvs_log)
    print('lvs passed')
    '''
    # create design module and run design method.
    print('designing module')
    dsn = prj.create_design_module(lib_name, cell_name)
    print('design parameters:\n%s' % pprint.pformat(params))
    dsn.design_specs(**params)

    # implement the design
    print('implementing design with library %s' % impl_lib)
    dsn.implement_design(impl_lib, top_cell_name=cell_name, erase=True)

    # generate the layout
    layout_params = dsn.get_layout_params(**layout_params)
    pprint.pprint(layout_params)
    cProfile.runctx(
        'temp_db.new_template(params=layout_params, temp_cls=NPassGateWClk, debug=False)',
        globals(),
        locals(),
        filename='passgate_stats.data')
    temp = temp_db.new_template(params=layout_params,
                                temp_cls=NPassGateWClk,
                                debug=False)
    temp_db.batch_layout(prj, [temp], [cell_name], debug=True, flatten=False)
    temp.write_summary_file('%s.yaml' % cell_name, impl_lib, cell_name)

    #lvs
    print('running lvs')
    lvs_passed, lvs_log = prj.run_lvs(impl_lib, cell_name)
    if not lvs_passed:
        raise Exception('oops lvs died.  See LVS log file %s' % lvs_log)
    print('lvs passed')