@vessel-dsp/compiler 0.18.0 → 0.18.1
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.
- package/dist/compile.d.ts.map +1 -1
- package/dist/compile.js +26 -13
- package/dist/compile.js.map +1 -1
- package/dist/device-laws.d.ts.map +1 -1
- package/dist/device-laws.js +83 -4
- package/dist/device-laws.js.map +1 -1
- package/dist/latch-seed.d.ts +7 -6
- package/dist/latch-seed.d.ts.map +1 -1
- package/dist/latch-seed.js +199 -31
- package/dist/latch-seed.js.map +1 -1
- package/dist/lower.d.ts.map +1 -1
- package/dist/lower.js +145 -0
- package/dist/lower.js.map +1 -1
- package/dist/netlist.d.ts.map +1 -1
- package/dist/netlist.js +16 -0
- package/dist/netlist.js.map +1 -1
- package/dist/part-catalog.d.ts +21 -0
- package/dist/part-catalog.d.ts.map +1 -1
- package/dist/part-catalog.js +750 -21
- package/dist/part-catalog.js.map +1 -1
- package/dist/partition.d.ts.map +1 -1
- package/dist/partition.js +5 -0
- package/dist/partition.js.map +1 -1
- package/dist/registry-data/index.d.ts +1 -0
- package/dist/registry-data/index.d.ts.map +1 -1
- package/dist/registry-data/index.js +3 -0
- package/dist/registry-data/index.js.map +1 -1
- package/dist/registry-data/poweramp.d.ts +10 -0
- package/dist/registry-data/poweramp.d.ts.map +1 -0
- package/dist/registry-data/poweramp.js +191 -0
- package/dist/registry-data/poweramp.js.map +1 -0
- package/dist/registry-data/schema.d.ts +2 -0
- package/dist/registry-data/schema.d.ts.map +1 -1
- package/dist/registry-data/schema.js +22 -0
- package/dist/registry-data/schema.js.map +1 -1
- package/dist/registry.d.ts +89 -1
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +148 -0
- package/dist/registry.js.map +1 -1
- package/dist/types.d.ts +75 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/unverified-pinout.d.ts.map +1 -1
- package/dist/unverified-pinout.js +8 -1
- package/dist/unverified-pinout.js.map +1 -1
- package/package.json +2 -2
package/dist/latch-seed.js
CHANGED
|
@@ -28,10 +28,11 @@
|
|
|
28
28
|
const LATCH_SEED_VOLTS = 0.65;
|
|
29
29
|
export function findBistableLatches(netlist) {
|
|
30
30
|
const rails = detectorRails(netlist);
|
|
31
|
+
const floodRails = latchFloodRails(netlist, rails);
|
|
31
32
|
const pairs = candidatePairs(netlist, rails);
|
|
32
33
|
const latches = [];
|
|
33
34
|
for (const pair of pairs) {
|
|
34
|
-
const assessed = assessLatchSides(netlist,
|
|
35
|
+
const assessed = assessLatchSides(netlist, floodRails, pair.a, pair.b);
|
|
35
36
|
const bypassControls = (netlist.controls ?? []).filter((c) => c.role === "bypass");
|
|
36
37
|
let controlId = bypassControls.length === 1 ? (bypassControls[0]?.id ?? null) : null;
|
|
37
38
|
if (controlId === null) {
|
|
@@ -63,9 +64,10 @@ export function findBistableLatches(netlist) {
|
|
|
63
64
|
*/
|
|
64
65
|
export function findLatchLedDisagreements(netlist) {
|
|
65
66
|
const rails = detectorRails(netlist);
|
|
67
|
+
const floodRails = latchFloodRails(netlist, rails);
|
|
66
68
|
const out = [];
|
|
67
69
|
for (const pair of candidatePairs(netlist, rails)) {
|
|
68
|
-
const assessed = assessLatchSides(netlist,
|
|
70
|
+
const assessed = assessLatchSides(netlist, floodRails, pair.a, pair.b);
|
|
69
71
|
if (assessed.sideProvenance === "connectivity" &&
|
|
70
72
|
assessed.ledVote !== null &&
|
|
71
73
|
assessed.ledVote.member.id !== assessed.onMember.id) {
|
|
@@ -114,29 +116,58 @@ function assessLatchSides(netlist, rails, a, b) {
|
|
|
114
116
|
/**
|
|
115
117
|
* The latch member an effect-status LED indicates as ON when engaged, or `null`.
|
|
116
118
|
*
|
|
117
|
-
* One unanimous vote wins: every LED
|
|
118
|
-
* the member lit in the effect state (cathode
|
|
119
|
-
* member; anode
|
|
120
|
-
* conflicting or absent votes are no evidence rather than a
|
|
121
|
-
* by the panel record's exact component id (already resolved
|
|
122
|
-
* and the typed `led` kind it carried — never by name or
|
|
119
|
+
* One unanimous vote wins: every LED terminal chain that reaches a latch collector
|
|
120
|
+
* names the member lit in the effect state (a cathode-side chain: lit when that
|
|
121
|
+
* collector is LOW, so that member; an anode-side chain: lit when it is HIGH, so
|
|
122
|
+
* the other member), and conflicting or absent votes are no evidence rather than a
|
|
123
|
+
* tie-break. Matching is by the panel record's exact component id (already resolved
|
|
124
|
+
* to terminals by stage 1) and the typed `led` kind it carried — never by name or
|
|
125
|
+
* description text.
|
|
126
|
+
*
|
|
127
|
+
* A chain is a pure series branch between the LED terminal and the collector: every
|
|
128
|
+
* link is a two-terminal resistor or diode, and every interior node joins exactly
|
|
129
|
+
* two device terminals (no branch). The LED device itself is never a link — a walk
|
|
130
|
+
* through it would join the anode side to the cathode side and manufacture a vote
|
|
131
|
+
* for every packet. An anode-side chain of exactly one resistor is not a vote
|
|
132
|
+
* (the shared-supply-plus-loads shape above); a direct anode hit still is.
|
|
123
133
|
*/
|
|
124
134
|
function ledIndicatedOnMember(netlist, a, b) {
|
|
125
135
|
const leds = netlist.effectStatusLeds ?? [];
|
|
126
136
|
const votes = [];
|
|
127
137
|
for (const led of leds) {
|
|
128
|
-
|
|
129
|
-
const
|
|
130
|
-
if (
|
|
131
|
-
|
|
132
|
-
member,
|
|
133
|
-
ledId: led.id,
|
|
134
|
-
polarity: cathode === "direct" ? "cathode-direct" : "cathode-1R",
|
|
135
|
-
});
|
|
138
|
+
const chainsTo = (terminal, member) => {
|
|
139
|
+
const start = terminal === "anode" ? led.anode : led.cathode;
|
|
140
|
+
if (start === member.collector) {
|
|
141
|
+
return [[]];
|
|
136
142
|
}
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
143
|
+
return ledSeriesChains(netlist, led.id, start, member.collector);
|
|
144
|
+
};
|
|
145
|
+
for (const member of [a, b]) {
|
|
146
|
+
for (const terminal of ["cathode", "anode"]) {
|
|
147
|
+
for (const path of chainsTo(terminal, member)) {
|
|
148
|
+
if (terminal === "cathode") {
|
|
149
|
+
votes.push({
|
|
150
|
+
member,
|
|
151
|
+
ledId: led.id,
|
|
152
|
+
polarity: path.length === 0
|
|
153
|
+
? "cathode-direct"
|
|
154
|
+
: path.length === 1 && isSingleResistor(netlist, path)
|
|
155
|
+
? "cathode-1R"
|
|
156
|
+
: "cathode-chain",
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
else {
|
|
160
|
+
if (path.length === 1 && isSingleResistor(netlist, path)) {
|
|
161
|
+
continue;
|
|
162
|
+
}
|
|
163
|
+
const other = member.id === a.id ? b : a;
|
|
164
|
+
votes.push({
|
|
165
|
+
member: other,
|
|
166
|
+
ledId: led.id,
|
|
167
|
+
polarity: path.length === 0 ? "anode-direct" : "anode-chain",
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
}
|
|
140
171
|
}
|
|
141
172
|
}
|
|
142
173
|
}
|
|
@@ -149,22 +180,102 @@ function ledIndicatedOnMember(netlist, a, b) {
|
|
|
149
180
|
}
|
|
150
181
|
return null;
|
|
151
182
|
}
|
|
183
|
+
/** Whether a chain path is a single resistor link. */
|
|
184
|
+
function isSingleResistor(netlist, path) {
|
|
185
|
+
if (path.length !== 1) {
|
|
186
|
+
return false;
|
|
187
|
+
}
|
|
188
|
+
const link = netlist.devices.find((device) => String(device.id) === path[0]);
|
|
189
|
+
return link?.kind === "resistor";
|
|
190
|
+
}
|
|
152
191
|
/**
|
|
153
|
-
*
|
|
154
|
-
*
|
|
155
|
-
*
|
|
192
|
+
* Series device-id paths from a node to a target over two-terminal resistors and
|
|
193
|
+
* diodes, excluding one device id (the LED being evaluated). Every interior node
|
|
194
|
+
* must join exactly two device terminals across the whole netlist — a branch, a
|
|
195
|
+
* ground return, a transistor terminal or an IC pin on the way disqualifies the
|
|
196
|
+
* run. The start node is an endpoint and exempt; the target is an endpoint and
|
|
197
|
+
* exempt. Revisits are refused, so every walk terminates.
|
|
198
|
+
*
|
|
199
|
+
* Diode orientation is deliberately not checked. The typed diode law cannot tell
|
|
200
|
+
* an undeclared zener from an ordinary diode: `boss-oc-2`'s `D2` is an RD5.1
|
|
201
|
+
* zener sitting in reverse in the CHECK branch, known as a zener only by its part
|
|
202
|
+
* number (which this detector must not read), with `parameters` empty and the
|
|
203
|
+
* plain diode source type. Refusing a reverse diode on absence of evidence would
|
|
204
|
+
* refuse that real branch, and a declared `breakdownVolts` would admit it anyway,
|
|
205
|
+
* so no orientation test can ever block a link. The no-branch, unanimity and
|
|
206
|
+
* precedence rules carry the specificity instead.
|
|
156
207
|
*/
|
|
157
|
-
function
|
|
158
|
-
|
|
159
|
-
|
|
208
|
+
function ledSeriesChains(netlist, excludedId, start, target) {
|
|
209
|
+
const adjacency = new Map();
|
|
210
|
+
for (const device of netlist.devices) {
|
|
211
|
+
if (String(device.id) === excludedId) {
|
|
212
|
+
continue;
|
|
213
|
+
}
|
|
214
|
+
if ((device.kind !== "resistor" && device.kind !== "diode") ||
|
|
215
|
+
device.nodes.length !== 2) {
|
|
216
|
+
continue;
|
|
217
|
+
}
|
|
218
|
+
const from = device.nodes[0];
|
|
219
|
+
const to = device.nodes[1];
|
|
220
|
+
if (from === undefined || to === undefined || from === to) {
|
|
221
|
+
continue;
|
|
222
|
+
}
|
|
223
|
+
for (const [a, b] of [
|
|
224
|
+
[from, to],
|
|
225
|
+
[to, from],
|
|
226
|
+
]) {
|
|
227
|
+
const links = adjacency.get(a);
|
|
228
|
+
if (links === undefined) {
|
|
229
|
+
adjacency.set(a, [{ to: b, id: String(device.id) }]);
|
|
230
|
+
}
|
|
231
|
+
else {
|
|
232
|
+
links.push({ to: b, id: String(device.id) });
|
|
233
|
+
}
|
|
234
|
+
}
|
|
160
235
|
}
|
|
161
|
-
const
|
|
162
|
-
|
|
163
|
-
(
|
|
164
|
-
(
|
|
165
|
-
|
|
236
|
+
const degree = (node) => {
|
|
237
|
+
let count = 0;
|
|
238
|
+
for (const device of netlist.devices) {
|
|
239
|
+
for (const terminal of device.nodes) {
|
|
240
|
+
if (terminal === node) {
|
|
241
|
+
count += 1;
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
return count;
|
|
246
|
+
};
|
|
247
|
+
const out = [];
|
|
248
|
+
const walk = (node, path, visited) => {
|
|
249
|
+
for (const link of adjacency.get(node) ?? []) {
|
|
250
|
+
if (visited.has(link.to)) {
|
|
251
|
+
continue;
|
|
252
|
+
}
|
|
253
|
+
// An interior node is a series joint or the walk ends here: anything
|
|
254
|
+
// with more or fewer than two terminals is a branch, not a chain.
|
|
255
|
+
if (link.to !== target && degree(link.to) !== 2) {
|
|
256
|
+
continue;
|
|
257
|
+
}
|
|
258
|
+
if (link.to === target) {
|
|
259
|
+
out.push([...path, link.id]);
|
|
260
|
+
continue;
|
|
261
|
+
}
|
|
262
|
+
visited.add(link.to);
|
|
263
|
+
walk(link.to, [...path, link.id], visited);
|
|
264
|
+
visited.delete(link.to);
|
|
265
|
+
}
|
|
266
|
+
};
|
|
267
|
+
walk(start, [], new Set([start]));
|
|
268
|
+
return out;
|
|
166
269
|
}
|
|
167
|
-
/** This detector's rail set: ground plus every asserted supply node.
|
|
270
|
+
/** This detector's rail set: ground plus every asserted supply node.
|
|
271
|
+
*
|
|
272
|
+
* This is the structural set, and it is also what decides latch candidacy
|
|
273
|
+
* (requirement 3 below): a collector or base sitting on one of these is supply,
|
|
274
|
+
* not state. It deliberately does NOT include diode-joined nodes — a base with
|
|
275
|
+
* a clamp diode to ground is still a state node (`boss-ds-1`'s `Q4` base, node
|
|
276
|
+
* 37, via `D7`), and promoting it would un-find a real latch. The flood view is
|
|
277
|
+
* `latchFloodRails`.
|
|
278
|
+
*/
|
|
168
279
|
function detectorRails(netlist) {
|
|
169
280
|
const rails = new Set([0]);
|
|
170
281
|
for (const device of netlist.devices) {
|
|
@@ -176,6 +287,63 @@ function detectorRails(netlist) {
|
|
|
176
287
|
}
|
|
177
288
|
return rails;
|
|
178
289
|
}
|
|
290
|
+
/**
|
|
291
|
+
* The rail set the gate-steering floods are blocked at: the structural rails
|
|
292
|
+
* plus every node a single diode joins to one of those.
|
|
293
|
+
*
|
|
294
|
+
* A reverse-polarity protection diode puts the whole board supply one diode from
|
|
295
|
+
* the inlet rail, and the DC flood must treat that node as supply rather than
|
|
296
|
+
* as a route: measured on `boss-oc-2`, node 7 sits behind `D1` (S5500G) off the
|
|
297
|
+
* rail node 60, so both collectors flood through their load resistors (`R22`,
|
|
298
|
+
* `R23`) into node 7, down the bias divider (`R46`) to the 4.5 V node 2, and
|
|
299
|
+
* out to every JFET gate — both sides then "gate the same switches" and the
|
|
300
|
+
* rule refuses a latch whose real gate paths (`Q5` collector → `R28` → `D4` →
|
|
301
|
+
* `Q3` gate; `Q6` collector → `R30` → `D5` → `Q4` gate) are one switch each.
|
|
302
|
+
* Blocking node 7 leaves each collector reaching only its own switch.
|
|
303
|
+
*
|
|
304
|
+
* Two deliberate limits. One hop only: a longer diode string is a signal path
|
|
305
|
+
* (steering, clamping, detection), not supply distribution, and stopping the
|
|
306
|
+
* flood there could hide a real gate. Effect-status indicators excluded: an LED
|
|
307
|
+
* terminates on supply but is a load, not distribution, and its far node can sit
|
|
308
|
+
* inside latch or LED networks rather than on a rail.
|
|
309
|
+
*
|
|
310
|
+
* The candidate not taken is stopping the flood at the shared load-resistor top
|
|
311
|
+
* (a node both collectors reach through one resistor each): on this corpus every
|
|
312
|
+
* such node is already a rail or is diode-joined to one (`boss-oc-2` node 7,
|
|
313
|
+
* `boss-ds-1` node 5, `boss-hm-2` node 71, `boss-mt-2` node 1, the rest already
|
|
314
|
+
* rails), so the diode rule is strictly more general here.
|
|
315
|
+
*
|
|
316
|
+
* This set is flood-blocking only. Candidacy (`candidatePairs`) keeps the
|
|
317
|
+
* structural set: the expansion can mark small-signal clamp nodes — `boss-ds-1`'s
|
|
318
|
+
* `Q4` base (node 37) sits behind its base-ground clamp `D7` — and a clamped
|
|
319
|
+
* state node is still a state node. Blocking such a node in a flood only shrinks
|
|
320
|
+
* reachability (worst case a refusal, the safe direction); promoting it to a
|
|
321
|
+
* rail would un-find the latch outright.
|
|
322
|
+
*/
|
|
323
|
+
function latchFloodRails(netlist, rails) {
|
|
324
|
+
const flood = new Set(rails);
|
|
325
|
+
const indicators = new Set((netlist.effectStatusLeds ?? []).map((led) => led.id));
|
|
326
|
+
for (const device of netlist.devices) {
|
|
327
|
+
if (device.kind !== "diode" || device.nodes.length !== 2) {
|
|
328
|
+
continue;
|
|
329
|
+
}
|
|
330
|
+
if (indicators.has(device.id)) {
|
|
331
|
+
continue;
|
|
332
|
+
}
|
|
333
|
+
const from = device.nodes[0];
|
|
334
|
+
const to = device.nodes[1];
|
|
335
|
+
if (from === undefined || to === undefined || from === to) {
|
|
336
|
+
continue;
|
|
337
|
+
}
|
|
338
|
+
if (rails.has(from) && !rails.has(to)) {
|
|
339
|
+
flood.add(to);
|
|
340
|
+
}
|
|
341
|
+
else if (rails.has(to) && !rails.has(from)) {
|
|
342
|
+
flood.add(from);
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
return flood;
|
|
346
|
+
}
|
|
179
347
|
/**
|
|
180
348
|
* Candidate cross-coupled pairs: the four structural requirements (a direct resistor
|
|
181
349
|
* each way, a shared emitter, no rails on collectors or bases, exclusivity), without
|
package/dist/latch-seed.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"latch-seed.js","sourceRoot":"","sources":["../src/latch-seed.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"latch-seed.js","sourceRoot":"","sources":["../src/latch-seed.ts"],"names":[],"mappings":"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"}
|
package/dist/lower.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lower.d.ts","sourceRoot":"","sources":["../src/lower.ts"],"names":[],"mappings":"AAqBA,OAAO,EAGN,KAAK,aAAa,EAClB,MAAM,cAAc,CAAC;AAUtB,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EACX,KAAK,EACL,MAAM,EACN,YAAY,EACZ,MAAM,EACN,kBAAkB,EAClB,YAAY,EACZ,MAAM,EACN,KAAK,EACL,MAAM,SAAS,CAAC;AAkBjB,OAAO,EACN,wBAAwB,EACxB,mBAAmB,EACnB,sBAAsB,EACtB,oBAAoB,EACpB,YAAY,EACZ,cAAc,GACd,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAIzC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"lower.d.ts","sourceRoot":"","sources":["../src/lower.ts"],"names":[],"mappings":"AAqBA,OAAO,EAGN,KAAK,aAAa,EAClB,MAAM,cAAc,CAAC;AAUtB,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EACX,KAAK,EACL,MAAM,EACN,YAAY,EACZ,MAAM,EACN,kBAAkB,EAClB,YAAY,EACZ,MAAM,EACN,KAAK,EACL,MAAM,SAAS,CAAC;AAkBjB,OAAO,EACN,wBAAwB,EACxB,mBAAmB,EACnB,sBAAsB,EACtB,oBAAoB,EACpB,YAAY,EACZ,cAAc,GACd,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAIzC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAYjD,wBAAgB,WAAW,CAC1B,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,YAAY,EACnB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM;AAClB;;;GAGG;AACH,UAAU,GAAE,SAAS,kBAAkB,EAAO,EAC9C,OAAO,GAAE,SAAS,aAAa,EAAO;AACtC;;;;;GAKG;AACH,aAAa,GAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAa;AACtD;;;;GAIG;AACH,kBAAkB,GAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAa;AAC3D;;;;GAIG;AACH,mBAAmB,GAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAa;AAC5D;;;;;GAKG;AACH,mBAAmB,GAAE,WAAW,CAAC,MAAM,CAAa,EACpD,gBAAgB,GAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAa,GACvD,KAAK,CAw+CP;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAC7B,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE;IAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAA;CAAE,CAAC,EAC/C,IAAI,EAAE,MAAM,GACV,MAAM,GAAG,IAAI,CAGf;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CACjC,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE;IAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAA;CAAE,CAAC,EAC/C,KAAK,EAAE,KAAK,GACV,KAAK,CAEP;AAGD,wBAAgB,KAAK,CACpB,YAAY,EAAE,YAAY,EAC1B,KAAK,EAAE,YAAY,GACjB,SAAS,KAAK,EAAE,CAwBlB;AA2TD;;;;;;GAMG;AACH,eAAO,MAAM,gCAAgC,IAAI,CAAC;AAqYlD;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CACjC,MAAM,EAAE,MAAM,GACZ,UAAU,GAAG,OAAO,GAAG,mBAAmB,CAK5C"}
|
package/dist/lower.js
CHANGED
|
@@ -29,6 +29,15 @@ import { opampInvertingInputNodes, opampInputDistances, opampOutputAcDistances,
|
|
|
29
29
|
export { opampInvertingInputNodes, opampInputDistances, opampOutputAcDistances, opampOutputDistances, potTerminals, quietDistances, } from "./pot-orientation.js";
|
|
30
30
|
export { LoweringError } from "./errors.js";
|
|
31
31
|
export { stampControl } from "./stamp-partition.js";
|
|
32
|
+
/**
|
|
33
|
+
* The transconductance of each power-amp input branch, in siemens: a house
|
|
34
|
+
* idealization, identical for every row, not a part figure. The closed-loop gain
|
|
35
|
+
* tends to 2*Rfb/Re as GM -> infinity with a relative error of order 1/(GM*Re)
|
|
36
|
+
* (under 0.01 dB at 100 S even at the smallest degeneration, 150 ohms), so the
|
|
37
|
+
* value only has to be large, never exact; the gain-bandwidth sweep in
|
|
38
|
+
* `packages/compiler/tests/power-amp.test.ts` measures the dependence.
|
|
39
|
+
*/
|
|
40
|
+
const POWER_AMP_TRANSCONDUCTANCE = 100;
|
|
32
41
|
export function lowerRegion(region, lawed, inputNode, outputNode,
|
|
33
42
|
/**
|
|
34
43
|
* Computed once by `lower` rather than per region: the rule is a pairwise scan over
|
|
@@ -1144,6 +1153,142 @@ invertingInputNodes = new Set(), acOutputDistance = new Map()) {
|
|
|
1144
1153
|
stateCount += 2;
|
|
1145
1154
|
break;
|
|
1146
1155
|
}
|
|
1156
|
+
case "power-amp": {
|
|
1157
|
+
// An LM386-style fixed-gain power amp, built from the printed resistor
|
|
1158
|
+
// network around two idealized transconductance branches. Terminal order
|
|
1159
|
+
// is the entry's canonical pin order (1 GAIN, 2 IN-, 3 IN+, 4 GND, 5 OUT,
|
|
1160
|
+
// 6 VS, 7 BYPASS, 8 GAIN), guaranteed by the sections expansion, which
|
|
1161
|
+
// binds by role or by the pinout check and refuses anything else by name.
|
|
1162
|
+
const [p1, p2m, p3p, pgnd, pout, pvs, pbyp, p8] = device.nodes;
|
|
1163
|
+
if (p1 === undefined ||
|
|
1164
|
+
p2m === undefined ||
|
|
1165
|
+
p3p === undefined ||
|
|
1166
|
+
pgnd === undefined ||
|
|
1167
|
+
pout === undefined ||
|
|
1168
|
+
pvs === undefined ||
|
|
1169
|
+
pbyp === undefined ||
|
|
1170
|
+
p8 === undefined) {
|
|
1171
|
+
throw new LoweringError(`power-amp ${device.id} requires eight terminals: gain1, inverting, noninverting, gnd, out, vcc, bypass, gain8`, device.id);
|
|
1172
|
+
}
|
|
1173
|
+
for (const [name, value] of [
|
|
1174
|
+
["feedbackOhms", law.feedbackOhms],
|
|
1175
|
+
["gainSetOhms", law.gainSetOhms],
|
|
1176
|
+
["degenerationOhms", law.degenerationOhms],
|
|
1177
|
+
["inputShuntOhms", law.inputShuntOhms],
|
|
1178
|
+
["bypassUpperOhms", law.bypassUpperOhms],
|
|
1179
|
+
]) {
|
|
1180
|
+
if (!(typeof value === "number" && Number.isFinite(value) && value > 0)) {
|
|
1181
|
+
throw new LoweringError(`power-amp ${device.id} has a non-positive ${name}: ${String(value)}`, device.id);
|
|
1182
|
+
}
|
|
1183
|
+
}
|
|
1184
|
+
// Small-signal derivation. Nodes: P1 (pin 1), P8 (pin 8), E (the
|
|
1185
|
+
// minus-side emitter node, private), L (the single-ended load node,
|
|
1186
|
+
// private). Two transconductance branches in series with the emitters,
|
|
1187
|
+
// so the printed degeneration network carries the signal current --
|
|
1188
|
+
// a high-impedance input pair would drop nothing across it and the
|
|
1189
|
+
// gain could never switch with the pin-1-to-8 impedance:
|
|
1190
|
+
// I_A (Vs -> P1) = GM * (V3 - VP1), I_B (L -> E) = GM * (V2 - VE).
|
|
1191
|
+
// KCL at P1, E, P8 and L (S = 1/Rgs + Y18, Gd = 1/Rdeg, Re the series
|
|
1192
|
+
// total Rdeg + Rgs‖Z18, follower V5 = VL), in the GM -> infinity limit
|
|
1193
|
+
// where the branch inputs vanish (VP1 -> V3, VE -> V2):
|
|
1194
|
+
// V8 = (V3*S + V2*Gd) / (S + Gd),
|
|
1195
|
+
// VL = -Rth * (I_B - I_A | differential) = +Rth * Vd / Re for pin-3
|
|
1196
|
+
// drive and -Rth * Vd / Re for pin-2 drive, with Rth = 2*Rfb.
|
|
1197
|
+
// Hence Av(Z18) = +2*Rfb/Re (pin 3) and -2*Rfb/Re (pin 2), exact: 20/200
|
|
1198
|
+
// on the printed points (2*15k/1500, 2*15k/150). Finite GM leaves a
|
|
1199
|
+
// relative error of order 1/(GM*Re), under 0.01 dB at GM = 100 S even at
|
|
1200
|
+
// the smallest degeneration (150 ohms); the gain-bandwidth sweep in
|
|
1201
|
+
// `packages/compiler/tests/power-amp.test.ts` measures the GM dependence.
|
|
1202
|
+
// Rth is stamped as a Thevenin pair (4*Rfb to Vs and to ground): the AC
|
|
1203
|
+
// load is 2*Rfb to AC ground either way, and the DC point centers on
|
|
1204
|
+
// Vs/2, which is what the sheet's self-centering output claim states.
|
|
1205
|
+
// The upper bypass resistor (Vs to pin 7) is stamped as printed; its lower
|
|
1206
|
+
// half terminates on an unmodeled internal bias node, so pin 7 reads Vs
|
|
1207
|
+
// instead of Vs/2 -- no stamp reads pin 7, and the external bypass
|
|
1208
|
+
// capacitor still AC-grounds it in every application circuit.
|
|
1209
|
+
const emitterMinus = allocateInternalNode();
|
|
1210
|
+
const load = allocateInternalNode();
|
|
1211
|
+
const rfb = law.feedbackOhms;
|
|
1212
|
+
const rgs = law.gainSetOhms;
|
|
1213
|
+
const rdeg = law.degenerationOhms;
|
|
1214
|
+
const theveninEach = 4 * rfb;
|
|
1215
|
+
stamps.push({
|
|
1216
|
+
kind: "conductance",
|
|
1217
|
+
a: p2m,
|
|
1218
|
+
b: pgnd,
|
|
1219
|
+
siemens: 1 / law.inputShuntOhms,
|
|
1220
|
+
});
|
|
1221
|
+
stamps.push({
|
|
1222
|
+
kind: "conductance",
|
|
1223
|
+
a: p3p,
|
|
1224
|
+
b: pgnd,
|
|
1225
|
+
siemens: 1 / law.inputShuntOhms,
|
|
1226
|
+
});
|
|
1227
|
+
stamps.push({
|
|
1228
|
+
kind: "conductance",
|
|
1229
|
+
a: p1,
|
|
1230
|
+
b: p8,
|
|
1231
|
+
siemens: 1 / rgs,
|
|
1232
|
+
});
|
|
1233
|
+
stamps.push({
|
|
1234
|
+
kind: "conductance",
|
|
1235
|
+
a: p8,
|
|
1236
|
+
b: emitterMinus,
|
|
1237
|
+
siemens: 1 / rdeg,
|
|
1238
|
+
});
|
|
1239
|
+
stamps.push({
|
|
1240
|
+
kind: "conductance",
|
|
1241
|
+
a: pout,
|
|
1242
|
+
b: p1,
|
|
1243
|
+
siemens: 1 / rfb,
|
|
1244
|
+
});
|
|
1245
|
+
stamps.push({
|
|
1246
|
+
kind: "conductance",
|
|
1247
|
+
a: pvs,
|
|
1248
|
+
b: pbyp,
|
|
1249
|
+
siemens: 1 / law.bypassUpperOhms,
|
|
1250
|
+
});
|
|
1251
|
+
stamps.push({
|
|
1252
|
+
kind: "vccs",
|
|
1253
|
+
outP: pvs,
|
|
1254
|
+
outN: p1,
|
|
1255
|
+
inP: p3p,
|
|
1256
|
+
inN: p1,
|
|
1257
|
+
transconductance: POWER_AMP_TRANSCONDUCTANCE,
|
|
1258
|
+
});
|
|
1259
|
+
stamps.push({
|
|
1260
|
+
kind: "vccs",
|
|
1261
|
+
outP: load,
|
|
1262
|
+
outN: emitterMinus,
|
|
1263
|
+
inP: p2m,
|
|
1264
|
+
inN: emitterMinus,
|
|
1265
|
+
transconductance: POWER_AMP_TRANSCONDUCTANCE,
|
|
1266
|
+
});
|
|
1267
|
+
stamps.push({
|
|
1268
|
+
kind: "conductance",
|
|
1269
|
+
a: load,
|
|
1270
|
+
b: pvs,
|
|
1271
|
+
siemens: 1 / theveninEach,
|
|
1272
|
+
});
|
|
1273
|
+
stamps.push({
|
|
1274
|
+
kind: "conductance",
|
|
1275
|
+
a: load,
|
|
1276
|
+
b: GROUND,
|
|
1277
|
+
siemens: 1 / theveninEach,
|
|
1278
|
+
});
|
|
1279
|
+
stamps.push({
|
|
1280
|
+
kind: "ideal-opamp",
|
|
1281
|
+
plus: load,
|
|
1282
|
+
minus: pout,
|
|
1283
|
+
output: pout,
|
|
1284
|
+
sourceIndex: auxCount++,
|
|
1285
|
+
railHigh: law.railHigh,
|
|
1286
|
+
railLow: law.railLow,
|
|
1287
|
+
openLoopGain: law.openLoopGain,
|
|
1288
|
+
gainBandwidthHz: law.gainBandwidthHz ?? null,
|
|
1289
|
+
});
|
|
1290
|
+
break;
|
|
1291
|
+
}
|
|
1147
1292
|
case "comparator": {
|
|
1148
1293
|
const plus = device.nodes[0];
|
|
1149
1294
|
const minus = device.nodes[1];
|