@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.
Files changed (41) hide show
  1. package/README.md +98 -0
  2. package/binding.gyp +26 -0
  3. package/lib/std/Bundles.cas +6 -0
  4. package/lib/std/InverterLike.cas +11 -0
  5. package/lib/std/amp/Common.cas +16 -0
  6. package/lib/std/amp/FullyDifferentialOpAmp.cas +61 -0
  7. package/lib/std/amp/SingleEndedAmp.cas +48 -0
  8. package/lib/std/amp/SingleEndedOpAmp.cas +48 -0
  9. package/lib/std/bench/DCBiasBenches.cas +41 -0
  10. package/lib/std/bench/NoiseBenches.cas +167 -0
  11. package/lib/std/bench/PowerBenches.cas +202 -0
  12. package/lib/std/bench/TranBenches.cas +164 -0
  13. package/lib/std/bench/TransferBenches.cas +329 -0
  14. package/lib/std/composites/PadDriver.cas +10 -0
  15. package/lib/std/prim/Devices.cas +20 -0
  16. package/lib/std/prim/Passives.cas +23 -0
  17. package/lib/std/refs/ConstantGm.cas +25 -0
  18. package/lib/std/refs/CurrentReference.cas +7 -0
  19. package/lib/std/refs/ReferenceCircuit.cas +6 -0
  20. package/lib/std/refs/VoltageReference.cas +7 -0
  21. package/native/cascode_native_addon.c +788 -0
  22. package/native/osx-arm64/Cascode.Native.dylib +0 -0
  23. package/native/osx-arm64/google-ortools-native.dylib +0 -0
  24. package/native/osx-arm64/libortools.9.dylib +0 -0
  25. package/package.json +48 -0
  26. package/platform-packages/cascode-js-darwin-arm64/README.md +4 -0
  27. package/platform-packages/cascode-js-darwin-arm64/index.js +10 -0
  28. package/platform-packages/cascode-js-darwin-arm64/package.json +28 -0
  29. package/platform-packages/cascode-js-darwin-x64/README.md +4 -0
  30. package/platform-packages/cascode-js-darwin-x64/index.js +10 -0
  31. package/platform-packages/cascode-js-darwin-x64/package.json +28 -0
  32. package/platform-packages/cascode-js-linux-x64/README.md +4 -0
  33. package/platform-packages/cascode-js-linux-x64/index.js +10 -0
  34. package/platform-packages/cascode-js-linux-x64/package.json +28 -0
  35. package/platform-packages/cascode-js-win32-x64/README.md +4 -0
  36. package/platform-packages/cascode-js-win32-x64/index.js +10 -0
  37. package/platform-packages/cascode-js-win32-x64/package.json +28 -0
  38. package/scripts/stage-platform-package.mjs +128 -0
  39. package/scripts/sync-stdlib.mjs +35 -0
  40. package/src/index.d.ts +38 -0
  41. 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
+ }
@@ -0,0 +1,7 @@
1
+ library lib.std.refs;
2
+
3
+ // Interface for current references.
4
+ interface CurrentReference extend ReferenceCircuit {
5
+ ports [ OUT: analog ]
6
+ supply VDD; ground GND;
7
+ }
@@ -0,0 +1,6 @@
1
+ library lib.std.refs;
2
+
3
+ // Spec-only interface for reference circuits (voltage or current).
4
+ interface ReferenceCircuit {
5
+ metrics { Accuracy; Tempco; Noise; PSRR; }
6
+ }
@@ -0,0 +1,7 @@
1
+ library lib.std.refs;
2
+
3
+ // Interface for voltage references.
4
+ interface VoltageReference extend ReferenceCircuit {
5
+ ports [ OUT: analog ]
6
+ supply VDD; ground GND;
7
+ }