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)
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
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
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)
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