################################################################################################
# Copyright 2022 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')

# vnpn_0p54x16 BJT
ignore_parameter('vnpn_0p54x16', 'AE')
logger.info('Extracting vnpn_0p54x16 BJT')
extract_devices(bjt4('vnpn_0p54x16'), { '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 })


# vnpn_0p54x8 BJT
ignore_parameter('vnpn_0p54x8', 'AE')
logger.info('Extracting vnpn_0p54x8 BJT')
extract_devices(bjt4('vnpn_0p54x8'), { '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 })

# vnpn_0p54x2 BJT
ignore_parameter('vnpn_0p54x2', 'AE')
logger.info('Extracting vnpn_0p54x2 BJT')
extract_devices(bjt4('vnpn_0p54x2'), { '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 })

# vnpn_5x5 BJT
ignore_parameter('vnpn_5x5', 'AE')
logger.info('Extracting vnpn_5x5 BJT')
extract_devices(bjt4('vnpn_5x5'), { '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 })


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

# vnpn_0p54x16_3p3
ignore_parameter('vnpn_0p54x16_3p3', 'AE')
logger.info('Extracting vnpn_0p54x16_3p3 BJT')
extract_devices(bjt4('vnpn_0p54x16_3p3'), { '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 })

# vnpn_0p54x8_3p3
ignore_parameter('vnpn_0p54x8_3p3', 'AE')
logger.info('Extracting vnpn_0p54x8_3p3 BJT')
extract_devices(bjt4('vnpn_0p54x8_3p3'), { '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 })

# vnpn_0p54x2_3p3
ignore_parameter('vnpn_0p54x2_3p3', 'AE')
logger.info('Extracting vnpn_0p54x2_3p3 BJT')
extract_devices(bjt4('vnpn_0p54x2_3p3'), { '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 })

# vnpn_5x5_3p3
ignore_parameter('vnpn_5x5_3p3', 'AE')
logger.info('Extracting vnpn_5x5_3p3 BJT')
extract_devices(bjt4('vnpn_5x5_3p3'), { '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 })

                                
# ========================================
# ---- VPNP (Psub as collector) (6V) ----
# ========================================
logger.info('Starting VPNP (6V) BJT EXTRACTION')


# vpnp_6p0_10x10
ignore_parameter('vpnp_6p0_10x10', 'AE')
logger.info('Extracting vpnp_6p0_10x10 BJT')
extract_devices(bjt3('vpnp_6p0_10x10'), { '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 })

# vpnp_6p0_5x5
ignore_parameter('vpnp_6p0_5x5', 'AE')
logger.info('Extracting vpnp_6p0_5x5 BJT')
extract_devices(bjt3('vpnp_6p0_5x5'), { '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 })

# vpnp_6p0_0p42x20
ignore_parameter('vpnp_6p0_0p42x20', 'AE')
logger.info('Extracting vpnp_6p0_0p42x20 BJT')
extract_devices(bjt3('vpnp_6p0_0p42x20'), { '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 })

# vpnp_6p0_0p42x10
ignore_parameter('vpnp_6p0_0p42x10', 'AE')
logger.info('Extracting vpnp_6p0_0p42x10 BJT')
extract_devices(bjt3('vpnp_6p0_0p42x10'), { '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 })

# vpnp_6p0_0p42x5
ignore_parameter('vpnp_6p0_0p42x5', 'AE')
logger.info('Extracting vpnp_6p0_0p42x5 BJT')
extract_devices(bjt3('vpnp_6p0_0p42x5'), { '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 })