Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

LVS Updates #107

Merged
merged 4 commits into from
May 10, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 5 additions & 7 deletions ihp-sg13g2/libs.tech/klayout/tech/lvs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -108,9 +108,9 @@ The `run_lvs.py` script takes your gds and netlist files to run LVS rule decks w
run_lvs.py (--help| -h)
run_lvs.py (--layout=<layout_path>) (--netlist=<netlist_path>)
[--run_dir=<run_dir_path>] [--topcell=<topcell_name>] [--run_mode=<run_mode>]
[--lvs_sub=<sub_name>] [--no_net_names] [--spice_comments] [--net_only]
[--no_simplify] [--no_series_res] [--no_parallel_res] [--combine_devices]
[--top_lvl_pins] [--purge] [--purge_nets] [--verbose]
[--no_net_names] [--spice_comments] [--net_only] [--no_simplify]
[--no_series_res] [--no_parallel_res] [--combine_devices] [--top_lvl_pins]
[--purge] [--purge_nets] [--verbose]
```

**Options:**
Expand All @@ -127,8 +127,6 @@ The `run_lvs.py` script takes your gds and netlist files to run LVS rule decks w

- `--run_mode=<run_mode>` Selects the allowed KLayout mode. (flat, deep). [default: flat]

- `--lvs_sub=<sub_name>` Sets the substrate name used in your design.

- `--no_net_names` Omits net names in the extracted netlist.

- `--spice_comments` Includes netlist comments in the extracted netlist.
Expand All @@ -137,9 +135,9 @@ The `run_lvs.py` script takes your gds and netlist files to run LVS rule decks w

- `--no_simplify` Disables simplification for both layout and schematic netlists.

- `--no_series_res` Prevents the simplification of series resistors for both layout and schematic netlists.
- `--no_series_res` Prevents simplification of series resistors for both layout and schematic.

- `--no_parallel_res` Avoids simplifying parallel resistors within the extracted netlist.
- `--no_parallel_res` Prevents simplification of parallel resistors for both layout and schematic.

- `--combine_devices` Enables device combination for both layout and schematic netlists.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ logger.info('Extracting sg13_hv_svaricap varactor')
extract_devices(GeneralNTerminalExtractor.new('sg13_hv_svaricap', 3), {
'core' => varicap_core,
'ports' => varicap_ports,
'meas_mk' => nwell_iso.and(thickgateox_drw),
'meas_mk' => activ_drw,
'dev_mk' => varicap_dev_mk,
'sub_mk' => varicap_sub
})
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,13 @@ class DeviceCustomInd < RBA::DeviceClassInductor
add_parameters('w', 's', 'd', 'nr_r')
add_terminals(name, num, 1)

# 5% tolerance for w,s,d:
equal_device_parameters = RBA::EqualDeviceParameters::new(parameter_id('w'), 0.0, 0.05)
equal_device_parameters += RBA::EqualDeviceParameters::new(parameter_id('s'), 0.0, 0.05)
equal_device_parameters += RBA::EqualDeviceParameters::new(parameter_id('d'), 0.0, 0.05)
# applies the compare delegate:
self.equal_parameters = equal_device_parameters

self.combiner = nil
self.supports_serial_combination=false
self.supports_parallel_combination=false
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -211,12 +211,16 @@ class GeneralNTerminalExtractor < RBA::GenericDeviceExtractor
# Step2: For more than 1 turns, get number of holes
# Step3: Turns = 1 + (holes - 1)/2
no_turns_init = meas_mk.merged.count
if no_turns_init == 1
no_turns = no_turns_init
else
no_turns_ = dev.merged.holes.count
no_turns = 1 + (no_turns_ - 1) / 2
end
no_turns = no_turns_init

## Old implementation
# if no_turns_init == 1
# no_turns = no_turns_init
# else
# no_turns_pre1 = dev.merged.holes.count
# no_turns_pre2 = (no_turns_pre1 - 1) / 2
# no_turns = 1 + no_turns_pre2.ceil
# end

# Diameter
# Calc steps used for diameter:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -161,18 +161,25 @@ class MIMCAPExtractor < RBA::GenericDeviceExtractor
# None

width, length, wfeed = calc_cmim_params(dev, dev_mk, meas_mk)
device.set_parameter('w', width * $unit)
device.set_parameter('l', length * $unit)

return unless name.downcase.include?('rfcmim')
if name.downcase.include?('rfcmim')
device.set_parameter('l', width * $unit)
device.set_parameter('w', length * $unit)
device.set_parameter('wfeed', wfeed * $unit)
else
device.set_parameter('w', width * $unit)
device.set_parameter('l', length * $unit)
end

device.set_parameter('wfeed', wfeed * $unit)
end

def calc_cmim_params(dev, dev_mk, meas_mk)
# Width & Length
width_edges = dev.edges
width, length = get_min_max_length(width_edges)
dev_edges = dev.edges
width_edges = dev_edges.with_angle(0, false)
len_edges = dev_edges.not(width_edges)
width = get_uniq_length(width_edges)
length = get_uniq_length(len_edges)

# Wfeed
wfeed_edges = meas_mk.edges.and(dev_mk.edges)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ class CustomWriter < RBA::NetlistSpiceWriterDelegate
str = generate_device_prefix(device, device_class)
str += generate_device_terminals(device, device_class)
str += "#{device_class.name} "
str += generate_device_parameters(device, device_class)
str += generate_default_parameters(device, device_class)
emit_line(str)
end

Expand All @@ -50,24 +50,6 @@ class CustomWriter < RBA::NetlistSpiceWriterDelegate
"#{terminals.join(' ')} "
end

# Generate device parameters based on device class
def generate_device_parameters(device, device_class)
case device_class.name
when /nmos|pmos/
generate_parameters(device, 'W', 'L')
when /^res/
generate_parameters(device, 'w', 'l', 'b', 'ps', 'm')
when /^diodev|^nmoscl|^schottky/
generate_parameters(device, 'm')
when /varicap/
generate_parameters(device, 'w', 'l')
when /^ind/
generate_parameters(device, 'w', 's', 'd', 'nr_r')
else
generate_default_parameters(device, device_class)
end
end

# Generate parameters with given keys
def generate_parameters(device, *keys)
parameters = keys.map { |key| "#{key}=#{device.parameter(key)}" }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
logger.info('Starting GF180 LVS connectivity setup (Inter-layer)')

# Inter-layer
connect(pwell_deep, pwell)
connect(pwell, ptap)
connect(nwell_drw, ntap)
connect(ntap, cont_drw)
Expand Down Expand Up @@ -57,6 +58,3 @@ connect(topmetal1_con, topmetal1_label)
connect(topmetal2_con, topmetal2_label)

logger.info('Starting SG13G2 LVS connectivity setup (Global)')

# Global
connect_global(pwell, substrate_name)
Original file line number Diff line number Diff line change
Expand Up @@ -73,3 +73,6 @@ ptap = pactiv.and(pwell).not(substrate_drw).not(res_mk).not(recog_diode).not(gat
nwell_holes = nwell_drw.holes
ptap_holes = ptap.holes
ntap_holes = ntap.holes

# General pwell
pwell_deep = CHIP.not(digisub_drw).not(pwell_block).not(nbulay_drw.interacting(nwell_holes))
12 changes: 5 additions & 7 deletions ihp-sg13g2/libs.tech/klayout/tech/lvs/run_lvs.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,18 +21,17 @@
run_lvs.py (--help| -h)
run_lvs.py (--layout=<layout_path>) (--netlist=<netlist_path>)
[--run_dir=<run_dir_path>] [--topcell=<topcell_name>] [--run_mode=<run_mode>]
[--lvs_sub=<sub_name>] [--no_net_names] [--spice_comments] [--net_only]
[--no_simplify] [--no_series_res] [--no_parallel_res] [--combine_devices]
[--top_lvl_pins] [--purge] [--purge_nets] [--verbose]
[--no_net_names] [--spice_comments] [--net_only] [--no_simplify]
[--no_series_res] [--no_parallel_res] [--combine_devices] [--top_lvl_pins]
[--purge] [--purge_nets] [--verbose]

Options:
--help -h Displays this help message.
--layout=<layout_path> Specifies the file path of the input GDS file.
--netlist=<netlist_path> Specifies the file path of the input netlist file.
--run_dir=<run_dir_path> Run directory to save all generated results [default: pwd]
--run_dir=<run_dir_path> Run directory to save all the generated results [default: pwd]
--topcell=<topcell_name> Specifies the name of the top cell to be used.
--run_mode=<run_mode> Selects allowed KLayout mode. (flat, deep). [default: flat]
--lvs_sub=<sub_name> Sets the substrate name used in your design.
--run_mode=<run_mode> Selects the allowed KLayout mode. (flat, deep). [default: flat]
--no_net_names Omits net names in the extracted netlist.
--spice_comments Includes netlist comments in the extracted netlist.
--net_only Generates netlist objects only in the extracted netlist.
Expand Down Expand Up @@ -198,7 +197,6 @@ def generate_klayout_switches(arguments, layout_path, netlist_path):
exit()

switches = {
"lvs_sub": arguments.get("--lvs_sub") if arguments.get("--lvs_sub") else "sub!",
"no_net_names": "true" if arguments.get("--no_net_names") else "false",
"spice_comments": "true" if arguments.get("--spice_comments") else "false",
"net_only": "true" if arguments.get("--net_only") else "false",
Expand Down
7 changes: 1 addition & 6 deletions ihp-sg13g2/libs.tech/klayout/tech/lvs/sg13g2.lvs
Original file line number Diff line number Diff line change
Expand Up @@ -69,11 +69,6 @@ def bool_check?(obj)
obj.to_s.downcase == 'true'
end

#=== GET SUBSTRATE NAME ===
substrate_name = $lvs_sub || 'sub!'

logger.info("Substrate name used: #{$lvs_sub}")

#=== NET NAMES OPTION ===
# true: use net names instead of numbers
# false: use numbers for nets
Expand Down Expand Up @@ -136,7 +131,7 @@ else
verbose(false)
end

# === TILING MODE ===
# === RUN MODE ===
case $run_mode
when 'deep'
#=== HIER MODE ===
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -260,7 +260,7 @@ def run_test_case(
switches = " ".join(get_switches(sw_file, device_name))
else:
# Get switches
switches = " --lvs_sub=sub!" # default switch
switches = "" # default switch

# Creating run folder structure and copy testcases in it
pattern_clean = ".".join(os.path.basename(layout_path).split(".")[:-1])
Expand Down
Binary file not shown.
Binary file not shown.
Binary file not shown.
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,73 @@
*==========================================================================

.SUBCKT npn13G2l
Q1 net1 net2 net3 sub! npn13G2l m=1 le=1.0u we=70.00n
Q2 net4 net5 net6 sub! npn13G2l m=1 le=1.15u we=70.00n
Q3 net7 net8 net9 sub! npn13G2l m=2 le=1.0u we=70.00n
Q1 net1 net2 net3 sub npn13G2l m=1 le=1.0u we=70.00n
Q2 net4 net5 net6 sub npn13G2l m=1 le=1.15u we=70.00n
Q3 net7 net8 net9 sub npn13G2l m=2 le=1.0u we=70.00n

* Extra patterns
Q_pattern_1 c_1 b_1 e_1 sub npn13G2l we=0.07u le=2.29u
Q_pattern_2 c_2 b_2 e_2 sub npn13G2l we=0.07u le=1.01u
Q_pattern_3 c_3 b_3 e_3 sub npn13G2l we=0.07u le=1.22u
Q_pattern_4 c_4 b_4 e_4 sub npn13G2l we=0.07u le=1.48u
Q_pattern_5 c_5 b_5 e_5 sub npn13G2l we=0.07u le=2.36u
Q_pattern_6 c_6 b_6 e_6 sub npn13G2l we=0.07u le=1.58u
Q_pattern_7 c_7 b_7 e_7 sub npn13G2l we=0.07u le=1.26u
Q_pattern_8 c_8 b_8 e_8 sub npn13G2l we=0.07u le=1.62u
Q_pattern_9 c_9 b_9 e_9 sub npn13G2l we=0.07u le=1.62u
Q_pattern_10 c_10 b_10 e_10 sub npn13G2l we=0.07u le=1.26u
Q_pattern_11 c_11 b_11 e_11 sub npn13G2l we=0.07u le=1.58u
Q_pattern_12 c_12 b_12 e_12 sub npn13G2l we=0.07u le=2.36u
Q_pattern_13 c_13 b_13 e_13 sub npn13G2l we=0.07u le=1.48u
Q_pattern_14 c_14 b_14 e_14 sub npn13G2l we=0.07u le=1.22u
Q_pattern_15 c_15 b_15 e_15 sub npn13G2l we=0.07u le=1.01u
Q_pattern_16 c_16 b_16 e_16 sub npn13G2l we=0.07u le=2.29u
Q_pattern_17 c_17 b_17 e_17 sub npn13G2l we=0.07u le=2.29u
Q_pattern_18 c_18 b_18 e_18 sub npn13G2l we=0.07u le=1.01u
Q_pattern_19 c_19 b_19 e_19 sub npn13G2l we=0.07u le=1.22u
Q_pattern_20 c_20 b_20 e_20 sub npn13G2l we=0.07u le=1.48u
Q_pattern_21 c_21 b_21 e_21 sub npn13G2l we=0.07u le=2.36u
Q_pattern_22 c_22 b_22 e_22 sub npn13G2l we=0.07u le=1.58u
Q_pattern_23 c_23 b_23 e_23 sub npn13G2l we=0.07u le=1.26u
Q_pattern_24 c_24 b_24 e_24 sub npn13G2l we=0.07u le=1.62u
Q_pattern_25 c_25 b_25 e_25 sub npn13G2l we=0.07u le=1.62u
Q_pattern_26 c_26 b_26 e_26 sub npn13G2l we=0.07u le=1.26u
Q_pattern_27 c_27 b_27 e_27 sub npn13G2l we=0.07u le=1.58u
Q_pattern_28 c_28 b_28 e_28 sub npn13G2l we=0.07u le=2.36u
Q_pattern_29 c_29 b_29 e_29 sub npn13G2l we=0.07u le=1.48u
Q_pattern_30 c_30 b_30 e_30 sub npn13G2l we=0.07u le=1.22u
Q_pattern_31 c_31 b_31 e_31 sub npn13G2l we=0.07u le=1.01u
Q_pattern_32 c_32 b_32 e_32 sub npn13G2l we=0.07u le=2.29u
Q_pattern_33 c_33 b_33 e_33 sub npn13G2l we=0.07u le=2.29u
Q_pattern_34 c_34 b_34 e_34 sub npn13G2l we=0.07u le=1.01u
Q_pattern_35 c_35 b_35 e_35 sub npn13G2l we=0.07u le=1.22u
Q_pattern_36 c_36 b_36 e_36 sub npn13G2l we=0.07u le=1.48u
Q_pattern_37 c_37 b_37 e_37 sub npn13G2l we=0.07u le=2.36u
Q_pattern_38 c_38 b_38 e_38 sub npn13G2l we=0.07u le=1.58u
Q_pattern_39 c_39 b_39 e_39 sub npn13G2l we=0.07u le=1.26u
Q_pattern_40 c_40 b_40 e_40 sub npn13G2l we=0.07u le=1.62u
Q_pattern_41 c_41 b_41 e_41 sub npn13G2l we=0.07u le=1.62u
Q_pattern_42 c_42 b_42 e_42 sub npn13G2l we=0.07u le=1.26u
Q_pattern_43 c_43 b_43 e_43 sub npn13G2l we=0.07u le=1.58u
Q_pattern_44 c_44 b_44 e_44 sub npn13G2l we=0.07u le=2.36u
Q_pattern_45 c_45 b_45 e_45 sub npn13G2l we=0.07u le=1.48u
Q_pattern_46 c_46 b_46 e_46 sub npn13G2l we=0.07u le=1.22u
Q_pattern_47 c_47 b_47 e_47 sub npn13G2l we=0.07u le=1.01u
Q_pattern_48 c_48 b_48 e_48 sub npn13G2l we=0.07u le=2.29u
Q_pattern_49 c_49 b_49 e_49 sub npn13G2l we=0.07u le=2.29u
Q_pattern_50 c_50 b_50 e_50 sub npn13G2l we=0.07u le=1.01u
Q_pattern_51 c_51 b_51 e_51 sub npn13G2l we=0.07u le=1.22u
Q_pattern_52 c_52 b_52 e_52 sub npn13G2l we=0.07u le=1.48u
Q_pattern_53 c_53 b_53 e_53 sub npn13G2l we=0.07u le=2.36u
Q_pattern_54 c_54 b_54 e_54 sub npn13G2l we=0.07u le=1.58u
Q_pattern_55 c_55 b_55 e_55 sub npn13G2l we=0.07u le=1.26u
Q_pattern_56 c_56 b_56 e_56 sub npn13G2l we=0.07u le=1.62u
Q_pattern_57 c_57 b_57 e_57 sub npn13G2l we=0.07u le=1.62u
Q_pattern_58 c_58 b_58 e_58 sub npn13G2l we=0.07u le=1.26u
Q_pattern_59 c_59 b_59 e_59 sub npn13G2l we=0.07u le=1.58u
Q_pattern_60 c_60 b_60 e_60 sub npn13G2l we=0.07u le=2.36u
Q_pattern_61 c_61 b_61 e_61 sub npn13G2l we=0.07u le=1.48u
Q_pattern_62 c_62 b_62 e_62 sub npn13G2l we=0.07u le=1.22u
Q_pattern_63 c_63 b_63 e_63 sub npn13G2l we=0.07u le=1.01u
Q_pattern_64 c_64 b_64 e_64 sub npn13G2l we=0.07u le=2.29u
.ENDS
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,73 @@
*==========================================================================

.SUBCKT npn13G2v
Q1 net1 net2 net3 sub! npn13G2v m=1 le=1.0u we=120.00n
Q2 net4 net5 net6 sub! npn13G2v m=1 le=1.15u we=120.00n
Q3 net7 net8 net9 sub! npn13G2v m=2 le=1.0u we=120.00n
Q1 net1 net2 net3 sub npn13G2v m=1 le=1.0u we=120.00n
Q2 net4 net5 net6 sub npn13G2v m=1 le=1.15u we=120.00n
Q3 net7 net8 net9 sub npn13G2v m=2 le=1.0u we=120.00n

* Extra patterns
Q_pattern_1 c_1 b_1 e_1 sub npn13G2v we=0.12u le=1.63u
Q_pattern_2 c_2 b_2 e_2 sub npn13G2v we=0.12u le=3.14u
Q_pattern_3 c_3 b_3 e_3 sub npn13G2v we=0.12u le=4.45u
Q_pattern_4 c_4 b_4 e_4 sub npn13G2v we=0.12u le=2.17u
Q_pattern_5 c_5 b_5 e_5 sub npn13G2v we=0.12u le=2.55u
Q_pattern_6 c_6 b_6 e_6 sub npn13G2v we=0.12u le=3.52u
Q_pattern_7 c_7 b_7 e_7 sub npn13G2v we=0.12u le=3.22u
Q_pattern_8 c_8 b_8 e_8 sub npn13G2v we=0.12u le=2.79u
Q_pattern_9 c_9 b_9 e_9 sub npn13G2v we=0.12u le=2.79u
Q_pattern_10 c_10 b_10 e_10 sub npn13G2v we=0.12u le=3.22u
Q_pattern_11 c_11 b_11 e_11 sub npn13G2v we=0.12u le=3.52u
Q_pattern_12 c_12 b_12 e_12 sub npn13G2v we=0.12u le=2.55u
Q_pattern_13 c_13 b_13 e_13 sub npn13G2v we=0.12u le=2.17u
Q_pattern_14 c_14 b_14 e_14 sub npn13G2v we=0.12u le=4.45u
Q_pattern_15 c_15 b_15 e_15 sub npn13G2v we=0.12u le=3.14u
Q_pattern_16 c_16 b_16 e_16 sub npn13G2v we=0.12u le=1.63u
Q_pattern_17 c_17 b_17 e_17 sub npn13G2v we=0.12u le=1.63u
Q_pattern_18 c_18 b_18 e_18 sub npn13G2v we=0.12u le=3.14u
Q_pattern_19 c_19 b_19 e_19 sub npn13G2v we=0.12u le=4.45u
Q_pattern_20 c_20 b_20 e_20 sub npn13G2v we=0.12u le=2.17u
Q_pattern_21 c_21 b_21 e_21 sub npn13G2v we=0.12u le=2.55u
Q_pattern_22 c_22 b_22 e_22 sub npn13G2v we=0.12u le=3.52u
Q_pattern_23 c_23 b_23 e_23 sub npn13G2v we=0.12u le=3.22u
Q_pattern_24 c_24 b_24 e_24 sub npn13G2v we=0.12u le=2.79u
Q_pattern_25 c_25 b_25 e_25 sub npn13G2v we=0.12u le=2.79u
Q_pattern_26 c_26 b_26 e_26 sub npn13G2v we=0.12u le=3.22u
Q_pattern_27 c_27 b_27 e_27 sub npn13G2v we=0.12u le=3.52u
Q_pattern_28 c_28 b_28 e_28 sub npn13G2v we=0.12u le=2.55u
Q_pattern_29 c_29 b_29 e_29 sub npn13G2v we=0.12u le=2.17u
Q_pattern_30 c_30 b_30 e_30 sub npn13G2v we=0.12u le=4.45u
Q_pattern_31 c_31 b_31 e_31 sub npn13G2v we=0.12u le=3.14u
Q_pattern_32 c_32 b_32 e_32 sub npn13G2v we=0.12u le=1.63u
Q_pattern_33 c_33 b_33 e_33 sub npn13G2v we=0.12u le=1.63u
Q_pattern_34 c_34 b_34 e_34 sub npn13G2v we=0.12u le=3.14u
Q_pattern_35 c_35 b_35 e_35 sub npn13G2v we=0.12u le=4.45u
Q_pattern_36 c_36 b_36 e_36 sub npn13G2v we=0.12u le=2.17u
Q_pattern_37 c_37 b_37 e_37 sub npn13G2v we=0.12u le=2.55u
Q_pattern_38 c_38 b_38 e_38 sub npn13G2v we=0.12u le=3.52u
Q_pattern_39 c_39 b_39 e_39 sub npn13G2v we=0.12u le=3.22u
Q_pattern_40 c_40 b_40 e_40 sub npn13G2v we=0.12u le=2.79u
Q_pattern_41 c_41 b_41 e_41 sub npn13G2v we=0.12u le=2.79u
Q_pattern_42 c_42 b_42 e_42 sub npn13G2v we=0.12u le=3.22u
Q_pattern_43 c_43 b_43 e_43 sub npn13G2v we=0.12u le=3.52u
Q_pattern_44 c_44 b_44 e_44 sub npn13G2v we=0.12u le=2.55u
Q_pattern_45 c_45 b_45 e_45 sub npn13G2v we=0.12u le=2.17u
Q_pattern_46 c_46 b_46 e_46 sub npn13G2v we=0.12u le=4.45u
Q_pattern_47 c_47 b_47 e_47 sub npn13G2v we=0.12u le=3.14u
Q_pattern_48 c_48 b_48 e_48 sub npn13G2v we=0.12u le=1.63u
Q_pattern_49 c_49 b_49 e_49 sub npn13G2v we=0.12u le=1.63u
Q_pattern_50 c_50 b_50 e_50 sub npn13G2v we=0.12u le=3.14u
Q_pattern_51 c_51 b_51 e_51 sub npn13G2v we=0.12u le=4.45u
Q_pattern_52 c_52 b_52 e_52 sub npn13G2v we=0.12u le=2.17u
Q_pattern_53 c_53 b_53 e_53 sub npn13G2v we=0.12u le=2.55u
Q_pattern_54 c_54 b_54 e_54 sub npn13G2v we=0.12u le=3.52u
Q_pattern_55 c_55 b_55 e_55 sub npn13G2v we=0.12u le=3.22u
Q_pattern_56 c_56 b_56 e_56 sub npn13G2v we=0.12u le=2.79u
Q_pattern_57 c_57 b_57 e_57 sub npn13G2v we=0.12u le=2.79u
Q_pattern_58 c_58 b_58 e_58 sub npn13G2v we=0.12u le=3.22u
Q_pattern_59 c_59 b_59 e_59 sub npn13G2v we=0.12u le=3.52u
Q_pattern_60 c_60 b_60 e_60 sub npn13G2v we=0.12u le=2.55u
Q_pattern_61 c_61 b_61 e_61 sub npn13G2v we=0.12u le=2.17u
Q_pattern_62 c_62 b_62 e_62 sub npn13G2v we=0.12u le=4.45u
Q_pattern_63 c_63 b_63 e_63 sub npn13G2v we=0.12u le=3.14u
Q_pattern_64 c_64 b_64 e_64 sub npn13G2v we=0.12u le=1.63u
.ENDS
Loading
Loading