@cascode/cascode-js 0.5.2
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/README.md +98 -0
- package/binding.gyp +26 -0
- package/lib/std/Bundles.cas +6 -0
- package/lib/std/InverterLike.cas +11 -0
- package/lib/std/amp/Common.cas +16 -0
- package/lib/std/amp/FullyDifferentialOpAmp.cas +61 -0
- package/lib/std/amp/SingleEndedAmp.cas +48 -0
- package/lib/std/amp/SingleEndedOpAmp.cas +48 -0
- package/lib/std/bench/DCBiasBenches.cas +41 -0
- package/lib/std/bench/NoiseBenches.cas +167 -0
- package/lib/std/bench/PowerBenches.cas +202 -0
- package/lib/std/bench/TranBenches.cas +164 -0
- package/lib/std/bench/TransferBenches.cas +329 -0
- package/lib/std/composites/PadDriver.cas +10 -0
- package/lib/std/prim/Devices.cas +20 -0
- package/lib/std/prim/Passives.cas +23 -0
- package/lib/std/refs/ConstantGm.cas +25 -0
- package/lib/std/refs/CurrentReference.cas +7 -0
- package/lib/std/refs/ReferenceCircuit.cas +6 -0
- package/lib/std/refs/VoltageReference.cas +7 -0
- package/native/cascode_native_addon.c +788 -0
- package/native/osx-arm64/Cascode.Native.dylib +0 -0
- package/native/osx-arm64/google-ortools-native.dylib +0 -0
- package/native/osx-arm64/libortools.9.dylib +0 -0
- package/package.json +48 -0
- package/platform-packages/cascode-js-darwin-arm64/README.md +4 -0
- package/platform-packages/cascode-js-darwin-arm64/index.js +10 -0
- package/platform-packages/cascode-js-darwin-arm64/package.json +28 -0
- package/platform-packages/cascode-js-darwin-x64/README.md +4 -0
- package/platform-packages/cascode-js-darwin-x64/index.js +10 -0
- package/platform-packages/cascode-js-darwin-x64/package.json +28 -0
- package/platform-packages/cascode-js-linux-x64/README.md +4 -0
- package/platform-packages/cascode-js-linux-x64/index.js +10 -0
- package/platform-packages/cascode-js-linux-x64/package.json +28 -0
- package/platform-packages/cascode-js-win32-x64/README.md +4 -0
- package/platform-packages/cascode-js-win32-x64/index.js +10 -0
- package/platform-packages/cascode-js-win32-x64/package.json +28 -0
- package/scripts/stage-platform-package.mjs +128 -0
- package/scripts/sync-stdlib.mjs +35 -0
- package/src/index.d.ts +38 -0
- package/src/index.js +453 -0
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
library lib.std.prim
|
|
2
|
+
|
|
3
|
+
primitive NMOS Level1_NMOS(size primSize) {
|
|
4
|
+
device "level1_nmos"
|
|
5
|
+
params {
|
|
6
|
+
W = primSize.W
|
|
7
|
+
L = primSize.L
|
|
8
|
+
m = primSize.M
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
primitive PMOS Level1_PMOS(size primSize) {
|
|
13
|
+
device "level1_pmos"
|
|
14
|
+
params {
|
|
15
|
+
W = primSize.W
|
|
16
|
+
L = primSize.L
|
|
17
|
+
m = primSize.M
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
library lib.std.prim
|
|
2
|
+
|
|
3
|
+
primitive Resistor Ideal_Resistor(size primSize) {
|
|
4
|
+
device "resistor"
|
|
5
|
+
params {
|
|
6
|
+
R = primSize.R
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
primitive Capacitor Ideal_Capacitor(size primSize) {
|
|
11
|
+
device "capacitor"
|
|
12
|
+
params {
|
|
13
|
+
C = primSize.C
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
primitive Capacitor Ideal_Inductor(size primSize) {
|
|
19
|
+
device "capacitor"
|
|
20
|
+
params {
|
|
21
|
+
L = primSize.L
|
|
22
|
+
}
|
|
23
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
library lib.std.refs; import lib.std.amp.*; import lib.std.prim.*;
|
|
2
|
+
|
|
3
|
+
// Constant-gm current reference built from two mirrors and a degeneration resistor.
|
|
4
|
+
// gm = 1/RB via feedback from the selected mirror tap to the rail.
|
|
5
|
+
motif ConstantGm implements CurrentReference {
|
|
6
|
+
params { p: polarity = PMOS; RB: resistance = 10k; }
|
|
7
|
+
supply VDD=1.8V; ground GND;
|
|
8
|
+
ports [ OUT: analog ]
|
|
9
|
+
|
|
10
|
+
use {
|
|
11
|
+
// Two mirrors, chained by the within-interface connector (SENSE -> TAP[0]).
|
|
12
|
+
CurrentMirror cm_p = new CurrentMirror { p=PMOS };
|
|
13
|
+
CurrentMirror cm_n = new CurrentMirror { p=NMOS };
|
|
14
|
+
attach cm_n to cm_p;
|
|
15
|
+
|
|
16
|
+
// Degeneration resistor placement depends on polarity parameter.
|
|
17
|
+
if (p == PMOS) {
|
|
18
|
+
RB_P = R(RB) { P -> cm_p.TAP[0]; N -> VDD; };
|
|
19
|
+
connect cm_n.TAP[0] -> OUT;
|
|
20
|
+
} else {
|
|
21
|
+
RB_N = R(RB) { P -> cm_n.TAP[0]; N -> GND; };
|
|
22
|
+
connect cm_p.TAP[0] -> OUT;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|