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

*drcRulesFile: ${PDK_HOME}/DRC/Calibre/s8_drcRules
*drcRunDir: ${BAG_WORK_DIR}/calibre_run/drc/myLib/myCell
*drcLayoutPaths: myCell.calibre.db
*drcLayoutPrimary: myCell
*drcLayoutLibrary: myLib
*drcLayoutView: layout
*drcLayoutGetFromViewer: 1
*drcResultsFile: myCell.drc.results
*drcIncludeCmdsType: SVRF
*drcSVRFCmds: {DRC KEEP EMPTY NO} {} {} {} {} {} {}
*drcSummaryFile: myCell.drc.summary
*drcViewSummary: 0
*drcDFMDefaultsResultsFile: aib_mstr.dfmDefaults.db
*cmnWarnLayoutOverwrite: 0
*cmnPromptSaveRunset: 0
*cmnShowOptions: 1
*cmnSaveRunsetChanges: 0
*cmnVConnectColon: 1
*cmnDontWaitForLicense: 0
*cmnRunMT: 1
*cmnRunHyper: 1
*cmnTemplate_RN: $BAG_WORK_DIR/calibre_run/drc/%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: myCell.def
