Пример #1
0
    def make_tdb(self, layermap=''):
        """
        Makes a new TemplateDB object. If no routing grid parameters are sent in, dummy parameters are used.
        """
        self.impl_lib = self.specs['impl_lib']
        if 'routing_grid' in self.specs:
            layers = self.specs['routing_grid']['layers']
            spaces = self.specs['routing_grid']['spaces']
            widths = self.specs['routing_grid']['widths']
            bot_dir = self.specs['routing_grid']['bot_dir']
        else:
            # Use dummy routing grid settings
            layers = [1, 2, 3, 4, 5]
            spaces = [0.1, 0.1, 0.1, 0.1, 0.2]
            widths = [0.1, 0.1, 0.1, 0.1, 0.2]
            bot_dir = 'y'

        routing_grid = RoutingGrid(self.prj.tech_info, layers, spaces, widths,
                                   bot_dir)
        self.tdb = TemplateDB('template_libs.def',
                              routing_grid,
                              self.impl_lib,
                              use_cybagoa=True,
                              name_prefix=self.specs.get('name_prefix', ''),
                              name_suffix=self.specs.get('name_suffix', ''),
                              prj=self.prj,
                              gds_lay_file=layermap)
Пример #2
0
def make_tdb(prj, target_lib):
    layers = [3, 4, 5, 6, 7, 8, 9, 10]
    spaces = [0.1, 0.1, 0.2, 0.2, 0.2, 0.2, 0.4, 0.4]
    widths = [0.1, 0.1, 0.2, 0.2, 0.2, 0.2, 0.4, 0.4]
    bot_dir = 'y'

    routing_grid = RoutingGrid(prj.tech_info, layers, spaces, widths, bot_dir)
    tdb = TemplateDB('template_libs.def', routing_grid, target_lib, use_cybagoa=True)
    return tdb
Пример #3
0
def make_tdb(prj, target_lib, specs):
    grid_specs = specs['routing_grid']
    layers = grid_specs['layers']
    spaces = grid_specs['spaces']
    widths = grid_specs['widths']
    bot_dir = grid_specs['bot_dir']

    routing_grid = RoutingGrid(prj.tech_info, layers, spaces, widths, bot_dir)
    tdb = TemplateDB('template_libs.def', routing_grid, target_lib, use_cybagoa=True)
    return tdb
Пример #4
0
def test_find_next_track(routing_grid: RoutingGrid, lay: int, coord: int,
                         w_ntr: int, mode: Union[RoundMode, int],
                         half_track: bool, expect: HalfInt) -> None:
    """Check that find_next_htr() works properly."""
    ans = routing_grid.find_next_track(lay,
                                       coord,
                                       tr_width=w_ntr,
                                       half_track=half_track,
                                       mode=mode)
    assert ans == expect
    assert isinstance(ans, HalfInt)
Пример #5
0
def make_tdb(prj, specs, impl_lib):
    grid_specs = specs['routing_grid']
    layers = grid_specs['layers']
    spaces = grid_specs['spaces']
    widths = grid_specs['widths']
    bot_dir = grid_specs['bot_dir']

    # create RoutingGrid object
    routing_grid = RoutingGrid(prj.tech_info, layers, spaces, widths, bot_dir)
    # create layout template database
    tdb = TemplateDB('template_libs.def', routing_grid, impl_lib, use_cybagoa=True)
    return tdb