| # Copyright 2019-2021 SkyWater PDK Authors |
| # |
| # Licensed under the Apache License, Version 2.0 (the "License"); |
| # you may not use this file except in compliance with the License. |
| # You may obtain a copy of the License at |
| # |
| # https://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| # See the License for the specific language governing permissions and |
| # limitations under the License. |
| # |
| # This code is *alternatively* available under a BSD-3-Clause license, see |
| # details in the README.md at the top level and the license text at |
| # https://github.com/google/skywater-pdk-libs-sky130_bag3_pr/blob/master/LICENSE.alternative |
| # |
| # SPDX-License-Identifier: BSD-3-Clause OR Apache 2.0 |
| # BAG socket configuration |
| socket: |
| # the host running the database. localhost if on the same machine. |
| host: "localhost" |
| # the port to communicate with. |
| port_file: "BAG_server_port.txt" |
| # the log file for socket communication debugging |
| log_file: "BAG_socket.log" |
| # number of messages allowed in a pipeline |
| pipeline: 100 |
| |
| # CAD database configuration |
| # Right now only virtuoso is supported. |
| database: |
| # the python class that handles database interaction. |
| # class: "bag.interface.oa.OAInterface" |
| class: "bag.interface.skill.SkillInterface" |
| # default directory to create generated libraries in. |
| default_lib_path: "${BAG_WORK_DIR}/gen_libs" |
| # If true, then everytime we generate schematic/layout from BAG, all opened cellviews are closed |
| close_all_cellviews: False |
| |
| # configurations for schematic import and generation |
| schematic: |
| # technology library to configure new libraries with |
| tech_lib: "s8phirs_10r" |
| # libraries to exclude for schematic import |
| exclude_libraries: ["analogLib", "basic", "s8phirs_10r", "veriloga_lib", "ahdllib"] |
| # libraries to exclude for modeling purposes |
| model_exclude_libraries: [] |
| # cells to exclude for modeling purposes |
| model_exclude_cells: |
| basic: ['noConn'] |
| # symbol pin master |
| sympin: ["basic", "sympin", "symbolNN"] |
| # input pin master |
| ipin: ["basic", "ipin", "symbol"] |
| # output pin master |
| opin: ["basic", "opin", "symbol"] |
| # inout pin master |
| iopin: ["basic", "iopin", "symbolr"] |
| # simulators where termOrder CDF field should be filled |
| simulators: ["auLvs", "auCdl", "spectre", "hspiceD"] |
| # configurations used to create a Checker object to run LVS/RCX |
| checker: |
| # the Checker class. |
| checker_cls: 'bag.verification.calibre.Calibre' |
| # program used to run extraction |
| rcx_program: xrc |
| # maximum number of sub-processes BAG can launch. |
| max_workers: 2 |
| # source.added location |
| source_added_file: "${BAG_TECH_CONFIG_DIR}/calibre_setup/source.added" |
| # root directories |
| root_dir: |
| drc: '${BAG_WORK_DIR}/calibre_run/drc' |
| lvs: '${BAG_WORK_DIR}/calibre_run/lvs' |
| rcx: '${BAG_WORK_DIR}/calibre_run/rcx' |
| # jinja template control files |
| template: |
| drc: '${BAG_TECH_CONFIG_DIR}/calibre_setup/drc.svrf' |
| lvs: '${BAG_TECH_CONFIG_DIR}/calibre_setup/lvs.svrf' |
| rcx: '${BAG_TECH_CONFIG_DIR}/calibre_setup/rcx.svrf' |
| # environment variables |
| env_vars: |
| drc: {} |
| lvs: {} |
| rcx: {} |
| link_files: |
| drc: [] |
| lvs: [] |
| rcx: [] |
| # default parameters |
| params: |
| drc: {} |
| lvs: {} |
| rcx: |
| # extract_type: rc_coupled # r_only | c_only_decoupled | c_only_coupled | rc_decoupled | rc_coupled | rlc_decoupled | rlc_coupled for QRC |
| # extract_type: RCc # R | Cg | Cc | RCg | RCc for StarRC |
| extract_type: rcc # rcc | rc | r | c for xRC. See Parasitic Database (PDB) in manual |
| netlist_type: SPF # SPF or SPECTRE |
| # the SubProcessManager class |
| # mgr_class: 'bag.concurrent.lsf.LSFSubProcessManager' # runs jobs on the LSF |
| # mgr_kwargs: |
| # queue: rhel7 # LSF queue |
| |
| # Simulation configurations |
| simulation: |
| # python class that talks with the simulator |
| class: "bag.simulation.spectre.SpectreInterface" |
| # maximum number of processes BAG can launch. |
| max_workers: 8 |
| # when simulation goes long, a reminder message will be printed at this interval |
| update_timeout_ms: 120000 |
| # amount of time to wait for process cancellation to succeed. |
| cancel_timeout_ms: 10000 |
| # True to show interactive log viewer. |
| show_log_viewer: True |
| # corner configuration file |
| env_file: "${BAG_TECH_CONFIG_DIR}/corners_setup.yaml" |
| # command settings |
| kwargs: |
| # the command to start |
| command: spectre |
| # environment variables. Null for same environment as SkillOceanServer. |
| env: !!null |
| # True to run in 64-bit mode |
| run_64: True |
| # output format |
| format: psfbin #psfxl |
| # psf version |
| psfversion: '1.1' |
| options: ['++aps', '+lqtimeout', '0', '+mt=8', '+mp=8', '+postlayout'] |
| # True if using pysrr for SRR to HDF5 conversion. False to use executable |
| # Executable runs faster for smaller simulation data, pysrr runs faster for highly parameterized simulation data |
| use_pysrr: False |
| # the SubProcessManager class |
| # mgr_class: 'bag.concurrent.lsf.LSFSubProcessManager' # runs jobs on the LSF |
| # mgr_kwargs: |
| # queue: rhel7 # LSF queue |
| |
| compress: True |
| rtol: 1.0e-8 |
| atol: 1.0e-22 |
| |
| # LEF generation configuration |
| lef: |
| class: 'bag.interface.abstract.AbstractInterface' |
| run_dir: 'abstract_run' |
| options_file: '${BAG_TECH_CONFIG_DIR}/abstract_setup/bag_abstract.options' |
| # the SubProcessManager class |
| # mgr_class: 'bag.concurrent.lsf.LSFSubProcessManager' # runs jobs on the LSF |
| # mgr_kwargs: |
| # queue: rhel7 # LSF queue |
| |
| # technology specific configuration are stored in a separate file. |
| # this field tells BAG where to look for it. |
| tech_config_path: "${BAG_TECH_CONFIG_DIR}/tech_config.yaml" |
| |
| # BAG design libraries definition file. |
| lib_defs: "bag_libs.def" |
| |
| # place to put new design libraries |
| new_lib_path: "BagModules" |