
################################################################################################
# Copyright 2023 GlobalFoundries 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.
################################################################################################

#================================
# ---- RESISTOR EXTRACTIONS -----
#================================

logger.info('Starting RESISTOR EXTRACTION')

#====================
# ---- POLY RES ----
#====================

# res_ppo_3t_sal: Model for Salicide P+poly resistor on field [ppolyf_s]
logger.info('Extracting res_ppo_3t_sal device')
extract_devices(resistor_with_bulk('res_ppo_3t_sal', 7.3, BResistor),
                 { 'R' => ppolyf_s_layer, 'C' => poly2_con, 'W' => sub })

# res_ppo_3t_uns: Model for Unsalicide P+poly resistor on field [ppolyf_u]
logger.info('Extracting res_ppo_3t_uns device')
extract_devices(resistor_with_bulk('res_ppo_3t_uns', 350, BResistor),
                 { 'R' => ppolyf_u_layer, 'C' => poly2_con, 'W' => sub })
