@vessel-dsp/compiler 0.16.0 → 0.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/dist/compile.d.ts.map +1 -1
  2. package/dist/compile.js +40 -0
  3. package/dist/compile.js.map +1 -1
  4. package/dist/dangling-active-terminal.d.ts.map +1 -1
  5. package/dist/dangling-active-terminal.js +6 -0
  6. package/dist/dangling-active-terminal.js.map +1 -1
  7. package/dist/device-laws.d.ts.map +1 -1
  8. package/dist/device-laws.js +16 -0
  9. package/dist/device-laws.js.map +1 -1
  10. package/dist/fixtures/circuits.d.ts +44 -10
  11. package/dist/fixtures/circuits.d.ts.map +1 -1
  12. package/dist/fixtures/circuits.js +525 -13
  13. package/dist/fixtures/circuits.js.map +1 -1
  14. package/dist/lower.d.ts.map +1 -1
  15. package/dist/lower.js +60 -0
  16. package/dist/lower.js.map +1 -1
  17. package/dist/part-catalog.d.ts.map +1 -1
  18. package/dist/part-catalog.js +465 -22
  19. package/dist/part-catalog.js.map +1 -1
  20. package/dist/partition.d.ts.map +1 -1
  21. package/dist/partition.js +4 -0
  22. package/dist/partition.js.map +1 -1
  23. package/dist/registry-data/bjt.d.ts.map +1 -1
  24. package/dist/registry-data/bjt.js +279 -0
  25. package/dist/registry-data/bjt.js.map +1 -1
  26. package/dist/registry-data/diode.d.ts.map +1 -1
  27. package/dist/registry-data/diode.js +205 -5
  28. package/dist/registry-data/diode.js.map +1 -1
  29. package/dist/registry-data/jfet.d.ts.map +1 -1
  30. package/dist/registry-data/jfet.js +29 -0
  31. package/dist/registry-data/jfet.js.map +1 -1
  32. package/dist/registry-data/led.d.ts.map +1 -1
  33. package/dist/registry-data/led.js +15 -4
  34. package/dist/registry-data/led.js.map +1 -1
  35. package/dist/registry-data/opamp.d.ts.map +1 -1
  36. package/dist/registry-data/opamp.js +75 -1
  37. package/dist/registry-data/opamp.js.map +1 -1
  38. package/dist/sparse-schedule.d.ts.map +1 -1
  39. package/dist/sparse-schedule.js +16 -0
  40. package/dist/sparse-schedule.js.map +1 -1
  41. package/dist/stamp-partition.d.ts +8 -1
  42. package/dist/stamp-partition.d.ts.map +1 -1
  43. package/dist/stamp-partition.js +22 -0
  44. package/dist/stamp-partition.js.map +1 -1
  45. package/dist/types.d.ts +65 -2
  46. package/dist/types.d.ts.map +1 -1
  47. package/dist/unexecuted-region.d.ts.map +1 -1
  48. package/dist/unexecuted-region.js +1 -0
  49. package/dist/unexecuted-region.js.map +1 -1
  50. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"part-catalog.d.ts","sourceRoot":"","sources":["../src/part-catalog.ts"],"names":[],"mappings":"AAsDA,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG1D,OAAO,EAeN,KAAK,UAAU,EACf,KAAK,mBAAmB,EACxB,KAAK,aAAa,EAClB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAI5D,OAAO,EACN,wBAAwB,EACxB,sBAAsB,EACtB,oBAAoB,EACpB,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,GACtB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,CAAC;AAoIzD,6FAA6F;AAC7F,wBAAgB,WAAW,CAAC,MAAM,EAAE,aAAa,GAAG,SAAS,CA+B5D;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,aAAa,GAAG,SAAS,CAkC9D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,aAAa,GAAG,SAAS,CAkC5D;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAC1B,MAAM,EAAE,aAAa,EACrB,GAAG,EAAE,MAAM,GAAG,QAAQ,GACpB,SAAS,CAkEX;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,aAAa,GAAG,SAAS,CA6B5D;AA+BD,eAAO,MAAM,mBAAmB,EAAE,WAAW,CAAC,MAAM,CAInD,CAAC;AAgpRF;;;;;;;;;;GAUG;AACH,wBAAgB,wBAAwB,CACvC,IAAI,EAAE,SAAS,SAAS,EAAE,EAC1B,IAAI,GAAE,SAAS,mBAAmB,EAAyB,EAC3D,UAAU,GAAE,aAAa,CAAC;IAAE,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAA0B,GAClH,SAAS,SAAS,EAAE,CAgHtB;AAeD,eAAO,MAAM,kBAAkB,EAAE,WAAW,CAAC,MAAM,CAUlD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,YAE9B,CAAC"}
1
+ {"version":3,"file":"part-catalog.d.ts","sourceRoot":"","sources":["../src/part-catalog.ts"],"names":[],"mappings":"AAsDA,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG1D,OAAO,EAeN,KAAK,UAAU,EACf,KAAK,mBAAmB,EACxB,KAAK,aAAa,EAClB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAI5D,OAAO,EACN,wBAAwB,EACxB,sBAAsB,EACtB,oBAAoB,EACpB,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,GACtB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,CAAC;AAoIzD,6FAA6F;AAC7F,wBAAgB,WAAW,CAAC,MAAM,EAAE,aAAa,GAAG,SAAS,CA+B5D;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,aAAa,GAAG,SAAS,CAkC9D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,aAAa,GAAG,SAAS,CAkC5D;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAC1B,MAAM,EAAE,aAAa,EACrB,GAAG,EAAE,MAAM,GAAG,QAAQ,GACpB,SAAS,CAkEX;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,aAAa,GAAG,SAAS,CA6B5D;AA+BD,eAAO,MAAM,mBAAmB,EAAE,WAAW,CAAC,MAAM,CAInD,CAAC;AAklSF;;;;;;;;;;GAUG;AACH,wBAAgB,wBAAwB,CACvC,IAAI,EAAE,SAAS,SAAS,EAAE,EAC1B,IAAI,GAAE,SAAS,mBAAmB,EAAyB,EAC3D,UAAU,GAAE,aAAa,CAAC;IAAE,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAA0B,GAClH,SAAS,SAAS,EAAE,CAgHtB;AAeD,eAAO,MAAM,kBAAkB,EAAE,WAAW,CAAC,MAAM,CAUlD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,YAE9B,CAAC"}
@@ -3947,7 +3947,12 @@ const entries = [
3947
3947
  "CD4013",
3948
3948
  "CD4013BE",
3949
3949
  "uPD4013C",
3950
- "CD4013B"
3950
+ "CD4013B",
3951
+ // Motorola second source, same 4013 die: `boss-oc-2` IC6/IC7 are marked
3952
+ // MC14013BCP on the Taiwan 1999 specimen (same precedent as SCL4013A
3953
+ // riding the shared 4013 entry below).
3954
+ "MC14013BCP",
3955
+ "MC14013B"
3951
3956
  ],
3952
3957
  "declaredTypes": [],
3953
3958
  "terminalRoleGroups": [],
@@ -3955,26 +3960,40 @@ const entries = [
3955
3960
  "kind": "sections",
3956
3961
  "sections": [
3957
3962
  {
3963
+ // One D-type flip-flop with asynchronous set/reset (4013 pin
3964
+ // order: 1 Q1, 2 Q1-bar, 3 CLOCK1, 4 RESET1, 5 DATA1, 6 SET1,
3965
+ // 7 VSS, 8 SET2, 9 DATA2, 10 RESET2, 11 CLOCK2, 12 Q2-bar,
3966
+ // 13 Q2, 14 VDD). Section terminals are pin indices in
3967
+ // canonical law order: clock, d, set, reset, q, q_bar, vdd,
3968
+ // vss. The supply pins ride the stamp so the output high and
3969
+ // the input threshold follow the pedal's own supply instead
3970
+ // of a constant.
3958
3971
  "law": {
3959
- "kind": "logic-divider",
3960
- "thresholdVolts": 2,
3961
- "highVolts": 5
3972
+ "kind": "d-flip-flop"
3962
3973
  },
3963
3974
  "terminals": [
3964
3975
  2,
3976
+ 4,
3977
+ 5,
3978
+ 3,
3965
3979
  0,
3980
+ 1,
3981
+ 13,
3966
3982
  6
3967
3983
  ]
3968
3984
  },
3969
3985
  {
3970
3986
  "law": {
3971
- "kind": "logic-divider",
3972
- "thresholdVolts": 2,
3973
- "highVolts": 5
3987
+ "kind": "d-flip-flop"
3974
3988
  },
3975
3989
  "terminals": [
3976
3990
  10,
3991
+ 8,
3992
+ 7,
3993
+ 9,
3977
3994
  12,
3995
+ 11,
3996
+ 13,
3978
3997
  6
3979
3998
  ]
3980
3999
  }
@@ -3988,8 +4007,9 @@ const entries = [
3988
4007
  "1set",
3989
4008
  "gnd",
3990
4009
  "2set",
3991
- "2reset",
4010
+ // Pin order verified against the CD4013B datasheet (TI CD4013B, ON MC14013B: 1 Q1, 2 Q1-bar, 3 CLOCK1, 4 RESET1, 5 DATA1, 6 SET1, 7 VSS, 8 SET2, 9 DATA2, 10 RESET2, 11 CLOCK2, 12 Q2-bar, 13 Q2, 14 VDD). Positions 9 and 10 were transposed here; fixed 2026-10-26 because boss-oc-2 drives exactly that pair (D2 low at pin 9, R2 via R35 at pin 10).
3992
4011
  "2data",
4012
+ "2reset",
3993
4013
  "2clock",
3994
4014
  "2q_bar",
3995
4015
  "2q",
@@ -6016,26 +6036,40 @@ const entries = [
6016
6036
  "kind": "sections",
6017
6037
  "sections": [
6018
6038
  {
6039
+ // One D-type flip-flop with asynchronous set/reset (4013 pin
6040
+ // order: 1 Q1, 2 Q1-bar, 3 CLOCK1, 4 RESET1, 5 DATA1, 6 SET1,
6041
+ // 7 VSS, 8 SET2, 9 DATA2, 10 RESET2, 11 CLOCK2, 12 Q2-bar,
6042
+ // 13 Q2, 14 VDD). Section terminals are pin indices in
6043
+ // canonical law order: clock, d, set, reset, q, q_bar, vdd,
6044
+ // vss. The supply pins ride the stamp so the output high and
6045
+ // the input threshold follow the pedal's own supply instead
6046
+ // of a constant.
6019
6047
  "law": {
6020
- "kind": "logic-divider",
6021
- "thresholdVolts": 2,
6022
- "highVolts": 5
6048
+ "kind": "d-flip-flop"
6023
6049
  },
6024
6050
  "terminals": [
6025
6051
  2,
6052
+ 4,
6053
+ 5,
6054
+ 3,
6026
6055
  0,
6056
+ 1,
6057
+ 13,
6027
6058
  6
6028
6059
  ]
6029
6060
  },
6030
6061
  {
6031
6062
  "law": {
6032
- "kind": "logic-divider",
6033
- "thresholdVolts": 2,
6034
- "highVolts": 5
6063
+ "kind": "d-flip-flop"
6035
6064
  },
6036
6065
  "terminals": [
6037
6066
  10,
6067
+ 8,
6068
+ 7,
6069
+ 9,
6038
6070
  12,
6071
+ 11,
6072
+ 13,
6039
6073
  6
6040
6074
  ]
6041
6075
  }
@@ -6083,26 +6117,37 @@ const entries = [
6083
6117
  "kind": "sections",
6084
6118
  "sections": [
6085
6119
  {
6120
+ // Same D-type flip-flop law; indices are in this entry's
6121
+ // section-order pinout (1Q, 1QBAR, 1CLK, 1D, 1RESET, 1SET,
6122
+ // 2Q, 2QBAR, 2CLK, 2D, 2RESET, 2SET, VDD, VSS), still in
6123
+ // canonical law order: clock, d, set, reset, q, q_bar,
6124
+ // vdd, vss.
6086
6125
  "law": {
6087
- "kind": "logic-divider",
6088
- "thresholdVolts": 2,
6089
- "highVolts": 5
6126
+ "kind": "d-flip-flop"
6090
6127
  },
6091
6128
  "terminals": [
6092
6129
  2,
6130
+ 3,
6131
+ 5,
6132
+ 4,
6093
6133
  0,
6134
+ 1,
6135
+ 12,
6094
6136
  13
6095
6137
  ]
6096
6138
  },
6097
6139
  {
6098
6140
  "law": {
6099
- "kind": "logic-divider",
6100
- "thresholdVolts": 2,
6101
- "highVolts": 5
6141
+ "kind": "d-flip-flop"
6102
6142
  },
6103
6143
  "terminals": [
6104
6144
  8,
6145
+ 9,
6146
+ 11,
6147
+ 10,
6105
6148
  6,
6149
+ 7,
6150
+ 12,
6106
6151
  13
6107
6152
  ]
6108
6153
  }
@@ -7307,11 +7352,15 @@ const entries = [
7307
7352
  // 2026-10-15: the NJR/JRC marking rides the NJM sheet). GBW is not in this entry: it
7308
7353
  // lives in the data-registry row (TYP 15 MHz at f = 10 kHz), stamped by the pass below.
7309
7354
  {
7355
+ // Wave 8: the bare transcribed number-portion "4580" (Azusa Driver U2, 8 pins)
7356
+ // rides this entry (same die family per the owner JRC-rides-NJM decision above);
7357
+ // it carries no GBW figure (see `opampGainBandwidthAbsent`).
7310
7358
  "partIds": [
7311
7359
  "JRC4580D",
7312
7360
  "JRC4580",
7313
7361
  "NJM4580D",
7314
- "NJM4580"
7362
+ "NJM4580",
7363
+ "4580"
7315
7364
  ],
7316
7365
  "declaredTypes": [],
7317
7366
  "terminalRoleGroups": [
@@ -7816,8 +7865,11 @@ const entries = [
7816
7865
  // (1OUT, 1IN-, 1IN+, VDD-/GND, 2IN+, 2IN-, 2OUT, VDD+), same A/B convention as the
7817
7866
  // LM833 entry above.
7818
7867
  {
7868
+ // Wave 8: the C-suffix spelling rides here -- the quoted table IS the TLC2262C
7869
+ // operating characteristics (MXR Badass 78 U2). Same row as the GBW alias.
7819
7870
  "partIds": [
7820
- "TLC2262"
7871
+ "TLC2262",
7872
+ "TLC2262C"
7821
7873
  ],
7822
7874
  "declaredTypes": [],
7823
7875
  "terminalRoleGroups": [
@@ -8942,6 +8994,397 @@ const entries = [
8942
8994
  ]
8943
8995
  }
8944
8996
  },
8997
+ // Wave 8 (opamp batch, corpus-driven): sections whose open-loop gain is the sheet's
8998
+ // own TYP AOL transcribed (the gain-bandwidth product lives in
8999
+ // `registry-data/opamp.ts`, stamped by the passes below; the swing pair stays absent
9000
+ // per the D4 freeze). GBW rows and catalog entries are 1:1 by part id, so no entry
9001
+ // splits; AOL-only and generic-name ids below carry sections with no GBW row.
9002
+ // TI TL081 single JFET-input op-amp, from SLOS081O (Feb 1977, rev Sept 2025) 5.8 DC:
9003
+ // 'AOL | Open-loop voltage | VO = 0 V | TL08xC | MIN 25 TYP 200 V/mV'. Used as
9004
+ // `openLoopGain: 200000` (bare id takes the commercial C-grade column, disclosed;
9005
+ // TL072C precedent). No GBW figure (package/grade split; see
9006
+ // `opampGainBandwidthAbsent`). Single-DIP shape mirrors the LM741/TL071 entry.
9007
+ {
9008
+ "partIds": [
9009
+ "TL081"
9010
+ ],
9011
+ "declaredTypes": [],
9012
+ "terminalRoleGroups": [
9013
+ [
9014
+ "vin+",
9015
+ "in+",
9016
+ "pin3"
9017
+ ],
9018
+ [
9019
+ "vin-",
9020
+ "in-",
9021
+ "pin2"
9022
+ ],
9023
+ [
9024
+ "vout",
9025
+ "out",
9026
+ "pin6"
9027
+ ]
9028
+ ],
9029
+ "model": {
9030
+ "kind": "sections",
9031
+ "sections": [
9032
+ {
9033
+ "law": {
9034
+ "kind": "ideal-opamp",
9035
+ "railHigh": null,
9036
+ "railLow": null,
9037
+ "openLoopGain": 200000
9038
+ },
9039
+ "terminals": [
9040
+ 0,
9041
+ 1,
9042
+ 2
9043
+ ]
9044
+ }
9045
+ ],
9046
+ "pinout": [
9047
+ "vin+",
9048
+ "vin-",
9049
+ "vout"
9050
+ ]
9051
+ }
9052
+ },
9053
+ // TI MC1458P dual general-purpose op-amp, from SLOS069C (Feb 1971, rev Aug 2010),
9054
+ // electrical characteristics at VCC+- = +-15 V: 'Large-signal differential voltage
9055
+ // amplification, RL >= 2 kOhm, VO = +-10 V, 25C: MIN 20 (MC1458) / 50 (MC1558) TYP 200
9056
+ // V/mV'. Used as `openLoopGain: 200000` (both grades share the TYP). MC1458P is the
9057
+ // PDIP orderable named on the title block. GBW TYP 1 MHz lives in the data-registry row.
9058
+ {
9059
+ "partIds": [
9060
+ "MC1458P"
9061
+ ],
9062
+ "declaredTypes": [],
9063
+ "terminalRoleGroups": [
9064
+ [
9065
+ "OUT_A_pin1"
9066
+ ],
9067
+ [
9068
+ "INVERTING_A_pin2"
9069
+ ],
9070
+ [
9071
+ "NONINVERTING_A_pin3"
9072
+ ],
9073
+ [
9074
+ "V_MINUS_pin4"
9075
+ ],
9076
+ [
9077
+ "NONINVERTING_B_pin5"
9078
+ ],
9079
+ [
9080
+ "INVERTING_B_pin6"
9081
+ ],
9082
+ [
9083
+ "OUT_B_pin7"
9084
+ ],
9085
+ [
9086
+ "V_PLUS_pin8"
9087
+ ]
9088
+ ],
9089
+ "model": {
9090
+ "kind": "sections",
9091
+ "pinout": [
9092
+ "OUT_A",
9093
+ "IN_A_MINUS",
9094
+ "IN_A_PLUS",
9095
+ "VEE",
9096
+ "IN_B_PLUS",
9097
+ "IN_B_MINUS",
9098
+ "OUT_B",
9099
+ "VCC"
9100
+ ],
9101
+ "sections": [
9102
+ {
9103
+ "law": {
9104
+ "kind": "ideal-opamp",
9105
+ "railHigh": null,
9106
+ "railLow": null,
9107
+ "openLoopGain": 200000
9108
+ },
9109
+ "terminals": [
9110
+ 2,
9111
+ 1,
9112
+ 0
9113
+ ]
9114
+ },
9115
+ {
9116
+ "law": {
9117
+ "kind": "ideal-opamp",
9118
+ "railHigh": null,
9119
+ "railLow": null,
9120
+ "openLoopGain": 200000
9121
+ },
9122
+ "terminals": [
9123
+ 4,
9124
+ 5,
9125
+ 6
9126
+ ]
9127
+ }
9128
+ ]
9129
+ }
9130
+ },
9131
+ // Renesas CA3240EZ dual BiMOS op-amp, from FN1050 Rev 6.00 (Mar 2005) guaranteed table
9132
+ // (VSUPPLY = +-15 V, TA = 25C): 'Large-Signal Voltage Gain AOL, VO = 26VP-P, RL = 2 kOhm
9133
+ // (Note 3): MIN 20 TYP 100 kV/V' both grades. Used as `openLoopGain: 100000`. CA3240EZ
9134
+ // is the 8 Ld PDIP orderable. GBW TYP 4.5 MHz lives in the data-registry row.
9135
+ {
9136
+ "partIds": [
9137
+ "CA3240EZ"
9138
+ ],
9139
+ "declaredTypes": [],
9140
+ "terminalRoleGroups": [
9141
+ [
9142
+ "OUT_A_pin1"
9143
+ ],
9144
+ [
9145
+ "INVERTING_A_pin2"
9146
+ ],
9147
+ [
9148
+ "NONINVERTING_A_pin3"
9149
+ ],
9150
+ [
9151
+ "V_MINUS_pin4"
9152
+ ],
9153
+ [
9154
+ "NONINVERTING_B_pin5"
9155
+ ],
9156
+ [
9157
+ "INVERTING_B_pin6"
9158
+ ],
9159
+ [
9160
+ "OUT_B_pin7"
9161
+ ],
9162
+ [
9163
+ "V_PLUS_pin8"
9164
+ ]
9165
+ ],
9166
+ "model": {
9167
+ "kind": "sections",
9168
+ "pinout": [
9169
+ "OUT_A",
9170
+ "IN_A_MINUS",
9171
+ "IN_A_PLUS",
9172
+ "VEE",
9173
+ "IN_B_PLUS",
9174
+ "IN_B_MINUS",
9175
+ "OUT_B",
9176
+ "VCC"
9177
+ ],
9178
+ "sections": [
9179
+ {
9180
+ "law": {
9181
+ "kind": "ideal-opamp",
9182
+ "railHigh": null,
9183
+ "railLow": null,
9184
+ "openLoopGain": 100000
9185
+ },
9186
+ "terminals": [
9187
+ 2,
9188
+ 1,
9189
+ 0
9190
+ ]
9191
+ },
9192
+ {
9193
+ "law": {
9194
+ "kind": "ideal-opamp",
9195
+ "railHigh": null,
9196
+ "railLow": null,
9197
+ "openLoopGain": 100000
9198
+ },
9199
+ "terminals": [
9200
+ 4,
9201
+ 5,
9202
+ 6
9203
+ ]
9204
+ }
9205
+ ]
9206
+ }
9207
+ },
9208
+ // ON Semi LM301AN single non-compensated op-amp, from LM301A/D Rev. 12 (July 2025)
9209
+ // ELECTRICAL CHARACTERISTICS (TA = +25C; LM301A column, +-5 to +-15 V supply range):
9210
+ // 'Large Signal Voltage Gain AV: MIN 50 (LM201A) / 25 (LM301A) TYP 160 V/mV' both grades
9211
+ // share the TYP. Used as `openLoopGain: 160000`. LM301AN is the PDIP-8 orderable. No GBW
9212
+ // row exists (see `opampGainBandwidthAbsent`; same AOL-only shape as LM308).
9213
+ // Single-DIP shape mirrors the LM741/TL071 entry.
9214
+ {
9215
+ "partIds": [
9216
+ "LM301AN"
9217
+ ],
9218
+ "declaredTypes": [],
9219
+ "terminalRoleGroups": [
9220
+ [
9221
+ "vin+",
9222
+ "in+",
9223
+ "pin3"
9224
+ ],
9225
+ [
9226
+ "vin-",
9227
+ "in-",
9228
+ "pin2"
9229
+ ],
9230
+ [
9231
+ "vout",
9232
+ "out",
9233
+ "pin6"
9234
+ ]
9235
+ ],
9236
+ "model": {
9237
+ "kind": "sections",
9238
+ "sections": [
9239
+ {
9240
+ "law": {
9241
+ "kind": "ideal-opamp",
9242
+ "railHigh": null,
9243
+ "railLow": null,
9244
+ "openLoopGain": 160000
9245
+ },
9246
+ "terminals": [
9247
+ 0,
9248
+ 1,
9249
+ 2
9250
+ ]
9251
+ }
9252
+ ],
9253
+ "pinout": [
9254
+ "vin+",
9255
+ "vin-",
9256
+ "vout"
9257
+ ]
9258
+ }
9259
+ },
9260
+ // Renesas CA3130EZ single BiMOS op-amp, from FN817 Rev 6.00 (Aug 2005) Table 1
9261
+ // (TA = 25C, V+ = 15 V, V- = 0 V): 'Large-Signal Voltage Gain AOL, VO = 10VP-P, RL = 2
9262
+ // kOhm: MIN 50 TYP 320 kV/V' both grades. Used as `openLoopGain: 320000`. CA3130EZ is
9263
+ // the 8 Ld PDIP orderable. No GBW figure (compensation-dependent fT; see
9264
+ // `opampGainBandwidthAbsent`). Single-DIP shape mirrors the LM741/TL071 entry.
9265
+ {
9266
+ "partIds": [
9267
+ "CA3130EZ"
9268
+ ],
9269
+ "declaredTypes": [],
9270
+ "terminalRoleGroups": [
9271
+ [
9272
+ "vin+",
9273
+ "in+",
9274
+ "pin3"
9275
+ ],
9276
+ [
9277
+ "vin-",
9278
+ "in-",
9279
+ "pin2"
9280
+ ],
9281
+ [
9282
+ "vout",
9283
+ "out",
9284
+ "pin6"
9285
+ ]
9286
+ ],
9287
+ "model": {
9288
+ "kind": "sections",
9289
+ "sections": [
9290
+ {
9291
+ "law": {
9292
+ "kind": "ideal-opamp",
9293
+ "railHigh": null,
9294
+ "railLow": null,
9295
+ "openLoopGain": 320000
9296
+ },
9297
+ "terminals": [
9298
+ 0,
9299
+ 1,
9300
+ 2
9301
+ ]
9302
+ }
9303
+ ],
9304
+ "pinout": [
9305
+ "vin+",
9306
+ "vin-",
9307
+ "vout"
9308
+ ]
9309
+ }
9310
+ },
9311
+ // Bare "4559" dual (Mojo Rook IC1, 8 pins): no 4559-family sheet cited, so the sections
9312
+ // carry the house 100000, disclosed as unsourced (TL062/LM741-single precedent), with no
9313
+ // GBW figure (see `opampGainBandwidthAbsent`; same verdict as bare 4558). Standard dual
9314
+ // order, same pin-numbered role convention as the NJM4580 entry.
9315
+ {
9316
+ "partIds": [
9317
+ "4559"
9318
+ ],
9319
+ "declaredTypes": [],
9320
+ "terminalRoleGroups": [
9321
+ [
9322
+ "OUT_A_pin1"
9323
+ ],
9324
+ [
9325
+ "INVERTING_A_pin2"
9326
+ ],
9327
+ [
9328
+ "NONINVERTING_A_pin3"
9329
+ ],
9330
+ [
9331
+ "V_MINUS_pin4"
9332
+ ],
9333
+ [
9334
+ "NONINVERTING_B_pin5"
9335
+ ],
9336
+ [
9337
+ "INVERTING_B_pin6"
9338
+ ],
9339
+ [
9340
+ "OUT_B_pin7"
9341
+ ],
9342
+ [
9343
+ "V_PLUS_pin8"
9344
+ ]
9345
+ ],
9346
+ "model": {
9347
+ "kind": "sections",
9348
+ "pinout": [
9349
+ "OUT_A",
9350
+ "IN_A_MINUS",
9351
+ "IN_A_PLUS",
9352
+ "VEE",
9353
+ "IN_B_PLUS",
9354
+ "IN_B_MINUS",
9355
+ "OUT_B",
9356
+ "VCC"
9357
+ ],
9358
+ "sections": [
9359
+ {
9360
+ "law": {
9361
+ "kind": "ideal-opamp",
9362
+ "railHigh": null,
9363
+ "railLow": null,
9364
+ "openLoopGain": 100000
9365
+ },
9366
+ "terminals": [
9367
+ 2,
9368
+ 1,
9369
+ 0
9370
+ ]
9371
+ },
9372
+ {
9373
+ "law": {
9374
+ "kind": "ideal-opamp",
9375
+ "railHigh": null,
9376
+ "railLow": null,
9377
+ "openLoopGain": 100000
9378
+ },
9379
+ "terminals": [
9380
+ 4,
9381
+ 5,
9382
+ 6
9383
+ ]
9384
+ }
9385
+ ]
9386
+ }
9387
+ },
8945
9388
  ...zenerRegistryRecords.map((record) => zenerLaw(record)),
8946
9389
  // Wave-1 discrete fill: bjt, diode-forward, mosfet and jfet-channel records become
8947
9390
  // law entries through the builders above -- one list per class, so the entries cannot