// 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
*lvsRulesFile: ${PDK_HOME}/LVS/Calibre/lvs_s8_opts
*lvsRunDir: ${BAG_WORK_DIR}/calibre_run/lvs/myLib/top_cell
*lvsLayoutPaths: top_cell.calibre.db
*lvsLayoutPrimary: top_cell
*lvsLayoutLibrary: myLib
*lvsLayoutView: layout
*lvsLayoutGetFromViewer: 1
*lvsSourcePath: top_cell.src.net
*lvsSourcePrimary: top_cell
*lvsSourceLibrary: myLib
*lvsSourceView: schematic
*lvsSourceGetFromViewer: 1
*lvsSpiceFile: top_cell.sp
*lvsPowerNames: VDD
*lvsGroundNames: VSS
*lvsRecognizeGates: NONE
*lvsConfigureSplitGates: 1
*lvsReduceSplitGates: 0
*lvsERCDatabase: top_cell.erc.results
*lvsERCSummaryFile: top_cell.erc.summary
*lvsReportFile: top_cell.lvs.report
*lvsViewReport: 0
*lvsSVDBcci: 1
*lvsSVDBxcal: 1
*lvsSVDBtxref: 1
*lvsSVDBnopinloc: 1
*cmnWarnLayoutOverwrite: 0
*cmnWarnSourceOverwrite: 0
*cmnPromptSaveRunset: 0
*cmnShowOptions: 1
*cmnSaveRunsetChanges: 0
*cmnVConnectColon: 1
*cmnTemplate_RN: $BAG_WORK_DIR/calibre_run/lvs/%L/%l
*cmnSlaveHosts: {use {}} {hostName {}} {cpuCount {}} {a32a64 {}} {rsh {}} {maxMem {}} {workingDir {}} {layerDir {}} {mgcLibPath {}} {launchName {}}
*cmnLSFSlaveTbl: {use 1} {totalCpus 1} {minCpus 1} {architecture {{}}} {minMemory {{}}} {resourceOptions {{}}} {submitOptions {{}}}
*cmnGridSlaveTbl: {use 1} {totalCpus 1} {minCpus 1} {architecture {{}}} {minMemory {{}}} {resourceOptions {{}}} {submitOptions {{}}}
*cmnFDILayoutLibrary: myLib
*cmnFDILayoutView: layout
*cmnFDIDEFLayoutPath: top_cell.def
