SYMBOL INDEX (1515 symbols across 62 files) FILE: bag/concurrent/core.py function batch_async_task (line 17) | def batch_async_task(coro_list): class SubProcessManager (line 52) | class SubProcessManager(object): method __init__ (line 65) | def __init__(self, max_workers=None, cancel_timeout=10.0): method _kill_subprocess (line 75) | async def _kill_subprocess(self, proc: Optional[Process]) -> None: method async_new_subprocess (line 105) | async def async_new_subprocess(self, method async_new_subprocess_flow (line 155) | async def async_new_subprocess_flow(self, method batch_subprocess (line 220) | def batch_subprocess(self, proc_info_list): method batch_subprocess_flow (line 253) | def batch_subprocess_flow(self, proc_info_list): FILE: bag/core.py function _get_config_file_abspath (line 36) | def _get_config_file_abspath(fname): function _get_port_number (line 53) | def _get_port_number(port_file): function _import_class_from_str (line 78) | def _import_class_from_str(class_str): class Testbench (line 100) | class Testbench(object): method __init__ (line 133) | def __init__(self, # type: Testbench method get_defined_simulation_environments (line 158) | def get_defined_simulation_environments(self): method get_current_simulation_environments (line 163) | def get_current_simulation_environments(self): method add_output (line 168) | def add_output(self, var, expr): method set_parameter (line 183) | def set_parameter(self, name, val, precision=6): method set_env_parameter (line 202) | def set_env_parameter(self, name, val_list, precision=6): method set_sweep_parameter (line 234) | def set_sweep_parameter(self, name, precision=6, **kwargs): method set_simulation_environments (line 277) | def set_simulation_environments(self, env_list): method set_simulation_view (line 290) | def set_simulation_view(self, lib_name, cell_name, sim_view): method update_testbench (line 311) | def update_testbench(self): method run_simulation (line 328) | def run_simulation(self, precision=6, sim_tag=None): method load_sim_results (line 348) | def load_sim_results(self, hist_name, precision=6): method async_run_simulation (line 368) | async def async_run_simulation(self, method async_load_results (line 390) | async def async_load_results(self, hist_name: str, precision: int = 6)... function create_tech_info (line 411) | def create_tech_info(bag_config_path=None): class BagProject (line 432) | class BagProject(object): method __init__ (line 454) | def __init__(self, bag_config_path=None, port=None): method default_lib_path (line 503) | def default_lib_path(self): method close_bag_server (line 507) | def close_bag_server(self): method close_sim_server (line 514) | def close_sim_server(self): method import_design_library (line 521) | def import_design_library(self, lib_name): method import_sch_cellview (line 536) | def import_sch_cellview(self, lib_name: str, cell_name: str) -> None: method get_cells_in_library (line 554) | def get_cells_in_library(self, lib_name): method make_template_db (line 575) | def make_template_db(self, impl_lib, grid_specs, use_cybagoa=True, gds... method generate_cell (line 606) | def generate_cell(self, # type: BagProject method replace_dut_in_wrapper (line 752) | def replace_dut_in_wrapper(self, params: Dict[str, Any], dut_lib: str, method simulate_cell (line 763) | def simulate_cell(self, method measure_cell (line 951) | def measure_cell(self, method create_library (line 1021) | def create_library(self, lib_name, lib_path=''): method create_design_module (line 1038) | def create_design_module(self, lib_name, cell_name, **kwargs): method new_schematic_instance (line 1058) | def new_schematic_instance(self, lib_name='', cell_name='', params=Non... method clear_schematic_database (line 1095) | def clear_schematic_database(self): method instantiate_schematic (line 1100) | def instantiate_schematic(self, lib_name, content_list, lib_path=''): method batch_schematic (line 1120) | def batch_schematic(self, # type: BagProject method configure_testbench (line 1156) | def configure_testbench(self, tb_lib, tb_cell): method load_testbench (line 1183) | def load_testbench(self, tb_lib, tb_cell): method instantiate_layout_pcell (line 1208) | def instantiate_layout_pcell(self, lib_name, cell_name, inst_lib, inst... method instantiate_layout (line 1237) | def instantiate_layout(self, lib_name, view_name, via_tech, layout_list): method release_write_locks (line 1257) | def release_write_locks(self, lib_name, cell_view_list): method run_lvs (line 1273) | def run_lvs(self, # type: BagProject method run_rcx (line 1306) | def run_rcx(self, # type: BagProject method export_layout (line 1357) | def export_layout(self, lib_name, cell_name, out_file, **kwargs): method batch_export_layout (line 1386) | def batch_export_layout(self, info_list): method async_run_lvs (line 1421) | async def async_run_lvs(self, lib_name: str, cell_name: str, **kwargs:... method async_run_rcx (line 1446) | async def async_run_rcx(self, # type: BagProject method create_schematic_from_netlist (line 1487) | def create_schematic_from_netlist(self, netlist, lib_name, cell_name, method create_verilog_view (line 1513) | def create_verilog_view(self, verilog_file, lib_name, cell_name, **kwa... FILE: bag/data/core.py class Waveform (line 12) | class Waveform(object): method __init__ (line 31) | def __init__(self, xvec, yvec, xtol, order=3, ext=3): method xvec (line 40) | def xvec(self): method yvec (line 45) | def yvec(self): method order (line 50) | def order(self): method xtol (line 55) | def xtol(self): method ext (line 60) | def ext(self): method __call__ (line 64) | def __call__(self, *arg, **kwargs): method get_xrange (line 68) | def get_xrange(self): method shift_by (line 80) | def shift_by(self, xshift): method get_all_crossings (line 95) | def get_all_crossings(self, threshold, start=None, stop=None, edge='bo... method get_crossing (line 158) | def get_crossing(self, threshold, start=None, stop=None, n=1, edge='bo... method to_arrays (line 184) | def to_arrays(self, xmin=None, xmax=None): method get_eye_specs (line 214) | def get_eye_specs(self, tbit, tsample, thres=0.0, nlev=2): method _add_xy (line 306) | def _add_xy(self, other): method __add__ (line 316) | def __add__(self, other): method __neg__ (line 326) | def __neg__(self): method __mul__ (line 329) | def __mul__(self, scale): method __rmul__ (line 334) | def __rmul__(self, scale): FILE: bag/data/dc.py class DCCircuit (line 15) | class DCCircuit(object): method __init__ (line 26) | def __init__(self, ndb, pdb): method _get_node_id (line 36) | def _get_node_id(self, name): method set_voltage_source (line 47) | def set_voltage_source(self, node_name, voltage): method add_transistor (line 62) | def add_transistor(self, d_name, g_name, s_name, b_name, mos_type, int... method solve (line 108) | def solve(self, env, guess_dict, itol=1e-10, inorm=1e-6): FILE: bag/data/digital.py function de_bruijn (line 13) | def de_bruijn(n, symbols=None): function dig_to_pwl (line 55) | def dig_to_pwl(values, tper, trf, td=0): function get_crossing_index (line 120) | def get_crossing_index(yvec, threshold, n=0, rising=True): function get_flop_timing (line 150) | def get_flop_timing(tvec, d, q, clk, ttol, data_thres=0.5, FILE: bag/data/lti.py class LTICircuit (line 16) | class LTICircuit(object): method __init__ (line 31) | def __init__(self, udot_tol=1e-12): method _get_node_id (line 41) | def _get_node_id(self, name): method _add (line 52) | def _add(mat, key, val): method add_res (line 59) | def add_res(self, res, p_name, n_name): method add_conductance (line 77) | def add_conductance(self, g, p_name, n_name): method add_vccs (line 104) | def add_vccs(self, gm, p_name, n_name, cp_name, cn_name='gnd'): method add_vcvs (line 140) | def add_vcvs(self, gain, p_name, n_name, cp_name, cn_name='gnd'): method add_cap (line 172) | def add_cap(self, cap, p_name, n_name): method add_ind (line 199) | def add_ind(self, ind, p_name, n_name): method add_transistor (line 227) | def add_transistor(self, tran_info, d_name, g_name, s_name, b_name='gn... method _count_rank (line 281) | def _count_rank(cls, diag): method _solve_gx_bw (line 290) | def _solve_gx_bw(cls, g, b): method _transform_c_qr (line 336) | def _transform_c_qr(cls, g, c, b, d): method _reduce_state_space (line 353) | def _reduce_state_space(cls, g, c, b, d, e, ndim_w): method _simplify (line 390) | def _simplify(cls, g, c, b, d, e, ndim_w): method _build_mna_matrices (line 401) | def _build_mna_matrices(self, inputs, outputs, in_type='v'): method get_state_space (line 533) | def get_state_space(self, inputs, outputs, in_type='v'): method get_num_den (line 567) | def get_num_den(self, in_name, out_name, in_type='v', atol=0.0): method get_transfer_function (line 600) | def get_transfer_function(self, in_name, out_name, in_type='v', atol=0... method get_impedance (line 623) | def get_impedance(self, node_name, freq, atol=0.0): function get_w_crossings (line 648) | def get_w_crossings(num, den, atol=1e-8): function get_w_3db (line 727) | def get_w_3db(num, den, atol=1e-8): function get_stability_margins (line 793) | def get_stability_margins(num, den, rtol=1e-8, atol=1e-8): FILE: bag/data/ltv.py function _even_quotient (line 11) | def _even_quotient(a, b, tol=1e-6): class LTVImpulseFinite (line 19) | class LTVImpulseFinite(object): method __init__ (line 93) | def __init__(self, hmat, m, n, tper, k, out0): method _print_debug_msg (line 116) | def _print_debug_msg(result): method __call__ (line 124) | def __call__(self, t, tau, debug=False): method _get_core (line 164) | def _get_core(self, num_points, debug=False): method visualize (line 189) | def visualize(self, fig_idx, num_points, num_period, method lsim (line 250) | def lsim(self, u, tstep, tstart=0.0, ac_only=False, periodic=False, de... method lsim_digital (line 341) | def lsim_digital(self, tsym, tstep, data, pulse, tstart=0.0, nchain=1,... FILE: bag/data/mos.py function mos_y_to_ss (line 11) | def mos_y_to_ss(sim_data, char_freq, fg, ibias, cfit_method='average'): FILE: bag/data/plot.py function figure (line 25) | def figure(fig_id, picker=5.0): function plot_waveforms (line 43) | def plot_waveforms(xvec, panel_list, fig=1): function _fpart (line 81) | def _fpart(x): function _rfpart (line 85) | def _rfpart(x): function draw_line (line 89) | def draw_line(x0, y0, x1, y1, xmax, grid): function plot_eye_heatmap (line 133) | def plot_eye_heatmap(fig, tvec, yvec, tper, tstart=None, tend=None, toff... function plot_eye (line 223) | def plot_eye(fig, tvec, yvec_list, tper, tstart=None, tend=None, function _find_closest_point (line 298) | def _find_closest_point(x, y, xvec, yvec, xnorm, ynorm): class WaveformPlotter (line 321) | class WaveformPlotter(object): method __init__ (line 339) | def __init__(self, fig_idx, picker=5.0, normal_width=1.5, select_width... method plot (line 352) | def plot(self, *args, **kwargs): method setup (line 363) | def setup(self): method figure_closed (line 395) | def figure_closed(self, event): method figure_resized (line 405) | def figure_resized(self, event): method fix_legend_location (line 410) | def fix_legend_location(self, event): method legend_line_picked (line 422) | def legend_line_picked(self, artist): method legend_text_picked (line 434) | def legend_text_picked(self, artist, draw=True): class MarkerFigure (line 456) | class MarkerFigure(Figure): method __init__ (line 457) | def __init__(self, **kwargs): method set_line_visibility (line 467) | def set_line_visibility(self, axline, visible): method register_pick_event (line 481) | def register_pick_event(self, artist_set, fun): method on_button_release (line 485) | def on_button_release(self, event): method on_motion (line 490) | def on_motion(self, event): method _get_idx_under_point (line 511) | def _get_idx_under_point(self, event): method on_pick (line 531) | def on_pick(self, event): method _create_marker (line 582) | def _create_marker(self): method close_figure (line 604) | def close_figure(self): method setup_callbacks (line 607) | def setup_callbacks(self): FILE: bag/design/module.py class ModuleDB (line 20) | class ModuleDB(MasterDB): method __init__ (line 44) | def __init__(self, lib_defs, tech_info, sch_exc_libs, prj=None, name_p... method create_master_instance (line 55) | def create_master_instance(self, gen_cls, lib_name, params, used_cell_... method create_masters_in_db (line 86) | def create_masters_in_db(self, lib_name, content_list, debug=False): method tech_info (line 105) | def tech_info(self): method is_lib_excluded (line 110) | def is_lib_excluded(self, lib_name): class SchInstance (line 127) | class SchInstance(object): method __init__ (line 150) | def __init__(self, method change_generator (line 170) | def change_generator(self, gen_lib_name, gen_cell_name, static=False): method name (line 193) | def name(self): method connections (line 199) | def connections(self): method is_primitive (line 205) | def is_primitive(self): method should_delete (line 216) | def should_delete(self): method master (line 222) | def master(self): method master_cell_name (line 227) | def master_cell_name(self): method master_key (line 233) | def master_key(self): method copy (line 237) | def copy(self, inst_name, connections=None): method get_master_lib_name (line 259) | def get_master_lib_name(self, impl_lib): method design_specs (line 275) | def design_specs(self, *args, **kwargs): method design (line 280) | def design(self, *args, **kwargs): method _update_master (line 285) | def _update_master(self, design_fun, args, kwargs): method implement_design (line 303) | def implement_design(self, lib_name, top_cell_name='', prefix='', suff... method get_layout_params (line 345) | def get_layout_params(self, **kwargs): class Module (line 354) | class Module(DesignMaster, metaclass=abc.ABCMeta): method __init__ (line 377) | def __init__(self, database, yaml_fname, **kwargs): method pin_list (line 417) | def pin_list(self): method design (line 422) | def design(self, **kwargs): method finalize (line 442) | def finalize(self): method get_params_info (line 479) | def get_params_info(cls): method get_master_basename (line 490) | def get_master_basename(self): method get_content (line 501) | def get_content(self, lib_name, rename_fun): method cell_name (line 543) | def cell_name(self): method orig_cell_name (line 551) | def orig_cell_name(self): method is_primitive (line 556) | def is_primitive(self): method should_delete_instance (line 571) | def should_delete_instance(self): method get_schematic_parameters (line 586) | def get_schematic_parameters(self): method get_cell_name_from_parameters (line 601) | def get_cell_name_from_parameters(self): method rename_pin (line 617) | def rename_pin(self, old_pin, new_pin): method add_pin (line 633) | def add_pin(self, new_pin, pin_type): method remove_pin (line 649) | def remove_pin(self, remove_pin): method delete_instance (line 660) | def delete_instance(self, inst_name): method replace_instance_master (line 671) | def replace_instance_master(self, inst_name, lib_name, cell_name, stat... method reconnect_instance_terminal (line 704) | def reconnect_instance_terminal(self, inst_name, term_name, net_name, ... method array_instance (line 756) | def array_instance(self, inst_name, inst_name_list, term_list=None): method design_dc_bias_sources (line 790) | def design_dc_bias_sources(self, # type: Module method design_dummy_transistors (line 862) | def design_dummy_transistors(self, dum_info, inst_name, vdd_name, vss_... class MosModuleBase (line 911) | class MosModuleBase(Module): method __init__ (line 924) | def __init__(self, database, yaml_file, **kwargs): method get_params_info (line 928) | def get_params_info(cls): method design (line 937) | def design(self, w=1e-6, l=60e-9, nf=1, intent='standard'): method get_schematic_parameters (line 940) | def get_schematic_parameters(self): method get_cell_name_from_parameters (line 953) | def get_cell_name_from_parameters(self): method is_primitive (line 958) | def is_primitive(self): method should_delete_instance (line 962) | def should_delete_instance(self): class ResPhysicalModuleBase (line 967) | class ResPhysicalModuleBase(Module): method __init__ (line 980) | def __init__(self, database, yaml_file, **kwargs): method get_params_info (line 984) | def get_params_info(cls): method design (line 992) | def design(self, w=1e-6, l=1e-6, intent='standard'): method get_schematic_parameters (line 995) | def get_schematic_parameters(self): method get_cell_name_from_parameters (line 1004) | def get_cell_name_from_parameters(self): method is_primitive (line 1008) | def is_primitive(self): method should_delete_instance (line 1012) | def should_delete_instance(self): class ResMetalModule (line 1017) | class ResMetalModule(Module): method __init__ (line 1030) | def __init__(self, database, yaml_file, **kwargs): method get_params_info (line 1034) | def get_params_info(cls): method design (line 1042) | def design(self, w, l, layer): method get_schematic_parameters (line 1046) | def get_schematic_parameters(self): method is_primitive (line 1056) | def is_primitive(self): method should_delete_instance (line 1060) | def should_delete_instance(self): FILE: bag/interface/base.py class InterfaceBase (line 11) | class InterfaceBase: method __init__ (line 16) | def __init__(self): method render_file_template (line 19) | def render_file_template(self, temp_name, params): FILE: bag/interface/database.py function dict_to_item_list (line 21) | def dict_to_item_list(table): function format_inst_map (line 37) | def format_inst_map(inst_map): class DbAccess (line 62) | class DbAccess(InterfaceBase, abc.ABC): method __init__ (line 73) | def __init__(self, tmp_dir, db_config): method get_default_lib_path (line 95) | def get_default_lib_path(cls, db_config): method default_lib_path (line 104) | def default_lib_path(self): method close (line 115) | def close(self): method parse_schematic_template (line 121) | def parse_schematic_template(self, lib_name, cell_name): method get_cells_in_library (line 139) | def get_cells_in_library(self, lib_name): method create_library (line 157) | def create_library(self, lib_name, lib_path=''): method create_implementation (line 170) | def create_implementation(self, lib_name, template_list, change_list, ... method configure_testbench (line 187) | def configure_testbench(self, tb_lib, tb_cell): method get_testbench_info (line 211) | def get_testbench_info(self, tb_lib, tb_cell): method update_testbench (line 235) | def update_testbench(self, # type: DbAccess method instantiate_layout_pcell (line 264) | def instantiate_layout_pcell(self, lib_name, cell_name, view_name, method instantiate_layout (line 288) | def instantiate_layout(self, lib_name, view_name, via_tech, layout_list): method release_write_locks (line 306) | def release_write_locks(self, lib_name, cell_view_list): method create_schematic_from_netlist (line 320) | def create_schematic_from_netlist(self, netlist, lib_name, cell_name, method create_verilog_view (line 343) | def create_verilog_view(self, verilog_file, lib_name, cell_name, **kwa... method get_python_template (line 360) | def get_python_template(self, lib_name, cell_name, primitive_table): method _process_rcx_output (line 408) | def _process_rcx_output(self, netlist, log_fname, lib_name, cell_name,... method async_run_lvs (line 419) | async def async_run_lvs(self, lib_name: str, cell_name: str, **kwargs:... method async_run_rcx (line 445) | async def async_run_rcx(self, # type: DbAccess method async_export_layout (line 491) | async def async_export_layout(self, lib_name: str, cell_name: str, method import_design_library (line 519) | def import_design_library(self, lib_name, dsn_db, new_lib_path): method import_sch_cellview (line 535) | def import_sch_cellview(self, lib_name, cell_name, dsn_db, new_lib_path): method _import_design (line 554) | def _import_design(self, lib_name, cell_name, imported_cells, dsn_db, ... method instantiate_schematic (line 600) | def instantiate_schematic(self, lib_name, content_list, lib_path=''): FILE: bag/interface/ocean.py class OceanInterface (line 17) | class OceanInterface(SimProcessManager): method __init__ (line 28) | def __init__(self, tmp_dir, sim_config): method format_parameter_value (line 34) | def format_parameter_value(self, param_config, precision): method _get_ocean_info (line 86) | def _get_ocean_info(self, save_dir, script_fname, log_fname): method setup_sim_process (line 102) | def setup_sim_process(self, lib, cell, outputs, precision, sim_tag): method setup_load_process (line 140) | def setup_load_process(self, lib, cell, hist_name, outputs, precision): FILE: bag/interface/server.py function _object_to_skill_file_helper (line 31) | def _object_to_skill_file_helper(py_obj, file_obj): function object_to_skill_file (line 75) | def object_to_skill_file(py_obj, file_obj): class SkillServer (line 97) | class SkillServer(object): method __init__ (line 118) | def __init__(self, router, virt_in, virt_out, tmpdir=None): method run (line 128) | def run(self): method send_skill (line 152) | def send_skill(self, expr): method recv_skill (line 163) | def recv_skill(self): method close (line 171) | def close(self): method process_skill_request (line 175) | def process_skill_request(self, request): method process_skill_result (line 228) | def process_skill_result(self, msg, out_file=None): FILE: bag/interface/simulator.py class SimAccess (line 18) | class SimAccess(InterfaceBase, abc.ABC): method __init__ (line 29) | def __init__(self, tmp_dir, sim_config): method format_parameter_value (line 37) | def format_parameter_value(self, param_config, precision): method async_run_simulation (line 75) | async def async_run_simulation(self, tb_lib, tb_cell, outputs, precisi... method async_load_results (line 100) | async def async_load_results(self, lib, cell, hist_name, outputs, prec... class SimProcessManager (line 128) | class SimProcessManager(SimAccess, metaclass=abc.ABCMeta): method __init__ (line 139) | def __init__(self, tmp_dir, sim_config): method setup_sim_process (line 149) | def setup_sim_process(self, lib, cell, outputs, precision, sim_tag): method setup_load_process (line 182) | def setup_load_process(self, lib, cell, hist_name, outputs, precision): method async_run_simulation (line 214) | async def async_run_simulation(self, tb_lib: str, tb_cell: str, method async_load_results (line 224) | async def async_load_results(self, lib: str, cell: str, hist_name: str, FILE: bag/interface/skill.py function _dict_to_pcell_params (line 22) | def _dict_to_pcell_params(table): function to_skill_list_str (line 54) | def to_skill_list_str(pylist): function _handle_reply (line 72) | def _handle_reply(reply): class VirtuosoException (line 88) | class VirtuosoException(Exception): method __init__ (line 91) | def __init__(self, *args, **kwargs): class SkillInterface (line 96) | class SkillInterface(DbAccess): method __init__ (line 112) | def __init__(self, dealer, tmp_dir, db_config): method close (line 119) | def close(self): method _eval_skill (line 125) | def _eval_skill(self, expr, input_files=None, out_file=None): method parse_schematic_template (line 178) | def parse_schematic_template(self, lib_name, cell_name): method get_cells_in_library (line 196) | def get_cells_in_library(self, lib_name): method create_library (line 214) | def create_library(self, lib_name, lib_path=''): method create_implementation (line 229) | def create_implementation(self, lib_name, template_list, change_list, ... method configure_testbench (line 289) | def configure_testbench(self, tb_lib, tb_cell): method get_testbench_info (line 330) | def get_testbench_info(self, tb_lib, tb_cell): method update_testbench (line 358) | def update_testbench(self, method instantiate_layout_pcell (line 395) | def instantiate_layout_pcell(self, lib_name, cell_name, view_name, method instantiate_layout (line 428) | def instantiate_layout(self, lib_name, view_name, via_tech, layout_list): method release_write_locks (line 467) | def release_write_locks(self, lib_name, cell_view_list): method create_schematic_from_netlist (line 481) | def create_schematic_from_netlist(self, netlist, lib_name, cell_name, method get_cell_directory (line 569) | def get_cell_directory(self, lib_name, cell_name): method create_verilog_view (line 591) | def create_verilog_view(self, verilog_file, lib_name, cell_name, **kwa... FILE: bag/interface/templates/Module.pyi function __init__ (line 22) | def __init__(self, database, parent=None, prj=None, **kwargs): function get_params_info (line 26) | def get_params_info(cls): function design (line 38) | def design(self): FILE: bag/interface/templates/PrimModule.pyi function __init__ (line 18) | def __init__(self, database, parent=None, prj=None, **kwargs): FILE: bag/interface/zmqwrapper.py class ZMQDealer (line 17) | class ZMQDealer(object): method __init__ (line 37) | def __init__(self, port, pipeline=100, host='localhost', log_file=None): method log_msg (line 61) | def log_msg(self, msg): method log_obj (line 66) | def log_obj(self, msg, obj): method close (line 72) | def close(self): method send_obj (line 76) | def send_obj(self, obj): method recv_obj (line 89) | def recv_obj(self, timeout=None, enable_cancel=False): method recv_msg (line 128) | def recv_msg(self): class ZMQRouter (line 141) | class ZMQRouter(object): method __init__ (line 164) | def __init__(self, port=None, min_port=5000, max_port=9999, pipeline=1... method get_port (line 189) | def get_port(self): method is_closed (line 193) | def is_closed(self): method close (line 197) | def close(self): method log_msg (line 201) | def log_msg(self, msg): method log_obj (line 206) | def log_obj(self, msg, obj): method send_msg (line 212) | def send_msg(self, msg, addr=None): method send_obj (line 230) | def send_obj(self, obj, addr=None): method poll_for_read (line 250) | def poll_for_read(self, timeout): method recv_obj (line 265) | def recv_obj(self): method get_last_sender_addr (line 280) | def get_last_sender_addr(self): FILE: bag/io/common.py function fix_string (line 14) | def fix_string(obj): function to_bytes (line 37) | def to_bytes(my_str): function set_encoding (line 53) | def set_encoding(new_encoding): function get_encoding (line 67) | def get_encoding(): function set_error_policy (line 78) | def set_error_policy(new_policy): function get_error_policy (line 91) | def get_error_policy(): FILE: bag/io/file.py class Pickle (line 20) | class Pickle: method save (line 25) | def save(obj, file, **kwargs) -> None: method load (line 30) | def load(file, **kwargs): class Yaml (line 35) | class Yaml: method save (line 41) | def save(obj, file, **kwargs) -> None: method load (line 46) | def load(file, **kwargs): function open_file (line 51) | def open_file(fname, mode): function read_file (line 73) | def read_file(fname): function readlines_iter (line 91) | def readlines_iter(fname): function read_yaml_env (line 109) | def read_yaml_env(fname): function read_yaml (line 129) | def read_yaml(fname): function read_resource (line 148) | def read_resource(package, fname): function write_file (line 167) | def write_file(fname, content, append=False, mkdir=True): function make_temp_dir (line 191) | def make_temp_dir(prefix, parent_dir=None): function open_temp (line 206) | def open_temp(**kwargs): FILE: bag/io/gui.py class StdinThread (line 19) | class StdinThread(QtCore.QThread): method __init__ (line 23) | def __init__(self, parent): method run (line 27) | def run(self): class LogWidget (line 43) | class LogWidget(QtWidgets.QFrame): method __init__ (line 51) | def __init__(self, parent=None): method clear_log (line 70) | def clear_log(self): method save_log (line 74) | def save_log(self): method print_file (line 80) | def print_file(self, file_obj): class LogViewer (line 93) | class LogViewer(QtWidgets.QWidget): method __init__ (line 96) | def __init__(self): method closeEvent (line 133) | def closeEvent(self, evt): method parse_cmd (line 140) | def parse_cmd(self, cmd): method change_log (line 154) | def change_log(self, new_idx): method update_logfile (line 172) | def update_logfile(self, fname): method remove_log (line 177) | def remove_log(self, log_tag): method add_log (line 183) | def add_log(self, log_tag, log_file): function app_start (line 190) | def app_start(): function start_viewer (line 199) | def start_viewer(): function add_log (line 208) | def add_log(proc, tag, fname): function remove_log (line 219) | def remove_log(proc, tag): function close (line 230) | def close(proc): FILE: bag/io/process.py function run_proc_with_quit (line 26) | def run_proc_with_quit(proc_id, quit_dict, args, logfile=None, append=Fa... function run_and_wait (line 54) | def run_and_wait(args, timeout=None, logfile=None, append=False, class ProcessManager (line 98) | class ProcessManager(object): method __init__ (line 113) | def __init__(self, max_workers=None, cancel_timeout=10.0): method close (line 123) | def close(self, timeout=10.0): method new_thread (line 137) | def new_thread(self, fun, basename=None, callback=None): method new_process (line 182) | def new_process(self, args, basename=None, logfile=None, append=False, method _get_output (line 234) | def _get_output(future, timeout=None): method cancel (line 244) | def cancel(self, proc_id, timeout=None): method done (line 294) | def done(self, proc_id): method wait (line 309) | def wait(self, proc_id, timeout=None, cancel_timeout=None): method _start_cmd (line 349) | def _start_cmd(self, args, proc_id, logfile=None, append=False, env=No... FILE: bag/io/sim_data.py class SweepArray (line 20) | class SweepArray(np.ndarray): method __new__ (line 24) | def __new__(cls, data, sweep_params=None): method __array_finalize__ (line 33) | def __array_finalize__(self, obj): method __reduce__ (line 39) | def __reduce__(self): method __setstate__ (line 48) | def __setstate__(self, state): function _get_sweep_params (line 55) | def _get_sweep_params(fname): function load_sim_results (line 105) | def load_sim_results(save_dir): function save_sim_results (line 182) | def save_sim_results(results, fname, compression='gzip'): function load_sim_file (line 224) | def load_sim_file(fname): FILE: bag/io/template.py function new_template_env (line 9) | def new_template_env(parent_package, tmp_folder): FILE: bag/layout/core.py class TechInfo (line 26) | class TechInfo(object, metaclass=abc.ABCMeta): method __init__ (line 49) | def __init__(self, res, layout_unit, via_tech, process_params): method get_well_layers (line 56) | def get_well_layers(self, sub_type): method get_implant_layers (line 62) | def get_implant_layers(self, mos_type, res_type=None): method get_threshold_layers (line 81) | def get_threshold_layers(self, mos_type, threshold, res_type=None): method get_exclude_layer (line 87) | def get_exclude_layer(self, layer_id): method get_dnw_margin_unit (line 93) | def get_dnw_margin_unit(self, dnw_mode): method get_dnw_layers (line 110) | def get_dnw_layers(self): method get_res_metal_layers (line 122) | def get_res_metal_layers(self, layer_id): method get_metal_dummy_layers (line 139) | def get_metal_dummy_layers(self, layer_id): method add_cell_boundary (line 156) | def add_cell_boundary(self, template, box): method draw_device_blockage (line 171) | def draw_device_blockage(self, template): method get_via_drc_info (line 182) | def get_via_drc_info(self, vname, vtype, mtype, mw_unit, is_bot): method get_min_space (line 228) | def get_min_space(self, layer_type, width, unit_mode=False, same_color... method get_min_line_end_space (line 250) | def get_min_line_end_space(self, layer_type, width, unit_mode=False): method get_min_length (line 270) | def get_min_length(self, layer_type, width): method get_layer_id (line 289) | def get_layer_id(self, layer_name): method get_layer_name (line 305) | def get_layer_name(self, layer_id): method get_layer_type (line 322) | def get_layer_type(self, layer_name): method get_via_name (line 338) | def get_via_name(self, bot_layer_id): method get_metal_em_specs (line 354) | def get_metal_em_specs(self, layer_name, w, l=-1, vertical=False, **kw... method get_via_em_specs (line 383) | def get_via_em_specs(self, via_name, # type: str method get_res_rsquare (line 427) | def get_res_rsquare(self, res_type): method get_res_width_bounds (line 445) | def get_res_width_bounds(self, res_type): method get_res_length_bounds (line 463) | def get_res_length_bounds(self, res_type): method get_res_min_nsquare (line 481) | def get_res_min_nsquare(self, res_type): method get_res_em_specs (line 497) | def get_res_em_specs(self, res_type, w, l=-1, **kwargs): method via_tech_name (line 525) | def via_tech_name(self): method pin_purpose (line 530) | def pin_purpose(self): method resolution (line 535) | def resolution(self): method layout_unit (line 540) | def layout_unit(self): method merge_well (line 544) | def merge_well(self, template, inst_list, sub_type, threshold=None, re... method use_flip_parity (line 565) | def use_flip_parity(self): method finalize_template (line 570) | def finalize_template(self, template): method get_res_info (line 582) | def get_res_info(self, res_type, w, l, **kwargs): method get_via_types (line 622) | def get_via_types(self, bmtype, tmtype): method get_best_via_array (line 625) | def get_best_via_array(self, vname, bmtype, tmtype, bot_dir, top_dir, ... method _via_better (line 851) | def _via_better(self, mdim_list1, mdim_list2): method get_via_id (line 865) | def get_via_id(self, bot_layer, top_layer): method get_via_info (line 884) | def get_via_info(self, bbox, bot_layer, top_layer, bot_dir, bot_len=-1... method design_resistor (line 1019) | def design_resistor(self, res_type, res_targ, idc=0.0, iac_rms=0.0, class DummyTechInfo (line 1124) | class DummyTechInfo(TechInfo): method __init__ (line 1133) | def __init__(self, tech_params): method get_well_layers (line 1136) | def get_well_layers(self, sub_type): method get_implant_layers (line 1139) | def get_implant_layers(self, mos_type, res_type=None): method get_threshold_layers (line 1142) | def get_threshold_layers(self, mos_type, threshold, res_type=None): method get_dnw_layers (line 1145) | def get_dnw_layers(self): method get_exclude_layer (line 1149) | def get_exclude_layer(self, layer_id): method get_dnw_margin_unit (line 1154) | def get_dnw_margin_unit(self, dnw_mode): method get_res_metal_layers (line 1158) | def get_res_metal_layers(self, layer_id): method get_metal_dummy_layers (line 1162) | def get_metal_dummy_layers(self, layer_id): method add_cell_boundary (line 1166) | def add_cell_boundary(self, template, box): method draw_device_blockage (line 1169) | def draw_device_blockage(self, template): method get_via_drc_info (line 1172) | def get_via_drc_info(self, vname, vtype, mtype, mw_unit, is_bot): method get_min_space (line 1175) | def get_min_space(self, layer_type, width, unit_mode=False, same_color... method get_min_line_end_space (line 1178) | def get_min_line_end_space(self, layer_type, width, unit_mode=False): method get_min_length (line 1181) | def get_min_length(self, layer_type, width): method get_layer_id (line 1184) | def get_layer_id(self, layer_name): method get_layer_name (line 1187) | def get_layer_name(self, layer_id): method get_layer_type (line 1190) | def get_layer_type(self, layer_name): method get_via_name (line 1193) | def get_via_name(self, bot_layer_id): method get_metal_em_specs (line 1196) | def get_metal_em_specs(self, layer_name, w, l=-1, vertical=False, **kw... method get_via_em_specs (line 1199) | def get_via_em_specs(self, via_name, bm_layer, tm_layer, via_type='squ... method get_res_rsquare (line 1203) | def get_res_rsquare(self, res_type): method get_res_width_bounds (line 1206) | def get_res_width_bounds(self, res_type): method get_res_length_bounds (line 1209) | def get_res_length_bounds(self, res_type): method get_res_min_nsquare (line 1212) | def get_res_min_nsquare(self, res_type): method get_res_em_specs (line 1215) | def get_res_em_specs(self, res_type, w, l=-1, **kwargs): class BagLayout (line 1219) | class BagLayout(object): method __init__ (line 1230) | def __init__(self, grid, use_cybagoa=False): method pin_purpose (line 1253) | def pin_purpose(self): method is_empty (line 1258) | def is_empty(self): method inst_iter (line 1262) | def inst_iter(self): method finalize (line 1266) | def finalize(self): method get_rect_bbox (line 1321) | def get_rect_bbox(self, layer): method get_masters_set (line 1340) | def get_masters_set(self): method _get_unused_inst_name (line 1344) | def _get_unused_inst_name(self, inst_name): method _format_inst (line 1355) | def _format_inst(self, inst): method get_content (line 1364) | def get_content(self, # type: BagLayout method add_instance (line 1430) | def add_instance(self, instance): method move_all_by (line 1446) | def move_all_by(self, dx=0.0, dy=0.0, unit_mode=False): method add_instance_primitive (line 1468) | def add_instance_primitive(self, # type: BagLayout method add_rect (line 1553) | def add_rect(self, rect): method add_path (line 1566) | def add_path(self, path): method add_polygon (line 1580) | def add_polygon(self, polygon): method add_blockage (line 1594) | def add_blockage(self, blockage): method add_boundary (line 1608) | def add_boundary(self, boundary): method add_via (line 1622) | def add_via(self, via): method add_via_primitive (line 1638) | def add_via_primitive(self, via_type, loc, num_rows=1, num_cols=1, sp_... method add_pin (line 1705) | def add_pin(self, net_name, layer, bbox, pin_name=None, label=None): method add_label (line 1752) | def add_label(self, label, layer, bbox): FILE: bag/layout/digital.py class StdCellBase (line 19) | class StdCellBase(TemplateBase, metaclass=abc.ABCMeta): method __init__ (line 37) | def __init__(self, temp_db, lib_name, params, used_names, **kwargs): method min_space_width (line 51) | def min_space_width(self): method std_col_width (line 57) | def std_col_width(self): method std_col_width_unit (line 63) | def std_col_width_unit(self): method std_row_height (line 70) | def std_row_height(self): method std_row_height_unit (line 76) | def std_row_height_unit(self): method std_size (line 83) | def std_size(self): method std_routing_layers (line 89) | def std_routing_layers(self): method get_num_columns (line 94) | def get_num_columns(self, layer_id, num_tr): method set_draw_boundaries (line 114) | def set_draw_boundaries(self, draw_boundaries): method get_space_blocks (line 130) | def get_space_blocks(self): method get_cell_params (line 135) | def get_cell_params(self, cell_name): method set_std_size (line 149) | def set_std_size(self, std_size, top_layer=-1): method update_routing_grid (line 185) | def update_routing_grid(self): method get_num_tracks (line 201) | def get_num_tracks(self, layer_id): method add_std_instance (line 228) | def add_std_instance(self, master, inst_name=None, loc=(0, 0), nx=1, n... method draw_boundaries (line 303) | def draw_boundaries(self): method fill_space (line 367) | def fill_space(self): method add_std_space (line 380) | def add_std_space(self, loc, num_col, update_used_blks=True): class StdCellTemplate (line 431) | class StdCellTemplate(StdCellBase): method __init__ (line 449) | def __init__(self, temp_db, lib_name, params, used_names, **kwargs): method sch_params (line 455) | def sch_params(self): method get_params_info (line 459) | def get_params_info(cls): method get_layout_basename (line 475) | def get_layout_basename(self): method compute_unique_key (line 478) | def compute_unique_key(self): method get_sch_master_info (line 482) | def get_sch_master_info(self): method draw_layout (line 488) | def draw_layout(self): FILE: bag/layout/objects.py class Figure (line 25) | class Figure(object, metaclass=abc.ABCMeta): method __init__ (line 34) | def __init__(self, resolution): method transform (line 40) | def transform(self, loc=(0, 0), orient='R0', unit_mode=False, copy=Fal... method move_by (line 46) | def move_by(self, dx=0, dy=0, unit_mode=False): method resolution (line 62) | def resolution(self): method destroyed (line 68) | def destroyed(self): method valid (line 74) | def valid(self): method check_destroyed (line 79) | def check_destroyed(self): method destroy (line 85) | def destroy(self): class Arrayable (line 92) | class Arrayable(Figure, metaclass=abc.ABCMeta): method __init__ (line 113) | def __init__(self, res, nx=1, ny=1, spx=0, spy=0, unit_mode=False): method nx (line 126) | def nx(self): method nx (line 132) | def nx(self, val): method ny (line 141) | def ny(self): method ny (line 147) | def ny(self, val): method spx (line 156) | def spx(self): method spx (line 162) | def spx(self, val): method spx_unit (line 171) | def spx_unit(self): method spx_unit (line 177) | def spx_unit(self, val): method spy (line 186) | def spy(self): method spy (line 192) | def spy(self, val): method spy_unit (line 201) | def spy_unit(self): method spy_unit (line 207) | def spy_unit(self, val): method valid (line 216) | def valid(self): method get_item_location (line 221) | def get_item_location(self, row=0, col=0, unit_mode=False): class InstanceInfo (line 251) | class InstanceInfo(dict): method __init__ (line 258) | def __init__(self, res, change_orient=True, **kwargs): method lib (line 292) | def lib(self): method cell (line 297) | def cell(self): method view (line 302) | def view(self): method name (line 307) | def name(self): method name (line 312) | def name(self, new_name): method loc (line 317) | def loc(self): method orient (line 323) | def orient(self): method num_rows (line 328) | def num_rows(self): method num_cols (line 333) | def num_cols(self): method sp_rows (line 338) | def sp_rows(self): method sp_cols (line 343) | def sp_cols(self): method params (line 348) | def params(self): method params (line 353) | def params(self, new_params): method master_key (line 358) | def master_key(self): method master_key (line 362) | def master_key(self, value): method angle_reflect (line 366) | def angle_reflect(self): method copy (line 388) | def copy(self): method move_by (line 392) | def move_by(self, dx=0, dy=0): class Instance (line 409) | class Instance(Arrayable): method __init__ (line 438) | def __init__(self, method new_master_with (line 464) | def new_master_with(self, **kwargs): method blockage_iter (line 479) | def blockage_iter(self, layer_id, test_box, spx=0, spy=0): method all_rect_iter (line 515) | def all_rect_iter(self): method intersection_rect_iter (line 532) | def intersection_rect_iter(self, layer_id, test_box): method get_rect_bbox (line 563) | def get_rect_bbox(self, layer): method track_bbox_iter (line 575) | def track_bbox_iter(self): method master (line 582) | def master(self): method location (line 588) | def location(self): method location (line 594) | def location(self, new_loc): method location_unit (line 602) | def location_unit(self): method location_unit (line 608) | def location_unit(self, new_loc): method orientation (line 615) | def orientation(self): method orientation (line 621) | def orientation(self, val): method content (line 630) | def content(self): method bound_box (line 648) | def bound_box(self): method array_box (line 657) | def array_box(self): method fill_box (line 670) | def fill_box(self): method get_bound_box_of (line 682) | def get_bound_box_of(self, row=0, col=0): method move_by (line 690) | def move_by(self, dx=0, dy=0, unit_mode=False): method translate_master_box (line 708) | def translate_master_box(self, box): method translate_master_location (line 724) | def translate_master_location(self, method translate_master_track (line 755) | def translate_master_track(self, layer_id, track_idx): method get_port (line 775) | def get_port(self, name='', row=0, col=0): method get_pin (line 800) | def get_pin(self, name='', row=0, col=0, layer=-1): method get_all_port_pins (line 827) | def get_all_port_pins(self, name='', layer=-1): method port_pins_iter (line 855) | def port_pins_iter(self, name='', layer=-1): method port_names_iter (line 882) | def port_names_iter(self): method has_port (line 893) | def has_port(self, port_name): method has_prim_port (line 898) | def has_prim_port(self, port_name): method transform (line 903) | def transform(self, loc=(0, 0), orient='R0', unit_mode=False, copy=Fal... class Rect (line 919) | class Rect(Arrayable): method __init__ (line 942) | def __init__(self, layer, bbox, nx=1, ny=1, spx=0, spy=0, unit_mode=Fa... method bbox_array (line 958) | def bbox_array(self): method layer (line 970) | def layer(self): method layer (line 975) | def layer(self, val): method bbox (line 986) | def bbox(self): method bbox (line 991) | def bbox(self, val): method content (line 1000) | def content(self): method move_by (line 1013) | def move_by(self, dx=0, dy=0, unit_mode=False): method extend (line 1028) | def extend(self, x=None, y=None): method transform (line 1041) | def transform(self, loc=(0, 0), orient='R0', unit_mode=False, copy=Fal... method destroy (line 1054) | def destroy(self): class Path (line 1061) | class Path(Figure): method __init__ (line 1083) | def __init__(self, method compress_points (line 1115) | def compress_points(cls, pts_unit): method layer (line 1146) | def layer(self): method valid (line 1152) | def valid(self): method width (line 1158) | def width(self): method points (line 1162) | def points(self): method points_unit (line 1167) | def points_unit(self): method content (line 1172) | def content(self): method move_by (line 1183) | def move_by(self, dx=0, dy=0, unit_mode=False): method transform (line 1201) | def transform(self, loc=(0, 0), orient='R0', unit_mode=False, copy=Fal... class PathCollection (line 1223) | class PathCollection(Figure): method __init__ (line 1236) | def __init__(self, resolution, paths, poly_paths = None): method move_by (line 1241) | def move_by(self, dx=0, dy=0, unit_mode=False): method transform (line 1257) | def transform(self, loc=(0, 0), orient='R0', unit_mode=False, copy=True): class TLineBus (line 1270) | class TLineBus(PathCollection): method __init__ (line 1293) | def __init__(self, resolution, layer, points, widths, spaces, end_styl... method paths_iter (line 1327) | def paths_iter(self): method poly_paths_iter (line 1330) | def poly_paths_iter(self): method create_paths (line 1333) | def create_paths(self, delta_list, res): method create_poly_paths (line 1388) | def create_poly_paths(self, delta_list, res): class Polygon (line 1707) | class Polygon(Figure): method __init__ (line 1723) | def __init__(self, method layer (line 1743) | def layer(self): method points (line 1749) | def points(self): method points_unit (line 1754) | def points_unit(self): method content (line 1759) | def content(self): method move_by (line 1767) | def move_by(self, dx=0, dy=0, unit_mode=False): method transform (line 1774) | def transform(self, loc=(0, 0), orient='R0', unit_mode=False, copy=Fal... class Blockage (line 1796) | class Blockage(Polygon): method __init__ (line 1815) | def __init__(self, resolution, block_type, block_layer, points, unit_m... method layer (line 1822) | def layer(self): method type (line 1827) | def type(self): method content (line 1833) | def content(self): class Boundary (line 1843) | class Boundary(Polygon): method __init__ (line 1860) | def __init__(self, resolution, boundary_type, points, unit_mode=False): method type (line 1866) | def type(self): method content (line 1872) | def content(self): class ViaInfo (line 1881) | class ViaInfo(dict): method __init__ (line 1888) | def __init__(self, res, **kwargs): method id (line 1898) | def id(self): method loc (line 1903) | def loc(self): method orient (line 1909) | def orient(self): method num_rows (line 1914) | def num_rows(self): method num_cols (line 1919) | def num_cols(self): method sp_rows (line 1924) | def sp_rows(self): method sp_cols (line 1929) | def sp_cols(self): method enc1 (line 1934) | def enc1(self): method enc2 (line 1940) | def enc2(self): method cut_width (line 1946) | def cut_width(self): method cut_height (line 1951) | def cut_height(self): method arr_nx (line 1956) | def arr_nx(self): method arr_ny (line 1961) | def arr_ny(self): method arr_spx (line 1966) | def arr_spx(self): method arr_spy (line 1971) | def arr_spy(self): method move_by (line 1975) | def move_by(self, dx=0, dy=0): class Via (line 1992) | class Via(Arrayable): method __init__ (line 2026) | def __init__(self, tech, bbox, bot_layer, top_layer, bot_dir, method _update (line 2058) | def _update(self): method top_box (line 2065) | def top_box(self): method bottom_box (line 2071) | def bottom_box(self): method bot_layer (line 2077) | def bot_layer(self): method top_layer (line 2082) | def top_layer(self): method bottom_direction (line 2087) | def bottom_direction(self): method bottom_direction (line 2092) | def bottom_direction(self, new_bot_dir): method top_direction (line 2099) | def top_direction(self): method top_direction (line 2106) | def top_direction(self, new_top_dir): method extend (line 2113) | def extend(self): method extend (line 2118) | def extend(self, new_val): method bbox (line 2122) | def bbox(self): method bbox_array (line 2127) | def bbox_array(self): method bbox (line 2139) | def bbox(self, new_bbox): method content (line 2148) | def content(self): method move_by (line 2161) | def move_by(self, dx=0, dy=0, unit_mode=False): method transform (line 2179) | def transform(self, loc=(0, 0), orient='R0', unit_mode=False, copy=Fal... class PinInfo (line 2196) | class PinInfo(dict): method __init__ (line 2202) | def __init__(self, res, **kwargs): method net_name (line 2209) | def net_name(self): method pin_name (line 2214) | def pin_name(self): method label (line 2219) | def label(self): method layer (line 2224) | def layer(self): method bbox (line 2230) | def bbox(self): method make_rect (line 2237) | def make_rect(self): method move_by (line 2241) | def move_by(self, dx=0, dy=0): FILE: bag/layout/routing/base.py class TrackID (line 15) | class TrackID(object): method __init__ (line 32) | def __init__(self, layer_id, track_idx, width=1, num=1, pitch=0.0): method __repr__ (line 43) | def __repr__(self): method __str__ (line 60) | def __str__(self): method layer_id (line 64) | def layer_id(self): method width (line 69) | def width(self): method base_index (line 74) | def base_index(self): method index_htr (line 81) | def index_htr(self): method num (line 86) | def num(self): method pitch (line 91) | def pitch(self): method pitch_htr (line 98) | def pitch_htr(self): method get_immutable_key (line 102) | def get_immutable_key(self): method get_bounds (line 105) | def get_bounds(self, grid, unit_mode=False): method __iter__ (line 133) | def __iter__(self): method sub_tracks_iter (line 143) | def sub_tracks_iter(self, grid): method transform (line 174) | def transform(self, grid, loc=(0, 0), orient="R0", unit_mode=False): class WireArray (line 202) | class WireArray(object): method __init__ (line 219) | def __init__(self, track_id, lower, upper, res=None, unit_mode=False): method __repr__ (line 233) | def __repr__(self): method __str__ (line 237) | def __str__(self): method resolution (line 241) | def resolution(self): method lower (line 245) | def lower(self): method upper (line 249) | def upper(self): method middle (line 253) | def middle(self): method lower_unit (line 257) | def lower_unit(self): method upper_unit (line 261) | def upper_unit(self): method middle_unit (line 265) | def middle_unit(self): method track_id (line 269) | def track_id(self): method layer_id (line 275) | def layer_id(self): method width (line 281) | def width(self): method list_to_warr (line 285) | def list_to_warr(cls, warr_list): method single_warr_iter (line 316) | def single_warr_iter(cls, warr): method get_immutable_key (line 323) | def get_immutable_key(self): method to_warr_list (line 327) | def to_warr_list(self): method warr_iter (line 330) | def warr_iter(self): method get_bbox_array (line 338) | def get_bbox_array(self, grid): method wire_iter (line 366) | def wire_iter(self, grid): method wire_arr_iter (line 389) | def wire_arr_iter(self, grid): method transform (line 427) | def transform(self, grid, loc=(0, 0), orient='R0', unit_mode=False): class Port (line 469) | class Port(object): method __init__ (line 483) | def __init__(self, term_name, pin_dict, label=''): method __iter__ (line 488) | def __iter__(self): method get_single_layer (line 496) | def get_single_layer(self): method _get_layer (line 503) | def _get_layer(self, layer): method net_name (line 511) | def net_name(self): method label (line 516) | def label(self): method get_pins (line 520) | def get_pins(self, layer=-1): method get_bounding_box (line 537) | def get_bounding_box(self, grid, layer=-1): method transform (line 562) | def transform(self, grid, loc=(0, 0), orient='R0', unit_mode=False): class TrackManager (line 594) | class TrackManager(object): method __init__ (line 614) | def __init__(self, method grid (line 629) | def grid(self): method half_space (line 634) | def half_space(self): method get_width (line 638) | def get_width(self, layer_id, track_type): method get_space (line 655) | def get_space(self, # type: TrackManager method _get_space_from_tuple (line 708) | def _get_space_from_tuple(cls, layer_id, ntup, sp_dict): method _get_space_from_type (line 718) | def _get_space_from_type(cls, layer_id, wtype, sp_dict): method get_next_track (line 738) | def get_next_track(self, # type: TrackManager method place_wires (line 778) | def place_wires(self, # type: TrackManager method _get_align_delta (line 823) | def _get_align_delta(cls, tot_ntr, num_used, alignment): method align_wires (line 837) | def align_wires(self, # type: TrackManager method spread_wires (line 876) | def spread_wires(self, # type: TrackManager FILE: bag/layout/routing/fill.py class RectIndex (line 19) | class RectIndex(object): method __init__ (line 22) | def __init__(self, resolution, basename=None, overwrite=False): method bound_box (line 33) | def bound_box(self): method close (line 38) | def close(self): method record_box (line 41) | def record_box(self, box, dx, dy): method rect_iter (line 50) | def rect_iter(self): method intersection_iter (line 56) | def intersection_iter(self, box, dx=0, dy=0): method intersection_rect_iter (line 68) | def intersection_rect_iter(self, box): class UsedTracks (line 77) | class UsedTracks(object): method __init__ (line 81) | def __init__(self, save_file_basename=None, overwrite=False): method __iter__ (line 87) | def __iter__(self): method get_track_bbox (line 90) | def get_track_bbox(self, layer_id): method track_box_iter (line 96) | def track_box_iter(self): method record_box (line 101) | def record_box(self, layer_id, box, dx, dy, res): method close (line 113) | def close(self): method record_rect (line 117) | def record_rect(self, grid, layer_name, box_arr, dx=-1, dy=-1): method all_rect_iter (line 165) | def all_rect_iter(self): method intersection_rect_iter (line 171) | def intersection_rect_iter(self, layer_id, box): method blockage_iter (line 177) | def blockage_iter(self, layer_id, test_box, spx=0, spy=0): function fill_symmetric_const_space (line 183) | def fill_symmetric_const_space(area, sp_max, n_min, n_max, offset=0): function fill_symmetric_min_density_info (line 264) | def fill_symmetric_min_density_info(area, targ_area, n_min, n_max, sp_min, function fill_symmetric_max_density_info (line 349) | def fill_symmetric_max_density_info(area, targ_area, n_min, n_max, sp_min, function fill_symmetric_max_density (line 462) | def fill_symmetric_max_density(area, # type: int class InsufficientAreaError (line 519) | class InsufficientAreaError(ValueError): class FillTooSmallError (line 523) | class FillTooSmallError(ValueError): class NoFillAbutEdgeError (line 527) | class NoFillAbutEdgeError(ValueError): class NoFillChoiceError (line 531) | class NoFillChoiceError(ValueError): class EmptyRegionError (line 535) | class EmptyRegionError(ValueError): function fill_symmetric_max_num_info (line 539) | def fill_symmetric_max_num_info(tot_area, nfill, n_min, n_max, sp_min, function _fill_symmetric_info (line 625) | def _fill_symmetric_info(tot_area, num_blk_tot, sp, inc_sp=True, fill_on... function _get_min_max_blk_len (line 800) | def _get_min_max_blk_len(fill_info): function fill_symmetric_interval (line 808) | def fill_symmetric_interval(tot_area, sp, num_diff_sp, sp_edge, blk0, bl... function fill_symmetric_helper (line 894) | def fill_symmetric_helper(tot_area, num_blk_tot, sp, offset=0, inc_sp=Tr... FILE: bag/layout/routing/grid.py class RoutingGrid (line 18) | class RoutingGrid(object): method __init__ (line 51) | def __init__(self, # type: RoutingGrid method __contains__ (line 101) | def __contains__(self, layer): method get_middle_track (line 107) | def get_middle_track(cls, tr1, tr2, round_up=False): method _get_track_offset (line 118) | def _get_track_offset(self, layer_id): method get_flip_parity (line 124) | def get_flip_parity(self): method get_bot_common_layer (line 129) | def get_bot_common_layer(self, inst_grid, inst_top_layer): method get_flip_parity_at (line 160) | def get_flip_parity_at(self, # type: RoutingGrid method set_flip_parity (line 226) | def set_flip_parity(self, fp): method tech_info (line 233) | def tech_info(self): method resolution (line 239) | def resolution(self): method layout_unit (line 245) | def layout_unit(self): method top_private_layer (line 251) | def top_private_layer(self): method update_block_pitch (line 256) | def update_block_pitch(self): method _update_block_pitch_helper (line 272) | def _update_block_pitch_helper(self, lay_list): method get_direction (line 290) | def get_direction(self, layer_id): method get_track_pitch (line 306) | def get_track_pitch(self, layer_id, unit_mode=False): method get_track_width (line 325) | def get_track_width(self, layer_id, width_ntr, unit_mode=False): method get_track_width_inverse (line 351) | def get_track_width_inverse(self, layer_id, width, mode=-1, unit_mode=... method get_num_tracks (line 398) | def get_num_tracks(self, size, layer_id): method get_min_length (line 426) | def get_min_length(self, layer_id, width_ntr, unit_mode=False): method get_space (line 457) | def get_space(self, layer_id, width_ntr, same_color=False, unit_mode=F... method get_num_space_tracks (line 489) | def get_num_space_tracks(self, layer_id, width_ntr, half_space=False, ... method get_line_end_space (line 529) | def get_line_end_space(self, layer_id, width_ntr, unit_mode=False): method get_line_end_space_tracks (line 557) | def get_line_end_space_tracks(self, wire_layer, space_layer, width_ntr... method get_max_track_width (line 600) | def get_max_track_width(self, layer_id, num_tracks, tot_space, half_en... method get_evenly_spaced_tracks (line 640) | def get_evenly_spaced_tracks(num_tracks, tot_space, track_width, half_... method get_block_size (line 680) | def get_block_size(self, layer_id, unit_mode=False, include_private=Fa... method get_fill_size (line 736) | def get_fill_size(self, # type: RoutingGrid method size_defined (line 790) | def size_defined(self, layer_id): method get_size_pitch (line 795) | def get_size_pitch(self, layer_id, unit_mode=False): method get_size_tuple (line 827) | def get_size_tuple(self, # type: RoutingGrid method get_size_dimension (line 888) | def get_size_dimension(self, # type: RoutingGrid method convert_size (line 917) | def convert_size(self, size, new_top_layer): method get_track_info (line 936) | def get_track_info(self, layer_id, unit_mode=False): method get_track_parity (line 959) | def get_track_parity(self, layer_id, tr_idx): method get_layer_name (line 983) | def get_layer_name(self, layer_id, tr_idx): method get_wire_bounds (line 1007) | def get_wire_bounds(self, layer_id, tr_idx, width=1, unit_mode=False): method get_bbox (line 1037) | def get_bbox(self, layer_id, tr_idx, lower, upper, width=1, unit_mode=... method get_min_track_width (line 1073) | def get_min_track_width(self, layer_id, idc=0, iac_rms=0, iac_peak=0, ... method get_min_track_width_for_via (line 1178) | def get_min_track_width_for_via(self, method get_track_index_range (line 1202) | def get_track_index_range(self, # type: RoutingGrid method get_overlap_tracks (line 1287) | def get_overlap_tracks(self, # type: RoutingGrid method get_via_extensions_dim (line 1329) | def get_via_extensions_dim(self, # type: RoutingGrid method get_via_extensions (line 1388) | def get_via_extensions(self, bot_layer_id, bot_width, top_width, unit_... method coord_to_track (line 1414) | def coord_to_track(self, layer_id, coord, unit_mode=False): method find_next_track (line 1445) | def find_next_track(self, layer_id, coord, tr_width=1, half_track=False, method coord_to_nearest_track (line 1482) | def coord_to_nearest_track(self, layer_id, coord, half_track=False, mo... method coord_to_nearest_fill_track (line 1549) | def coord_to_nearest_fill_track(self, layer_id, coord, fill_config, mo... method transform_track (line 1579) | def transform_track(self, # type: RoutingGrid method track_to_coord (line 1638) | def track_to_coord(self, layer_id, track_idx, unit_mode=False): method interval_to_track (line 1662) | def interval_to_track(self, # type: RoutingGrid method copy (line 1710) | def copy(self): method ignore_layers_under (line 1735) | def ignore_layers_under(self, layer_id): method add_new_layer (line 1749) | def add_new_layer(self, layer_id, tr_space, tr_width, direction, method set_track_offset (line 1816) | def set_track_offset(self, layer_id, offset, unit_mode=False): method add_width_override (line 1834) | def add_width_override(self, layer_id, width_ntr, tr_width, unit_mode=... FILE: bag/layout/tech.py class TechInfoConfig (line 14) | class TechInfoConfig(TechInfo, metaclass=abc.ABCMeta): method __init__ (line 16) | def __init__(self, config, tech_params, mos_entry_name='mos'): method get_metal_em_specs (line 26) | def get_metal_em_specs(self, layer_name, w, l=-1, vertical=False, **kw... method get_via_em_specs (line 30) | def get_via_em_specs(self, via_name, bm_layer, tm_layer, via_type='squ... method get_res_em_specs (line 35) | def get_res_em_specs(self, res_type, w, l=-1, **kwargs): method add_cell_boundary (line 39) | def add_cell_boundary(self, template, box): method draw_device_blockage (line 44) | def draw_device_blockage(self, template): method get_via_arr_enc (line 49) | def get_via_arr_enc(self, vname, vtype, mtype, mw_unit, is_bot): method pin_purpose (line 54) | def pin_purpose(self): method get_via_types (line 57) | def get_via_types(self, bmtype, tmtype): method get_well_layers (line 64) | def get_well_layers(self, sub_type): method get_implant_layers (line 68) | def get_implant_layers(self, mos_type, res_type=None): method get_threshold_layers (line 77) | def get_threshold_layers(self, mos_type, threshold, res_type=None): method get_exclude_layer (line 86) | def get_exclude_layer(self, layer_id): method get_dnw_margin_unit (line 91) | def get_dnw_margin_unit(self, dnw_mode): method get_dnw_layers (line 95) | def get_dnw_layers(self): method get_res_metal_layers (line 99) | def get_res_metal_layers(self, layer_id): method get_metal_dummy_layers (line 103) | def get_metal_dummy_layers(self, layer_id): method use_flip_parity (line 107) | def use_flip_parity(self): method get_layer_name (line 111) | def get_layer_name(self, layer_id): method get_layer_id (line 116) | def get_layer_id(self, layer_name): method get_layer_type (line 123) | def get_layer_type(self, layer_name): method get_idc_scale_factor (line 128) | def get_idc_scale_factor(self, temp, mtype, is_res=False): method get_via_name (line 146) | def get_via_name(self, bot_layer_id): method get_via_id (line 150) | def get_via_id(self, bot_layer, top_layer): method get_via_drc_info (line 154) | def get_via_drc_info(self, vname, vtype, mtype, mw_unit, is_bot): method _space_helper (line 214) | def _space_helper(self, config_name, layer_type, width): method get_min_space_unit (line 228) | def get_min_space_unit(self, layer_type, w_unit, same_color=False): method get_min_line_end_space_unit (line 237) | def get_min_line_end_space_unit(self, layer_type, w_unit): method get_min_space (line 240) | def get_min_space(self, layer_type, width, unit_mode=False, same_color... method get_min_line_end_space (line 252) | def get_min_line_end_space(self, layer_type, width, unit_mode=False): method layer_id_to_type (line 264) | def layer_id_to_type(self, layer_id): method get_min_length_unit (line 269) | def get_min_length_unit(self, layer_type, w_unit): method get_min_length (line 294) | def get_min_length(self, layer_type, width): method get_res_rsquare (line 299) | def get_res_rsquare(self, res_type): method get_res_width_bounds (line 302) | def get_res_width_bounds(self, res_type): method get_res_length_bounds (line 305) | def get_res_length_bounds(self, res_type): method get_res_min_nsquare (line 308) | def get_res_min_nsquare(self, res_type): FILE: bag/layout/template.py class TemplateDB (line 52) | class TemplateDB(MasterDB): method __init__ (line 82) | def __init__(self, # type: TemplateDB method create_master_instance (line 133) | def create_master_instance(self, gen_cls, lib_name, params, used_cell_... method create_masters_in_db (line 160) | def create_masters_in_db(self, lib_name, content_list, debug=False): method grid (line 232) | def grid(self): method new_template (line 237) | def new_template(self, lib_name='', temp_name='', params=None, temp_cl... method instantiate_layout (line 268) | def instantiate_layout(self, prj, template, top_cell_name=None, debug=... method batch_layout (line 287) | def batch_layout(self, method save_to_cache (line 317) | def save_to_cache(self, temp_list, dir_name, debug=False): method _create_gds (line 333) | def _create_gds(self, lib_name, content_list, debug=False): method _add_gds_via (line 454) | def _add_gds_via(self, gds_cell, via, lay_map, via_lay_info, x0, y0): class TemplateBase (line 496) | class TemplateBase(DesignMaster, metaclass=abc.ABCMeta): method __init__ (line 527) | def __init__(self, temp_db, lib_name, params, used_names, **kwargs): method draw_layout (line 564) | def draw_layout(self): method populate_params (line 574) | def populate_params(self, table, params_info, default_params, **kwargs): method get_master_basename (line 592) | def get_master_basename(self): method get_layout_basename (line 603) | def get_layout_basename(self): method get_content (line 614) | def get_content(self, lib_name, rename_fun): method finalize (line 634) | def finalize(self): method get_cache_properties (line 690) | def get_cache_properties(cls): method template_db (line 696) | def template_db(self): method is_empty (line 703) | def is_empty(self): method grid (line 709) | def grid(self): method grid (line 715) | def grid(self, new_grid): method array_box (line 724) | def array_box(self): method array_box (line 730) | def array_box(self, new_array_box): method fill_box (line 739) | def fill_box(self): method fill_box (line 745) | def fill_box(self, new_box): method top_layer (line 754) | def top_layer(self): method size (line 764) | def size(self): method bound_box (line 770) | def bound_box(self): method size (line 783) | def size(self, new_size): method used_tracks (line 792) | def used_tracks(self): method _update_flip_parity (line 796) | def _update_flip_parity(self): method instance_iter (line 808) | def instance_iter(self): method blockage_iter (line 811) | def blockage_iter(self, layer_id, test_box, spx=0, spy=0): method all_rect_iter (line 819) | def all_rect_iter(self): method intersection_rect_iter (line 827) | def intersection_rect_iter(self, layer_id, box): method open_interval_iter (line 834) | def open_interval_iter(self, # type: TemplateBase method is_track_available (line 866) | def is_track_available(self, # type: TemplateBase method get_rect_bbox (line 906) | def get_rect_bbox(self, layer): method get_track_bbox (line 924) | def get_track_bbox(self, layer_id): method track_bbox_iter (line 932) | def track_bbox_iter(self): method new_template_with (line 938) | def new_template_with(self, **kwargs): method set_size_from_bound_box (line 959) | def set_size_from_bound_box(self, top_layer_id, bbox, round_up=False, method set_size_from_array_box (line 986) | def set_size_from_array_box(self, top_layer_id): method write_summary_file (line 1011) | def write_summary_file(self, fname, lib_name, cell_name): method write_to_disk (line 1050) | def write_to_disk(self, fname, lib_name, cell_name, debug=False): method merge_inst_tracks (line 1086) | def merge_inst_tracks(self): method get_pin_name (line 1096) | def get_pin_name(self, name): method get_port (line 1116) | def get_port(self, name=''): method has_port (line 1137) | def has_port(self, port_name): method port_names_iter (line 1142) | def port_names_iter(self): method get_prim_port (line 1153) | def get_prim_port(self, name=''): method has_prim_port (line 1174) | def has_prim_port(self, port_name): method prim_port_names_iter (line 1179) | def prim_port_names_iter(self): method new_template (line 1190) | def new_template(self, params=None, temp_cls=None, debug=False, **kwar... method move_all_by (line 1214) | def move_all_by(self, dx=0.0, dy=0.0, unit_mode=False): method add_instance (line 1232) | def add_instance(self, # type: TemplateBase method add_instance_primitive (line 1285) | def add_instance_primitive(self, # type: TemplateBase method add_rect (line 1339) | def add_rect(self, # type: TemplateBase method add_res_metal (line 1379) | def add_res_metal(self, layer_id, bbox, **kwargs): method add_path (line 1404) | def add_path(self, path): method add_polygon (line 1494) | def add_polygon(self, polygon): method add_blockage (line 1511) | def add_blockage(self, blockage): method add_cell_boundary (line 1528) | def add_cell_boundary(self, box): method add_boundary (line 1541) | def add_boundary(self, boundary): method reexport (line 1558) | def reexport(self, port, net_name='', label='', show=True): method add_pin_primitive (line 1603) | def add_pin_primitive(self, net_name, layer, bbox, label='', show=True): method add_label (line 1643) | def add_label(self, label, layer, bbox): method add_pin (line 1660) | def add_pin(self, net_name, wire_arr_list, label='', show=True, edge_m... method add_via (line 1723) | def add_via(self, # type: TemplateBase method add_via_primitive (line 1777) | def add_via_primitive(self, via_type, # type: str method add_via_on_grid (line 1856) | def add_via_on_grid(self, bot_layer_id, bot_track, top_track, bot_widt... method extend_wires (line 1889) | def extend_wires(self, # type: TemplateBase method add_wires (line 1971) | def add_wires(self, # type: TemplateBase method add_res_metal_warr (line 2021) | def add_res_metal_warr(self, # type: TemplateBase method add_mom_cap (line 2055) | def add_mom_cap(self, # type: TemplateBase method reserve_tracks (line 2340) | def reserve_tracks(self, # type: TemplateBase method connect_wires (line 2380) | def connect_wires(self, # type: TemplateBase method _draw_via_on_track (line 2556) | def _draw_via_on_track(self, wlayer, box_arr, track_id, tl_unit=None, method connect_bbox_to_tracks (line 2619) | def connect_bbox_to_tracks(self, # type: TemplateBase method connect_bbox_to_differential_tracks (line 2722) | def connect_bbox_to_differential_tracks(self, # type: TemplateBase method connect_bbox_to_matching_tracks (line 2776) | def connect_bbox_to_matching_tracks(self, # type: TemplateBase method connect_to_tracks (line 2899) | def connect_to_tracks(self, # type: TemplateBase method connect_to_track_wires (line 3048) | def connect_to_track_wires(self, # type: TemplateBase method connect_with_via_stack (line 3098) | def connect_with_via_stack(self, # type: TemplateBase method strap_wires (line 3239) | def strap_wires(self, # type: TemplateBase method _strap_wires_helper (line 3299) | def _strap_wires_helper(self, # type: TemplateBase method connect_differential_tracks (line 3394) | def connect_differential_tracks(self, # type: TemplateBase method connect_differential_wires (line 3449) | def connect_differential_wires(self, # type: TemplateBase method connect_matching_tracks (line 3486) | def connect_matching_tracks(self, # type: TemplateBase method draw_vias_on_intersections (line 3624) | def draw_vias_on_intersections(self, bot_warr_list, top_warr_list): method mark_bbox_used (line 3687) | def mark_bbox_used(self, layer_id, bbox): method get_available_tracks (line 3694) | def get_available_tracks(self, # type: TemplateBase method do_power_fill (line 3715) | def do_power_fill(self, # type: TemplateBase method do_max_space_fill2 (line 3810) | def do_max_space_fill2(self, # type: TemplateBase method do_max_space_fill (line 3979) | def do_max_space_fill(self, # type: TemplateBase method _fill_poly_bounds (line 4097) | def _fill_poly_bounds(self, poly, layer_id, is_horiz, min_len2, fill_p... method _get_flat_poly_iter (line 4144) | def _get_flat_poly_iter(cls, poly): method _fill_long_edge_helper (line 4152) | def _fill_long_edge_helper(self, layer_id, grid, tot_geo, long_box, co... method _fill_tran_edge_helper (line 4184) | def _fill_tran_edge_helper(self, layer_id, grid, tot_geo, tran_box, tr... class CachedTemplate (line 4205) | class CachedTemplate(TemplateBase): method __init__ (line 4208) | def __init__(self, temp_db, lib_name, params, used_names, **kwargs): method get_params_info (line 4213) | def get_params_info(cls): method draw_layout (line 4219) | def draw_layout(self): class BlackBoxTemplate (line 4243) | class BlackBoxTemplate(TemplateBase): method __init__ (line 4246) | def __init__(self, temp_db, lib_name, params, used_names, **kwargs): method sch_params (line 4252) | def sch_params(self): method get_params_info (line 4257) | def get_params_info(cls): method get_layout_basename (line 4268) | def get_layout_basename(self): method draw_layout (line 4271) | def draw_layout(self): method _register_pin (line 4302) | def _register_pin(self, lay_id, lay_name, term_name, box, show_pins): FILE: bag/layout/util.py function tuple2_to_int (line 26) | def tuple2_to_int(input_tuple: Tuple[Any, Any]) -> Tuple[int, int]: function tuple2_to_float_int (line 35) | def tuple2_to_float_int(input_tuple: Tuple[Any, Any]) -> Tuple[float, int]: function transform_point (line 44) | def transform_point(x, y, loc, orient): function get_inverse_transform (line 55) | def get_inverse_transform(loc, orient): function transform_loc_orient (line 69) | def transform_loc_orient(loc, orient, trans_loc, trans_orient): class PortSpec (line 81) | class PortSpec(object): method __init__ (line 92) | def __init__(self, ntr, idc): method ntr (line 97) | def ntr(self): method idc (line 102) | def idc(self): method __str__ (line 106) | def __str__(self): method __repr__ (line 109) | def __repr__(self): class BBox (line 114) | class BBox(object): method __init__ (line 134) | def __init__(self, left, bottom, right, top, resolution, unit_mode=Fal... method get_invalid_bbox (line 152) | def get_invalid_bbox(cls): method left (line 164) | def left(self): method left_unit (line 169) | def left_unit(self): method right (line 174) | def right(self): method right_unit (line 179) | def right_unit(self): method bottom (line 184) | def bottom(self): method bottom_unit (line 189) | def bottom_unit(self): method top (line 194) | def top(self): method top_unit (line 199) | def top_unit(self): method resolution (line 204) | def resolution(self): method width (line 209) | def width(self): method width_unit (line 214) | def width_unit(self): method height (line 219) | def height(self): method height_unit (line 224) | def height_unit(self): method xc (line 229) | def xc(self): method xc_unit (line 234) | def xc_unit(self): method yc (line 239) | def yc(self): method yc_unit (line 244) | def yc_unit(self): method get_points (line 248) | def get_points(self, unit_mode=False): method as_bbox_array (line 273) | def as_bbox_array(self): method as_bbox_collection (line 277) | def as_bbox_collection(self): method merge (line 281) | def merge(self, bbox): method intersect (line 306) | def intersect(self, bbox): method overlaps (line 326) | def overlaps(self, bbox): method extend (line 335) | def extend(self, x=None, y=None, unit_mode=False): method expand (line 367) | def expand(self, dx=0, dy=0, unit_mode=False): method transform (line 392) | def transform(self, loc=(0, 0), orient='R0', unit_mode=False): method move_by (line 424) | def move_by(self, dx=0, dy=0, unit_mode=False): method flip_xy (line 449) | def flip_xy(self): method with_interval (line 455) | def with_interval(self, direction, lower, upper, unit_mode=False): method get_interval (line 464) | def get_interval(self, direction, unit_mode=False): method get_bounds (line 491) | def get_bounds(self, unit_mode=False): method is_physical (line 510) | def is_physical(self): method is_valid (line 520) | def is_valid(self): method get_immutable_key (line 530) | def get_immutable_key(self): method __str__ (line 535) | def __str__(self): method __repr__ (line 538) | def __repr__(self): method __hash__ (line 543) | def __hash__(self): method __eq__ (line 546) | def __eq__(self, other): class BBoxArray (line 550) | class BBoxArray(object): method __init__ (line 571) | def __init__(self, bbox, nx=1, ny=1, spx=0, spy=0, unit_mode=False): method __iter__ (line 590) | def __iter__(self): method base (line 600) | def base(self): method nx (line 606) | def nx(self): method ny (line 612) | def ny(self): method spx (line 618) | def spx(self): method spx_unit (line 624) | def spx_unit(self): method spy (line 630) | def spy(self): method spy_unit (line 636) | def spy_unit(self): method left (line 642) | def left(self): method left_unit (line 648) | def left_unit(self): method right (line 654) | def right(self): method right_unit (line 660) | def right_unit(self): method bottom (line 666) | def bottom(self): method bottom_unit (line 672) | def bottom_unit(self): method top (line 678) | def top(self): method top_unit (line 684) | def top_unit(self): method xc (line 690) | def xc(self): method xc_unit (line 694) | def xc_unit(self): method yc (line 699) | def yc(self): method yc_unit (line 703) | def yc_unit(self): method as_bbox_collection (line 707) | def as_bbox_collection(self): method get_bbox (line 712) | def get_bbox(self, idx): method get_overall_bbox (line 727) | def get_overall_bbox(self): method move_by (line 738) | def move_by(self, dx=0, dy=0, unit_mode=False): method transform (line 758) | def transform(self, loc=(0, 0), orient='R0', unit_mode=False): method arrayed_copies (line 807) | def arrayed_copies(self, nx=1, ny=1, spx=0, spy=0, unit_mode=False): method _array_helper (line 845) | def _array_helper(n1, sp1, n2, sp2): method __str__ (line 861) | def __str__(self): method __repr__ (line 864) | def __repr__(self): class BBoxCollection (line 871) | class BBoxCollection(object): method __init__ (line 883) | def __init__(self, box_arr_list): method __iter__ (line 886) | def __iter__(self): method __reversed__ (line 890) | def __reversed__(self): method __len__ (line 893) | def __len__(self): method as_bbox_array (line 896) | def as_bbox_array(self): method as_bbox (line 914) | def as_bbox(self): method get_bounding_box (line 934) | def get_bounding_box(self): method transform (line 950) | def transform(self, loc=(0, 0), orient='R0'): method __str__ (line 970) | def __str__(self): method __repr__ (line 973) | def __repr__(self): class Pin (line 977) | class Pin(object): method __init__ (line 994) | def __init__(self, pin_name, term_name, layer, bbox): method pin_name (line 1004) | def pin_name(self): method term_name (line 1009) | def term_name(self): method layer (line 1014) | def layer(self): method bbox (line 1019) | def bbox(self): method __str__ (line 1023) | def __str__(self): method __repr__ (line 1026) | def __repr__(self): FILE: bag/math/__init__.py function float_to_si_string (line 18) | def float_to_si_string(num, precision=6): function si_string_to_float (line 48) | def si_string_to_float(si_str): function gcd (line 68) | def gcd(a, b): function lcm (line 89) | def lcm(arr, init=1): FILE: bag/math/dfun.py class DiffFunction (line 12) | class DiffFunction(abc.ABC): method __init__ (line 26) | def __init__(self, input_ranges, delta_list=None): method input_ranges (line 37) | def input_ranges(self): method ndim (line 42) | def ndim(self): method __call__ (line 48) | def __call__(self, xi): method get_input_range (line 65) | def get_input_range(self, idx): method deriv (line 70) | def deriv(self, xi, j): method jacobian (line 89) | def jacobian(self, xi): method _fd (line 116) | def _fd(self, xi, idx, delta): method _fd_jacobian (line 152) | def _fd_jacobian(self, xi, delta_list): method transform_input (line 184) | def transform_input(self, amat, bmat): method __add__ (line 202) | def __add__(self, other): method __radd__ (line 213) | def __radd__(self, other): method __sub__ (line 217) | def __sub__(self, other): method __rsub__ (line 228) | def __rsub__(self, other): method __mul__ (line 239) | def __mul__(self, other): method __rmul__ (line 250) | def __rmul__(self, other): method __pow__ (line 254) | def __pow__(self, other): method __div__ (line 263) | def __div__(self, other): method __truediv__ (line 274) | def __truediv__(self, other): method __rdiv__ (line 278) | def __rdiv__(self, other): method __rtruediv__ (line 289) | def __rtruediv__(self, other): method __neg__ (line 293) | def __neg__(self): class InLinTransformFunction (line 298) | class InLinTransformFunction(DiffFunction): method __init__ (line 312) | def __init__(self, f1, amat, bmat): method _get_arg (line 325) | def _get_arg(self, xi): method __call__ (line 335) | def __call__(self, xi): method deriv (line 342) | def deriv(self, xi, j): method jacobian (line 346) | def jacobian(self, xi): class ScaleAddFunction (line 353) | class ScaleAddFunction(DiffFunction): method __init__ (line 365) | def __init__(self, f1, adder, scaler): method __call__ (line 372) | def __call__(self, xi): method deriv (line 375) | def deriv(self, xi, j): method jacobian (line 378) | def jacobian(self, xi): function _intersection (line 382) | def _intersection(*args): class SumDiffFunction (line 402) | class SumDiffFunction(DiffFunction): method __init__ (line 414) | def __init__(self, f1, f2, f2_sgn=1.0): method __call__ (line 424) | def __call__(self, xi): method deriv (line 427) | def deriv(self, xi, j): method jacobian (line 430) | def jacobian(self, xi): class ProdFunction (line 434) | class ProdFunction(DiffFunction): method __init__ (line 444) | def __init__(self, f1, f2): method __call__ (line 453) | def __call__(self, xi): method deriv (line 456) | def deriv(self, xi, j): method jacobian (line 459) | def jacobian(self, xi): class DivFunction (line 467) | class DivFunction(DiffFunction): method __init__ (line 477) | def __init__(self, f1, f2): method __call__ (line 486) | def __call__(self, xi): method deriv (line 489) | def deriv(self, xi, j): method jacobian (line 493) | def jacobian(self, xi): class PwrFunction (line 502) | class PwrFunction(DiffFunction): method __init__ (line 514) | def __init__(self, f, pwr, scale=1.0): method __call__ (line 521) | def __call__(self, xi): method deriv (line 524) | def deriv(self, xi, j): method jacobian (line 527) | def jacobian(self, xi): class VectorDiffFunction (line 533) | class VectorDiffFunction(object): method __init__ (line 542) | def __init__(self, fun_list): method in_dim (line 559) | def in_dim(self): method out_dim (line 565) | def out_dim(self): method get_input_range (line 570) | def get_input_range(self, idx): method __call__ (line 575) | def __call__(self, xi): method jacobian (line 595) | def jacobian(self, xi): method deriv (line 615) | def deriv(self, xi, i, j): FILE: bag/math/interpolate.py function _scales_to_points (line 18) | def _scales_to_points(scale_list, values, delta=1e-4): function interpolate_grid (line 42) | def interpolate_grid(scale_list, values, method='spline', class LinearInterpolator (line 91) | class LinearInterpolator(DiffFunction): method __init__ (line 109) | def __init__(self, points, values, delta_list, extrapolate=False): method get_input_points (line 119) | def get_input_points(self, idx): method __call__ (line 124) | def __call__(self, xi): method integrate (line 142) | def integrate(self, xstart, xstop, axis=-1, logx=False, logy=False, ra... class Interpolator1D (line 268) | class Interpolator1D(DiffFunction): method __init__ (line 285) | def __init__(self, scale_list, values, method='spline', extrapolate=Fa... method __call__ (line 308) | def __call__(self, xi): method deriv (line 326) | def deriv(self, xi, idx): class Spline2D (line 350) | class Spline2D(DiffFunction): method __init__ (line 365) | def __init__(self, scale_list, values, extrapolate=False): method _get_xy (line 386) | def _get_xy(self, xi): method __call__ (line 402) | def __call__(self, xi): method deriv (line 418) | def deriv(self, xi, idx): class MapCoordinateSpline (line 443) | class MapCoordinateSpline(DiffFunction): method __init__ (line 472) | def __init__(self, scale_list, values, extrapolate=False, num_extrapol... method _normalize_inputs (line 502) | def _normalize_inputs(self, xi): method __call__ (line 519) | def __call__(self, xi): FILE: bag/mdao/components.py class VecFunComponent (line 10) | class VecFunComponent(omdao.Component): method __init__ (line 33) | def __init__(self, output_name, fun_list, params, method __call__ (line 62) | def __call__(self, **kwargs): method _get_inputs (line 79) | def _get_inputs(self, params): method solve_nonlinear (line 97) | def solve_nonlinear(self, params, unknowns, resids=None): method linearize (line 119) | def linearize(self, params, unknowns=None, resids=None): FILE: bag/mdao/core.py class GroupBuilder (line 14) | class GroupBuilder(object): method __init__ (line 23) | def __init__(self): method _add_node (line 27) | def _add_node(self, name, ndim, **kwargs): method _add_edge (line 32) | def _add_edge(self, parent, child): method get_inputs (line 40) | def get_inputs(self): method get_variables (line 50) | def get_variables(self): method get_variable_info (line 60) | def get_variable_info(self, name): method add_fun (line 80) | def add_fun(self, var_name, fun_list, params, param_ranges, vector_par... method add_var (line 139) | def add_var(self, variable, vmin, vmax, ndim=1): method set_input_limit (line 157) | def set_input_limit(self, var, equals=None, lower=None, upper=None): method add_expr (line 185) | def add_expr(self, eqn, ndim): method build (line 217) | def build(self, debug=False): FILE: bag/simulation/core.py class TestbenchManager (line 23) | class TestbenchManager(object, metaclass=abc.ABCMeta): method __init__ (line 43) | def __init__(self, method setup_testbench (line 60) | def setup_testbench(self, tb): method setup_and_simulate (line 74) | async def setup_and_simulate(self, prj: BagProject, method record_array (line 99) | def record_array(cls, output_dict, data_dict, arr, arr_name, sweep_par... method _create_tb_schematic (line 132) | def _create_tb_schematic(self, prj, sch_params): class MeasurementManager (line 157) | class MeasurementManager(object, metaclass=abc.ABCMeta): method __init__ (line 184) | def __init__(self, # type: MeasurementManager method get_initial_state (line 205) | def get_initial_state(self): method get_testbench_info (line 211) | def get_testbench_info(self, # type: MeasurementManager method process_output (line 248) | def process_output(self, state, data, tb_manager): method get_testbench_name (line 272) | def get_testbench_name(self, tb_type): method async_measure_performance (line 277) | async def async_measure_performance(self, method get_state_output (line 339) | def get_state_output(self, state): method get_testbench_specs (line 345) | def get_testbench_specs(self, tb_type): method get_default_tb_sch_params (line 350) | def get_default_tb_sch_params(self, tb_type): class DesignManager (line 380) | class DesignManager(object): method __init__ (line 395) | def __init__(self, prj, spec_file): method load_state (line 412) | def load_state(cls, prj, root_dir): method get_measurement_name (line 418) | def get_measurement_name(cls, dsn_name, meas_type): method get_wrapper_name (line 437) | def get_wrapper_name(cls, dut_name, wrapper_name): method specs (line 443) | def specs(self): method swp_var_list (line 449) | def swp_var_list(self): method extract_design (line 453) | async def extract_design(self, lib_name: str, dsn_name: str, method verify_design (line 479) | async def verify_design(self, lib_name: str, dsn_name: str, method main_task (line 530) | async def main_task(self, lib_name: str, dsn_name: str, method characterize_designs (line 541) | def characterize_designs(self, generate=True, measure=True, load_from_... method get_result (line 576) | def get_result(self, dsn_name): method test_layout (line 595) | def test_layout(self, gen_sch=True): method create_designs (line 614) | def create_designs(self, create_layout): method get_swp_var_values (line 645) | def get_swp_var_values(self, var): method get_combinations_iter (line 661) | def get_combinations_iter(self): method get_dsn_name_iter (line 674) | def get_dsn_name_iter(self): method get_measurement_directory (line 685) | def get_measurement_directory(self, dsn_name, meas_type): method make_tdb (line 689) | def make_tdb(self): method get_layout_params (line 713) | def get_layout_params(self, val_list): method get_schematic_params (line 722) | def get_schematic_params(self, val_list): method create_dut_schematics (line 731) | def create_dut_schematics(self, sch_params_list, cell_name_list, gen_w... method create_dut_layouts (line 759) | def create_dut_layouts(self, lay_params_list, cell_name_list, temp_db): method get_design_name (line 779) | def get_design_name(self, combo_list): FILE: bag/simulation/core_v2.py class TestbenchManager (line 21) | class TestbenchManager(abc.ABC): method __init__ (line 32) | def __init__(self, work_dir: Path) -> None: method work_dir (line 38) | def work_dir(self) -> Path: method specs (line 42) | def specs(self): method sim_vars (line 46) | def sim_vars(self): method pre_setup (line 50) | def pre_setup(self, tb_params: Optional[Dict[str, Any]]) -> Optional[D... method setup (line 66) | def setup(self, bprj, impl_lib, impl_cell, sim_view_list, env_list, method setup_and_simulate (line 140) | async def setup_and_simulate(self, bprj, impl_lib, impl_cell, sim_view... method simulate (line 155) | def simulate(self, bprj, impl_lib, impl_cell, sim_view_list, env_list,... method load_results (line 166) | def load_results(self, impl_cell, tb_dict): class MeasurementManager (line 179) | class MeasurementManager(abc.ABC): method __init__ (line 181) | def __init__(self, work_dir: Path, mm_specs: Dict[str, Any]) -> None: method specs (line 197) | def specs(self): method work_dir (line 201) | def work_dir(self): method _prepare_tb_specs (line 204) | def _prepare_tb_specs(self) -> None: method _prepare_tbm_dict (line 213) | def _prepare_tbm_dict(self, impl_cell, tbm_dict, extract): method _wrapper_exists (line 233) | def _wrapper_exists(self, wrapper: ImmutableType) -> bool: method run_tb (line 237) | def run_tb(self, bprj, impl_lib, impl_cell, tb_name, tbm_dict=None, ex... method run_flow (line 268) | def run_flow(self, bprj: BagProject, impl_lib: str, impl_cell: str, method measure (line 296) | def measure(self, bprj: BagProject, impl_lib: str, impl_cell: str, loa... FILE: bag/tech/core.py function _equal (line 23) | def _equal(a, b, rtol, atol): function _equal_list (line 34) | def _equal_list(a, b, rtol, atol): function _index_in_list (line 44) | def _index_in_list(item_list, item, rtol, atol): function _in_list (line 52) | def _in_list(item_list, item, rtol, atol): class CircuitCharacterization (line 57) | class CircuitCharacterization(SimulationManager, metaclass=abc.ABCMeta): method __init__ (line 88) | def __init__(self, prj, spec_file, tb_type, compression='gzip'): method record_results (line 95) | def record_results(self, data, tb_type, val_list): method get_sim_results (line 129) | def get_sim_results(self, tb_type, val_list): method _get_env_result (line 134) | def _get_env_result(self, sim_results, env): class CharDB (line 179) | class CharDB(abc.ABC): method __init__ (line 220) | def __init__(self, # type: CharDB method _convert_hdf5_array (line 327) | def _convert_hdf5_array(arr): method _load_sim_data (line 334) | def _load_sim_data(self, # type: CharDB method __getitem__ (line 453) | def __getitem__(self, param): method __setitem__ (line 469) | def __setitem__(self, key, value): method get_config (line 498) | def get_config(self, name): method set_config (line 514) | def set_config(self, name, value): method env_list (line 530) | def env_list(self): method env_list (line 536) | def env_list(self, new_env_list): method get_sim_file (line 542) | def get_sim_file(cls, root_dir, constants): method get_cache_file (line 561) | def get_cache_file(cls, root_dir, constants): method post_process_data (line 580) | def post_process_data(cls, sim_data, sweep_params, sweep_values, const... method derived_parameters (line 603) | def derived_parameters(cls): method compute_derived_parameters (line 609) | def compute_derived_parameters(cls, fdict): method _get_function_index (line 625) | def _get_function_index(self, **kwargs): method _get_function_helper (line 656) | def _get_function_helper(self, name, fidx_list): method get_function (line 700) | def get_function(self, name, env='', **kwargs): method get_fun_sweep_params (line 737) | def get_fun_sweep_params(self): method _get_fun_arg (line 750) | def _get_fun_arg(self, **kwargs): method query (line 762) | def query(self, **kwargs): method minimize (line 791) | def minimize(self, # type: CharDB FILE: bag/tech/mos.py class MosCharDB (line 14) | class MosCharDB(CharDB): method __init__ (line 50) | def __init__(self, root_dir, mos_type, discrete_params, env_list, method get_sim_file (line 58) | def get_sim_file(cls, root_dir, constants): method get_cache_file (line 76) | def get_cache_file(cls, root_dir, constants): method post_process_data (line 94) | def post_process_data(cls, sim_data, sweep_params, sweep_values, const... method derived_parameters (line 145) | def derived_parameters(cls): method compute_derived_parameters (line 150) | def compute_derived_parameters(cls, fdict): class MosCharGDDB (line 175) | class MosCharGDDB(CharDB): method __init__ (line 211) | def __init__(self, root_dir, mos_type, discrete_params, env_list, method get_sim_file (line 219) | def get_sim_file(cls, root_dir, constants): method get_cache_file (line 237) | def get_cache_file(cls, root_dir, constants): method post_process_data (line 255) | def post_process_data(cls, sim_data, sweep_params, sweep_values, const... method derived_parameters (line 298) | def derived_parameters(cls): method compute_derived_parameters (line 303) | def compute_derived_parameters(cls, fdict): FILE: bag/util/cache.py function _get_unique_name (line 20) | def _get_unique_name(basename, *args): class ClassImporter (line 72) | class ClassImporter(object): method __init__ (line 82) | def __init__(self, lib_defs): method append_library (line 105) | def append_library(self, lib_name, lib_path): method get_library_path (line 120) | def get_library_path(self, lib_name): method get_class (line 135) | def get_class(self, lib_name, cell_name): class DesignMaster (line 163) | class DesignMaster(abc.ABC): method __init__ (line 181) | def __init__(self, master_db, lib_name, params, used_names, **kwargs): method update_master_info (line 206) | def update_master_info(self): method populate_params (line 210) | def populate_params(self, table, params_info, default_params, **kwargs): method to_immutable_id (line 228) | def to_immutable_id(cls, val): method get_params_info (line 250) | def get_params_info(cls): method get_default_param_values (line 262) | def get_default_param_values(cls): method get_master_basename (line 279) | def get_master_basename(self): method get_content (line 291) | def get_content(self, lib_name, rename_fun): method master_db (line 310) | def master_db(self): method lib_name (line 316) | def lib_name(self): method cell_name (line 322) | def cell_name(self): method key (line 328) | def key(self): method finalized (line 334) | def finalized(self): method prelim_key (line 340) | def prelim_key(self): method _get_qualified_name (line 345) | def _get_qualified_name(self): method finalize (line 354) | def finalize(self): method compute_unique_key (line 360) | def compute_unique_key(self): class MasterDB (line 375) | class MasterDB(abc.ABC): method __init__ (line 393) | def __init__(self, lib_name, lib_defs='', name_prefix='', name_suffix=... method clear (line 406) | def clear(self): method create_master_instance (line 413) | def create_master_instance(self, gen_cls, lib_name, params, used_cell_... method create_masters_in_db (line 440) | def create_masters_in_db(self, lib_name, content_list, debug=False): method lib_name (line 456) | def lib_name(self): method cell_prefix (line 462) | def cell_prefix(self): method cell_prefix (line 468) | def cell_prefix(self, new_val): method cell_suffix (line 474) | def cell_suffix(self): method cell_suffix (line 480) | def cell_suffix(self, new_val): method used_cell_names (line 486) | def used_cell_names(self): method format_cell_name (line 490) | def format_cell_name(self, cell_name): method append_library (line 507) | def append_library(self, lib_name, lib_path): method get_library_path (line 523) | def get_library_path(self, lib_name): method get_generator_class (line 543) | def get_generator_class(self, lib_name, cell_name): method new_master (line 564) | def new_master(self, # type: MasterDB method register_master (line 649) | def register_master(self, key, master): method instantiate_masters (line 653) | def instantiate_masters(self, method _instantiate_master_helper (line 733) | def _instantiate_master_helper(self, info_dict, master): FILE: bag/util/immutable.py function combine_hash (line 17) | def combine_hash(a: int, b: int) -> int: class ImmutableList (line 36) | class ImmutableList(Hashable, Sequence, Generic[T]): method __init__ (line 39) | def __init__(self, values: Optional[Sequence[T]] = None) -> None: method sequence_equal (line 53) | def sequence_equal(cls, a: Sequence[T], b: Sequence[T]) -> bool: method __repr__ (line 61) | def __repr__(self) -> str: method __eq__ (line 64) | def __eq__(self, other: Any) -> bool: method __hash__ (line 68) | def __hash__(self) -> int: method __bool__ (line 71) | def __bool__(self) -> bool: method __len__ (line 74) | def __len__(self) -> int: method __iter__ (line 77) | def __iter__(self) -> Iterable[T]: method __getitem__ (line 81) | def __getitem__(self, idx: int) -> T: ... method __getitem__ (line 83) | def __getitem__(self, idx: slice) -> ImmutableList[T]: ... method __getitem__ (line 85) | def __getitem__(self, idx) -> T: method __contains__ (line 90) | def __contains__(self, val: Any) -> bool: class ImmutableSortedDict (line 94) | class ImmutableSortedDict(Hashable, Mapping, Generic[T, U]): method __init__ (line 97) | def __init__(self, method __repr__ (line 113) | def __repr__(self) -> str: method __eq__ (line 116) | def __eq__(self, other: Any) -> bool: method __hash__ (line 122) | def __hash__(self) -> int: method __bool__ (line 125) | def __bool__(self) -> bool: method __len__ (line 128) | def __len__(self) -> int: method __iter__ (line 131) | def __iter__(self) -> Iterable[T]: method __contains__ (line 134) | def __contains__(self, item: Any) -> bool: method __getitem__ (line 138) | def __getitem__(self, item: T) -> U: method get (line 144) | def get(self, item: T, default: Optional[U] = None) -> Optional[U]: method keys (line 150) | def keys(self) -> Iterable[T]: method values (line 153) | def values(self) -> Iterable[U]: method items (line 156) | def items(self) -> Iterable[Tuple[T, U]]: method copy (line 159) | def copy(self, append: Optional[Dict[T, Any]] = None) -> ImmutableSort... method to_dict (line 167) | def to_dict(self) -> Dict[T, U]: function to_immutable (line 174) | def to_immutable(obj: Any) -> ImmutableType: FILE: bag/util/interval.py class IntervalSet (line 11) | class IntervalSet(object): method __init__ (line 24) | def __init__(self, intv_list=None, val_list=None): method __contains__ (line 39) | def __contains__(self, key): method __getitem__ (line 56) | def __getitem__(self, intv): method __setitem__ (line 77) | def __setitem__(self, intv, value): method __iter__ (line 98) | def __iter__(self): method __len__ (line 109) | def __len__(self): method get_start (line 120) | def get_start(self): method get_end (line 131) | def get_end(self): method get_interval (line 142) | def get_interval(self, idx): method copy (line 153) | def copy(self): method _get_first_overlap_idx (line 165) | def _get_first_overlap_idx(self, intv, abut=False): method _get_last_overlap_idx (line 206) | def _get_last_overlap_idx(self, intv, abut=False): method has_overlap (line 239) | def has_overlap(self, intv): method has_single_cover (line 255) | def has_single_cover(self, intv): method remove (line 263) | def remove(self, intv): method get_intersection (line 287) | def get_intersection(self, other): method get_complement (line 323) | def get_complement(self, total_intv): method complement_iter (line 342) | def complement_iter(self, total_intv): method remove_all_overlaps (line 360) | def remove_all_overlaps(self, intv): method add (line 376) | def add(self, intv, val=None, merge=False, abut=False): method subtract (line 422) | def subtract(self, intv): method items (line 459) | def items(self): method intervals (line 474) | def intervals(self): method values (line 487) | def values(self): method overlap_items (line 500) | def overlap_items(self, intv): method overlap_intervals (line 522) | def overlap_intervals(self, intv): method overlap_values (line 542) | def overlap_values(self, intv): method get_first_overlap_item (line 562) | def get_first_overlap_item(self, intv): method transform (line 570) | def transform(self, scale=1, shift=0): FILE: bag/util/parse.py class ExprVarScanner (line 9) | class ExprVarScanner(ast.NodeVisitor): method __init__ (line 15) | def __init__(self): method visit_Name (line 19) | def visit_Name(self, node): method visit_Call (line 23) | def visit_Call(self, node): method visit_Attribute (line 30) | def visit_Attribute(self, node): function get_variables (line 35) | def get_variables(expr): FILE: bag/util/search.py class BinaryIterator (line 13) | class BinaryIterator(object): method __init__ (line 29) | def __init__(self, low, high, step=1): method set_current (line 58) | def set_current(self, val): method has_next (line 65) | def has_next(self): method get_next (line 70) | def get_next(self): method up (line 75) | def up(self): method down (line 88) | def down(self): method save (line 94) | def save(self): method save_info (line 99) | def save_info(self, info): method get_last_save (line 105) | def get_last_save(self): method get_last_save_info (line 112) | def get_last_save_info(self): class FloatBinaryIterator (line 118) | class FloatBinaryIterator(object): method __init__ (line 138) | def __init__(self, low, high, tol=1.0, search_step=1.0): method has_next (line 157) | def has_next(self): method get_next (line 162) | def get_next(self): method up (line 167) | def up(self): method down (line 180) | def down(self): method save (line 186) | def save(self): method save_info (line 191) | def save_info(self, info): method get_last_save (line 197) | def get_last_save(self): method get_last_save_info (line 204) | def get_last_save_info(self): function minimize_cost_binary (line 210) | def minimize_cost_binary(f, vmin, start=0, stop=None, step=1, save=None,... function minimize_cost_golden (line 262) | def minimize_cost_golden(f, vmin, offset=0, step=1, maxiter=1000): function minimize_cost_binary_float (line 364) | def minimize_cost_binary_float(f, vmin, start, stop, tol=1e-8, save=None... function minimize_cost_golden_float (line 416) | def minimize_cost_golden_float(f, vmin, start, stop, tol=1e-8, maxiter=1... FILE: bag/verification/__init__.py function make_checker (line 15) | def make_checker(checker_cls, tmp_dir, **kwargs): FILE: bag/verification/base.py class Checker (line 16) | class Checker(abc.ABC): method __init__ (line 24) | def __init__(self, tmp_dir): method get_rcx_netlists (line 30) | def get_rcx_netlists(self, lib_name, cell_name): method async_run_lvs (line 49) | async def async_run_lvs(self, lib_name, cell_name, sch_view='schematic', method async_run_rcx (line 82) | async def async_run_rcx(self, lib_name, cell_name, sch_view='schematic', method async_export_layout (line 115) | async def async_export_layout(self, lib_name, cell_name, out_file, method async_export_schematic (line 141) | async def async_export_schematic(self, lib_name, cell_name, out_file, method render_file_template (line 166) | def render_file_template(self, temp_name, params): method render_string_template (line 172) | def render_string_template(self, content, params): class SubProcessChecker (line 179) | class SubProcessChecker(Checker, abc.ABC): method __init__ (line 192) | def __init__(self, tmp_dir, max_workers, cancel_timeout): method setup_lvs_flow (line 198) | def setup_lvs_flow(self, lib_name, cell_name, sch_view='schematic', method setup_rcx_flow (line 242) | def setup_rcx_flow(self, lib_name, cell_name, sch_view='schematic', method setup_export_layout (line 285) | def setup_export_layout(self, lib_name, cell_name, out_file, view_name... method setup_export_schematic (line 316) | def setup_export_schematic(self, lib_name, cell_name, out_file, method async_run_lvs (line 347) | async def async_run_lvs(self, lib_name: str, cell_name: str, method async_run_rcx (line 357) | async def async_run_rcx(self, lib_name: str, cell_name: str, method async_export_layout (line 366) | async def async_export_layout(self, lib_name: str, cell_name: str, method async_export_schematic (line 373) | async def async_export_schematic(self, lib_name: str, cell_name: str, FILE: bag/verification/calibre.py function _all_pass (line 20) | def _all_pass(retcode, log_file): function lvs_passed (line 25) | def lvs_passed(retcode, log_file): function query_passed (line 54) | def query_passed(retcode, log_file): class Calibre (line 82) | class Calibre(VirtuosoChecker): method __init__ (line 106) | def __init__(self, tmp_dir, lvs_run_dir, lvs_runset, rcx_run_dir, rcx_... method get_rcx_netlists (line 131) | def get_rcx_netlists(self, lib_name, cell_name): method setup_lvs_flow (line 156) | def setup_lvs_flow(self, lib_name, cell_name, sch_view='schematic', la... method setup_rcx_flow (line 208) | def setup_rcx_flow(self, lib_name, cell_name, sch_view='schematic', la... method _get_lay_sch_files (line 354) | def _get_lay_sch_files(cls, run_dir): method modify_lvs_runset (line 359) | def modify_lvs_runset(self, run_dir, lib_name, cell_name, lay_view, gd... method modify_pex_runset (line 415) | def modify_pex_runset(self, run_dir, lib_name, cell_name, lay_view, gd... method modify_xact_rules (line 478) | def modify_xact_rules(self, run_dir, cell_name, gds_file, netlist, xac... method modify_starrc_cmd (line 520) | def modify_starrc_cmd(self, run_dir, lib_name, cell_name, starrc_param... method modify_qrc_cmd (line 567) | def modify_qrc_cmd(self, run_dir, cell_name, qrc_params, sch_file): FILE: bag/verification/icv.py function _all_pass (line 19) | def _all_pass(retcode, log_file): function lvs_passed (line 24) | def lvs_passed(retcode, log_file): class ICV (line 62) | class ICV(VirtuosoChecker): method __init__ (line 84) | def __init__(self, tmp_dir, lvs_run_dir, lvs_runset, rcx_run_dir, rcx_... method get_rcx_netlists (line 111) | def get_rcx_netlists(self, lib_name, cell_name): method setup_lvs_flow (line 133) | def setup_lvs_flow(self, lib_name, cell_name, sch_view='schematic', la... method setup_rcx_flow (line 182) | def setup_rcx_flow(self, lib_name, cell_name, sch_view='schematic', la... method _get_lay_sch_files (line 284) | def _get_lay_sch_files(cls, run_dir): method modify_starrc_cmd (line 289) | def modify_starrc_cmd(self, run_dir, lib_name, cell_name, starrc_param... FILE: bag/verification/pvs.py function _all_pass (line 20) | def _all_pass(retcode, log_file): function lvs_passed (line 25) | def lvs_passed(retcode, log_file): function rcx_passed (line 54) | def rcx_passed(retcode, log_file): class PVS (line 84) | class PVS(VirtuosoChecker): method __init__ (line 104) | def __init__(self, tmp_dir, lvs_run_dir, lvs_runset, lvs_rule_file, rc... method get_rcx_netlists (line 121) | def get_rcx_netlists(self, lib_name, cell_name): method setup_lvs_flow (line 126) | def setup_lvs_flow(self, lib_name, cell_name, sch_view='schematic', la... method setup_rcx_flow (line 185) | def setup_rcx_flow(self, lib_name, cell_name, sch_view='schematic', la... method modify_lvs_runset (line 215) | def modify_lvs_runset(self, run_dir, cell_name, lvs_params): method modify_rcx_runset (line 260) | def modify_rcx_runset(self, run_dir, lib_name, cell_name, lay_view, rc... FILE: bag/verification/virtuoso.py class VirtuosoChecker (line 18) | class VirtuosoChecker(SubProcessChecker, ABC): method __init__ (line 35) | def __init__(self, tmp_dir, max_workers, cancel_timeout, source_added_... method setup_export_layout (line 40) | def setup_export_layout(self, lib_name, cell_name, out_file, view_name... method setup_export_schematic (line 69) | def setup_export_schematic(self, lib_name, cell_name, out_file, view_n... FILE: bag/virtuoso.py function run_skill_server (line 16) | def run_skill_server(args): function parse_command_line_arguments (line 90) | def parse_command_line_arguments(): FILE: run_scripts/clean_cds_lib.py function arg_parse (line 17) | def arg_parse() -> Namespace: function run_main (line 28) | def run_main(args: Namespace): FILE: run_scripts/gen_cell.py function parse_args (line 14) | def parse_args() -> Namespace: function run_main (line 44) | def run_main(prj: BagProject, args: Namespace): FILE: run_scripts/generate_verilog.py function run_main (line 8) | def run_main(): FILE: run_scripts/meas_cell.py function parse_args (line 15) | def parse_args() -> Namespace: function run_main (line 40) | def run_main(prj: BagProject, args: Namespace): FILE: run_scripts/setup_submodules.py function write_to_file (line 26) | def write_to_file(fname, lines): function setup_python_path (line 32) | def setup_python_path(module_list): function get_sch_libraries (line 48) | def get_sch_libraries(mod_name, mod_info): function setup_libs_def (line 56) | def setup_libs_def(module_list): function setup_cds_lib (line 67) | def setup_cds_lib(module_list): function run_command (line 77) | def run_command(cmd): function add_git_submodule (line 107) | def add_git_submodule(module_name, url): function add_git_file (line 115) | def add_git_file(fname): function link_submodule (line 119) | def link_submodule(repo_path, module_name): function setup_git_submodules (line 131) | def setup_git_submodules(module_list): function setup_submodule_links (line 138) | def setup_submodule_links(module_list, repo_path): function run_main (line 144) | def run_main(): FILE: run_scripts/sim_cell.py function parse_args (line 15) | def parse_args() -> Namespace: function run_main (line 40) | def run_main(prj: BagProject, args: Namespace): FILE: tests/layout/routing/test_fill.py function check_disjoint_union (line 8) | def check_disjoint_union(outer_list, inner_list, start, stop): function check_symmetric (line 33) | def check_symmetric(intv_list, start, stop): function check_props (line 40) | def check_props(fill_list, space_list, num_diff_sp1, num_diff_sp2, n, to... function test_fill_symmetric_non_cyclic (line 86) | def test_fill_symmetric_non_cyclic(): function test_fill_symmetric_cyclic_edge_fill (line 125) | def test_fill_symmetric_cyclic_edge_fill(): function test_fill_symmetric_cyclic_edge_space (line 166) | def test_fill_symmetric_cyclic_edge_space():