################################################################################################
# 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.
################################################################################################

#================================
# ------- BJT EXTRACTION --------
#================================

logger.info('Starting BJT EXTRACTION')


# ========================================
# ---- VNPN (isolated collector) (5V) ----
# ========================================
logger.info('Starting VNPN (5V) BJT EXTRACTION')

# npn_00p54x16p00 BJT: Gummel-Poon model for VNPN with emitter size 0.54um x 16um [vnpn_0p54x16]
logger.info('Extracting npn_00p54x16p00 BJT')
extract_devices(bjt4('npn_00p54x16p00'), { 'C' => npn_00p54x16p00_c.extents,
                                           'B' => npn_00p54x16p00_b.extents,
                                           'E' => npn_00p54x16p00_e,
                                           'S' => sub.extents,
                                           'tC' => npn_00p54x16p00_c,
                                           'tB' => npn_00p54x16p00_b,
                                           'tE' => npn_00p54x16p00_e,
                                           'tS' => sub })
ignore_parameter('npn_00p54x16p00', 'AE')

# npn_00p54x08p00 BJT: Gummel-Poon model for VNPN with emitter size 0.54um x 8um [vnpn_0p54x8]
logger.info('Extracting npn_00p54x08p00 BJT')
extract_devices(bjt4('npn_00p54x08p00'), { 'C' => npn_00p54x08p00_c.extents,
                                           'B' => npn_00p54x08p00_b.extents,
                                           'E' => npn_00p54x08p00_e,
                                           'S' => sub.extents,
                                           'tC' => npn_00p54x08p00_c,
                                           'tB' => npn_00p54x08p00_b,
                                           'tE' => npn_00p54x08p00_e,
                                           'tS' => sub })
ignore_parameter('npn_00p54x08p00', 'AE')

# npn_00p54x02p00 BJT: Gummel-Poon model for VNPN with emitter size 0.54um x 2um [vnpn_0p54x2]
logger.info('Extracting npn_00p54x02p00 BJT')
extract_devices(bjt4('npn_00p54x02p00'), { 'C' => npn_00p54x02p00_c.extents,
                                           'B' => npn_00p54x02p00_b.extents,
                                           'E' => npn_00p54x02p00_e,
                                           'S' => sub.extents,
                                           'tC' => npn_00p54x02p00_c,
                                           'tB' => npn_00p54x02p00_b,
                                           'tE' => npn_00p54x02p00_e,
                                           'tS' => sub })
ignore_parameter('npn_00p54x02p00', 'AE')

# npn_05p00x05p00 BJT: Gummel-Poon model for VNPN with emitter size 5um x 5um [vnpn_5x5]
logger.info('Extracting npn_05p00x05p00 BJT')
extract_devices(bjt4('npn_05p00x05p00'), { 'C' => npn_05p00x05p00_c.extents,
                                           'B' => npn_05p00x05p00_b.extents,
                                           'E' => npn_05p00x05p00_e,
                                           'S' => sub.extents,
                                           'tC' => npn_05p00x05p00_c,
                                           'tB' => npn_05p00x05p00_b,
                                           'tE' => npn_05p00x05p00_e,
                                           'tS' => sub })
ignore_parameter('npn_05p00x05p00', 'AE')

# ===========================================
# ---- VNPN (isolated collector) (3.3V) ----
# ===========================================

logger.info('Starting VNPN (3.3V) BJT EXTRACTION')

# npn_00p54x16p00_03v3 BJT: Gummel-Poon model for 3.3v VNPN with emitter size 0.54um x 16um [vnpn_0p54x16_3p3]
logger.info('Extracting npn_00p54x16p00_03v3 BJT')
extract_devices(bjt4('npn_00p54x16p00_03v3'), { 'C' => npn_00p54x16p00_c_3p3.extents,
                                           'B' => npn_00p54x16p00_b_3p3.extents,
                                           'E' => npn_00p54x16p00_e_3p3,
                                           'S' => sub.extents,
                                           'tC' => npn_00p54x16p00_c_3p3,
                                           'tB' => npn_00p54x16p00_b_3p3,
                                           'tE' => npn_00p54x16p00_e_3p3,
                                           'tS' => sub })
ignore_parameter('npn_00p54x16p00_03v3', 'AE')

# npn_00p54x08p00_03v3: Gummel-Poon model for 3.3v VNPN with emitter size 0.54um x 8um [vnpn_0p54x8_3p3]
logger.info('Extracting npn_00p54x08p00_03v3 BJT')
extract_devices(bjt4('npn_00p54x08p00_03v3'), { 'C' => npn_00p54x08p00_c_3p3.extents,
                                                'B' => npn_00p54x08p00_b_3p3.extents,
                                                'E' => npn_00p54x08p00_e_3p3,
                                                'S' => sub.extents,
                                                'tC' => npn_00p54x08p00_c_3p3,
                                                'tB' => npn_00p54x08p00_b_3p3,
                                                'tE' => npn_00p54x08p00_e_3p3,
                                                'tS' => sub })
ignore_parameter('npn_00p54x08p00_03v3', 'AE')

# npn_00p54x02p00_03v3 BJT: Gummel-Poon model for 3.3v VNPN with emitter size 0.54um x 2um [vnpn_0p54x2_3p3]
logger.info('Extracting npn_00p54x02p00_03v3 BJT')
extract_devices(bjt4('npn_00p54x02p00_03v3'), { 'C' => npn_00p54x02p00_c_3p3.extents,
                                                'B' => npn_00p54x02p00_b_3p3.extents,
                                                'E' => npn_00p54x02p00_e_3p3,
                                                'S' => sub.extents,
                                                'tC' => npn_00p54x02p00_c_3p3,
                                                'tB' => npn_00p54x02p00_b_3p3,
                                                'tE' => npn_00p54x02p00_e_3p3,
                                                'tS' => sub })
ignore_parameter('npn_00p54x02p00_03v3', 'AE')

# npn_05p00x05p00_03v3 BJT: Gummel-Poon model for 3.3v VNPN with emitter size 5um x 5um [vnpn_5x5_3p3]
logger.info('Extracting npn_05p00x05p00_03v3 BJT')
extract_devices(bjt4('npn_05p00x05p00_03v3'), { 'C' => npn_05p00x05p00_c_3p3.extents,
                                                'B' => npn_05p00x05p00_b_3p3.extents,
                                                'E' => npn_05p00x05p00_e_3p3,
                                                'S' => sub.extents,
                                                'tC' => npn_05p00x05p00_c_3p3,
                                                'tB' => npn_05p00x05p00_b_3p3,
                                                'tE' => npn_05p00x05p00_e_3p3,
                                                'tS' => sub })
ignore_parameter('npn_05p00x05p00_03v3', 'AE')

# ========================================
# ---- VPNP (Psub as collector) (6V) ----
# ========================================

logger.info('Starting VPNP (6V) BJT EXTRACTION')

# pnp_10p00x10p00_06v0: Gummel-Poon model for VPNP emitter size of 10um x 10um [vpnp_6p0_10x10]
logger.info('Extracting pnp_10p00x10p00_06v0 BJT')
extract_devices(bjt3('pnp_10p00x10p00_06v0'), { 'C' => pnp_10p00x10p00_c.extents,
                                                'B' => pnp_10p00x10p00_b.extents,
                                                'E' => pnp_10p00x10p00_e,
                                                'tC' => pnp_10p00x10p00_c,
                                                'tB' => pnp_10p00x10p00_b,
                                                'tE' => pnp_10p00x10p00_e })
ignore_parameter('pnp_10p00x10p00_06v0', 'AE')

# pnp_05p00x05p00_06v0 BJT: Gummel-Poon model for VPNP emitter size of 5um x 5um [vpnp_6p0_5x5]
logger.info('Extracting pnp_05p00x05p00_06v0 BJT')
extract_devices(bjt3('pnp_05p00x05p00_06v0'), { 'C' => pnp_05p00x05p00_c.extents,
                                                'B' => pnp_05p00x05p00_b.extents,
                                                'E' => pnp_05p00x05p00_e,
                                                'tC' => pnp_05p00x05p00_c,
                                                'tB' => pnp_05p00x05p00_b,
                                                'tE' => pnp_05p00x05p00_e })
ignore_parameter('pnp_05p00x05p00_06v0', 'AE')

# pnp_00p42x20p00_06v0 BJT: Gummel-Poon model for VPNP emitter size of 0.42um x 20um [vpnp_6p0_0p42x20]
logger.info('Extracting pnp_00p42x20p00_06v0 BJT')
extract_devices(bjt3('pnp_00p42x20p00_06v0'), { 'C' => pnp_00p42x20p00_c.extents,
                                                'B' => pnp_00p42x20p00_b.extents,
                                                'E' => pnp_00p42x20p00_e,
                                                'tC' => pnp_00p42x20p00_c,
                                                'tB' => pnp_00p42x20p00_b,
                                                'tE' => pnp_00p42x20p00_e })
ignore_parameter('pnp_00p42x20p00_06v0', 'AE')

# pnp_00p42x10p00_06v0 BJT: Gummel-Poon model for VPNP emitter size of 0.42um x 10um [vpnp_6p0_0p42x10]
logger.info('Extracting pnp_00p42x10p00_06v0 BJT')
extract_devices(bjt3('pnp_00p42x10p00_06v0'), { 'C' => pnp_00p42x10p00_c.extents,
                                                'B' => pnp_00p42x10p00_b.extents,
                                                'E' => pnp_00p42x10p00_e,
                                                'tC' => pnp_00p42x10p00_c,
                                                'tB' => pnp_00p42x10p00_b,
                                                'tE' => pnp_00p42x10p00_e })
ignore_parameter('pnp_00p42x10p00_06v0', 'AE')

# pnp_00p42x05p00_06v0 BJT: Gummel-Poon model for VPNP emitter size of 0.42um x 5um [vpnp_6p0_0p42x5]
logger.info('Extracting pnp_00p42x05p00_06v0 BJT')
extract_devices(bjt3('pnp_00p42x05p00_06v0'), { 'C' => pnp_00p42x05p00_c.extents,
                                                'B' => pnp_00p42x05p00_b.extents,
                                                'E' => pnp_00p42x05p00_e,
                                                'tC' => pnp_00p42x05p00_c,
                                                'tB' => pnp_00p42x05p00_b,
                                                'tE' => pnp_00p42x05p00_e })
ignore_parameter('pnp_00p42x05p00_06v0', 'AE')
