nucleation 0.10.21 → 0.10.23
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/BlockPos.mjs +1 -0
- package/Dimensions.mjs +1 -0
- package/FieldRange.mjs +1 -0
- package/ItemScale.mjs +1 -0
- package/MeshBounds.mjs +1 -0
- package/MeshProgress.mjs +1 -0
- package/README.md +12 -0
- package/RegionBounds.mjs +1 -0
- package/Schematic.d.mts +32 -0
- package/Schematic.d.ts +32 -0
- package/Schematic.mjs +100 -0
- package/SdfBounds.mjs +1 -0
- package/SdfNormal.mjs +1 -0
- package/TextureInfo.mjs +1 -0
- package/diplomat-runtime.mjs +19 -14
- package/nucleation.wasm +0 -0
- package/package.json +7 -2
- package/renderer/AnimationEffect.d.mts +44 -0
- package/renderer/AnimationEffect.d.ts +44 -0
- package/renderer/AnimationEffect.mjs +204 -0
- package/renderer/Autostack.d.mts +43 -0
- package/renderer/Autostack.d.ts +43 -0
- package/renderer/Autostack.mjs +134 -0
- package/renderer/BlockPos.d.mts +28 -0
- package/renderer/BlockPos.d.ts +28 -0
- package/renderer/BlockPos.mjs +130 -0
- package/renderer/BlockState.d.mts +39 -0
- package/renderer/BlockState.d.ts +39 -0
- package/renderer/BlockState.mjs +134 -0
- package/renderer/Blocks.d.mts +91 -0
- package/renderer/Blocks.d.ts +91 -0
- package/renderer/Blocks.mjs +308 -0
- package/renderer/Brush.d.mts +99 -0
- package/renderer/Brush.d.ts +99 -0
- package/renderer/Brush.mjs +335 -0
- package/renderer/BuildAnimation.d.mts +179 -0
- package/renderer/BuildAnimation.d.ts +179 -0
- package/renderer/BuildAnimation.mjs +1148 -0
- package/renderer/BuildingTool.d.mts +46 -0
- package/renderer/BuildingTool.d.ts +46 -0
- package/renderer/BuildingTool.mjs +121 -0
- package/renderer/CellExecutor.d.mts +51 -0
- package/renderer/CellExecutor.d.ts +51 -0
- package/renderer/CellExecutor.mjs +171 -0
- package/renderer/CellularSdfConfig.d.mts +22 -0
- package/renderer/CellularSdfConfig.d.ts +22 -0
- package/renderer/CellularSdfConfig.mjs +69 -0
- package/renderer/ChunkMeshResult.d.mts +75 -0
- package/renderer/ChunkMeshResult.d.ts +75 -0
- package/renderer/ChunkMeshResult.mjs +253 -0
- package/renderer/CircuitBuilder.d.mts +118 -0
- package/renderer/CircuitBuilder.d.ts +118 -0
- package/renderer/CircuitBuilder.mjs +516 -0
- package/renderer/Curve3D.d.mts +27 -0
- package/renderer/Curve3D.d.ts +27 -0
- package/renderer/Curve3D.mjs +101 -0
- package/renderer/DefinitionRegion.d.mts +274 -0
- package/renderer/DefinitionRegion.d.ts +274 -0
- package/renderer/DefinitionRegion.mjs +973 -0
- package/renderer/Design.d.mts +348 -0
- package/renderer/Design.d.ts +348 -0
- package/renderer/Design.mjs +1334 -0
- package/renderer/Diff.d.mts +88 -0
- package/renderer/Diff.d.ts +88 -0
- package/renderer/Diff.mjs +316 -0
- package/renderer/Dimensions.d.mts +28 -0
- package/renderer/Dimensions.d.ts +28 -0
- package/renderer/Dimensions.mjs +130 -0
- package/renderer/DistanceField.d.mts +39 -0
- package/renderer/DistanceField.d.ts +39 -0
- package/renderer/DistanceField.mjs +114 -0
- package/renderer/ExecutionMode.d.mts +42 -0
- package/renderer/ExecutionMode.d.ts +42 -0
- package/renderer/ExecutionMode.mjs +127 -0
- package/renderer/Field3.d.mts +40 -0
- package/renderer/Field3.d.ts +40 -0
- package/renderer/Field3.mjs +160 -0
- package/renderer/FieldProgram.d.mts +40 -0
- package/renderer/FieldProgram.d.ts +40 -0
- package/renderer/FieldProgram.mjs +167 -0
- package/renderer/FieldProgramBinaryOp.d.mts +42 -0
- package/renderer/FieldProgramBinaryOp.d.ts +42 -0
- package/renderer/FieldProgramBinaryOp.mjs +118 -0
- package/renderer/FieldProgramBuilder.d.mts +104 -0
- package/renderer/FieldProgramBuilder.d.ts +104 -0
- package/renderer/FieldProgramBuilder.mjs +486 -0
- package/renderer/FieldProgramDistanceKind.d.mts +26 -0
- package/renderer/FieldProgramDistanceKind.d.ts +26 -0
- package/renderer/FieldProgramDistanceKind.mjs +78 -0
- package/renderer/FieldProgramUnaryOp.d.mts +34 -0
- package/renderer/FieldProgramUnaryOp.d.ts +34 -0
- package/renderer/FieldProgramUnaryOp.mjs +102 -0
- package/renderer/FieldProgramValueType.d.mts +25 -0
- package/renderer/FieldProgramValueType.d.ts +25 -0
- package/renderer/FieldProgramValueType.mjs +75 -0
- package/renderer/FieldRange.d.mts +15 -0
- package/renderer/FieldRange.d.ts +15 -0
- package/renderer/FieldRange.mjs +109 -0
- package/renderer/Fingerprint.d.mts +44 -0
- package/renderer/Fingerprint.d.ts +44 -0
- package/renderer/Fingerprint.mjs +197 -0
- package/renderer/GeneratedChunk.d.mts +35 -0
- package/renderer/GeneratedChunk.d.ts +35 -0
- package/renderer/GeneratedChunk.mjs +178 -0
- package/renderer/GeneratedChunkCoverage.d.mts +25 -0
- package/renderer/GeneratedChunkCoverage.d.ts +25 -0
- package/renderer/GeneratedChunkCoverage.mjs +75 -0
- package/renderer/GeneratedChunkOverlayMode.d.mts +24 -0
- package/renderer/GeneratedChunkOverlayMode.d.ts +24 -0
- package/renderer/GeneratedChunkOverlayMode.mjs +72 -0
- package/renderer/GeneratedWorldStream.d.mts +28 -0
- package/renderer/GeneratedWorldStream.d.ts +28 -0
- package/renderer/GeneratedWorldStream.mjs +86 -0
- package/renderer/Geo.d.mts +41 -0
- package/renderer/Geo.d.ts +41 -0
- package/renderer/Geo.mjs +121 -0
- package/renderer/Hdl.d.mts +56 -0
- package/renderer/Hdl.d.ts +56 -0
- package/renderer/Hdl.mjs +163 -0
- package/renderer/InterpolationSpace.d.mts +25 -0
- package/renderer/InterpolationSpace.d.ts +25 -0
- package/renderer/InterpolationSpace.mjs +73 -0
- package/renderer/IoLayout.d.mts +26 -0
- package/renderer/IoLayout.d.ts +26 -0
- package/renderer/IoLayout.mjs +81 -0
- package/renderer/IoLayoutBuilder.d.mts +73 -0
- package/renderer/IoLayoutBuilder.d.ts +73 -0
- package/renderer/IoLayoutBuilder.mjs +315 -0
- package/renderer/IoType.d.mts +41 -0
- package/renderer/IoType.d.ts +41 -0
- package/renderer/IoType.mjs +125 -0
- package/renderer/ItemModelConfig.d.mts +65 -0
- package/renderer/ItemModelConfig.d.ts +65 -0
- package/renderer/ItemModelConfig.mjs +223 -0
- package/renderer/ItemModelPackBuilder.d.mts +32 -0
- package/renderer/ItemModelPackBuilder.d.ts +32 -0
- package/renderer/ItemModelPackBuilder.mjs +104 -0
- package/renderer/ItemModelResult.d.mts +72 -0
- package/renderer/ItemModelResult.d.ts +72 -0
- package/renderer/ItemModelResult.mjs +268 -0
- package/renderer/ItemScale.d.mts +31 -0
- package/renderer/ItemScale.d.ts +31 -0
- package/renderer/ItemScale.mjs +133 -0
- package/renderer/LayoutFunction.d.mts +52 -0
- package/renderer/LayoutFunction.d.ts +52 -0
- package/renderer/LayoutFunction.mjs +159 -0
- package/renderer/MchprsWorld.d.mts +131 -0
- package/renderer/MchprsWorld.d.ts +131 -0
- package/renderer/MchprsWorld.mjs +423 -0
- package/renderer/MeshBounds.d.mts +40 -0
- package/renderer/MeshBounds.d.ts +40 -0
- package/renderer/MeshBounds.mjs +181 -0
- package/renderer/MeshConfig.d.mts +101 -0
- package/renderer/MeshConfig.d.ts +101 -0
- package/renderer/MeshConfig.mjs +306 -0
- package/renderer/MeshJob.d.mts +44 -0
- package/renderer/MeshJob.d.ts +44 -0
- package/renderer/MeshJob.mjs +116 -0
- package/renderer/MeshPhase.d.mts +38 -0
- package/renderer/MeshPhase.d.ts +38 -0
- package/renderer/MeshPhase.mjs +90 -0
- package/renderer/MeshProgress.d.mts +32 -0
- package/renderer/MeshProgress.d.ts +32 -0
- package/renderer/MeshProgress.mjs +134 -0
- package/renderer/MeshResult.d.mts +76 -0
- package/renderer/MeshResult.d.ts +76 -0
- package/renderer/MeshResult.mjs +269 -0
- package/renderer/MultiMeshResult.d.mts +50 -0
- package/renderer/MultiMeshResult.d.ts +50 -0
- package/renderer/MultiMeshResult.mjs +166 -0
- package/renderer/Nbt.d.mts +50 -0
- package/renderer/Nbt.d.ts +50 -0
- package/renderer/Nbt.mjs +161 -0
- package/renderer/NucleationError.d.mts +53 -0
- package/renderer/NucleationError.d.ts +53 -0
- package/renderer/NucleationError.mjs +136 -0
- package/renderer/OutputCondition.d.mts +45 -0
- package/renderer/OutputCondition.d.ts +45 -0
- package/renderer/OutputCondition.mjs +129 -0
- package/renderer/Palette.d.mts +157 -0
- package/renderer/Palette.d.ts +157 -0
- package/renderer/Palette.mjs +487 -0
- package/renderer/PaletteBuilder.d.mts +119 -0
- package/renderer/PaletteBuilder.d.ts +119 -0
- package/renderer/PaletteBuilder.mjs +457 -0
- package/renderer/README.md +67 -0
- package/renderer/RawMeshExport.d.mts +74 -0
- package/renderer/RawMeshExport.d.ts +74 -0
- package/renderer/RawMeshExport.mjs +243 -0
- package/renderer/RedstoneGraph.d.mts +58 -0
- package/renderer/RedstoneGraph.d.ts +58 -0
- package/renderer/RedstoneGraph.mjs +242 -0
- package/renderer/RegionBounds.d.mts +41 -0
- package/renderer/RegionBounds.d.ts +41 -0
- package/renderer/RegionBounds.mjs +182 -0
- package/renderer/RenderConfig.d.mts +101 -0
- package/renderer/RenderConfig.d.ts +101 -0
- package/renderer/RenderConfig.mjs +271 -0
- package/renderer/Renderer.d.mts +51 -0
- package/renderer/Renderer.d.ts +51 -0
- package/renderer/Renderer.mjs +219 -0
- package/renderer/ResourcePack.d.mts +105 -0
- package/renderer/ResourcePack.d.ts +105 -0
- package/renderer/ResourcePack.mjs +447 -0
- package/renderer/ResourcePackList.d.mts +32 -0
- package/renderer/ResourcePackList.d.ts +32 -0
- package/renderer/ResourcePackList.mjs +96 -0
- package/renderer/Routing.d.mts +66 -0
- package/renderer/Routing.d.ts +66 -0
- package/renderer/Routing.mjs +220 -0
- package/renderer/Schematic.d.mts +977 -0
- package/renderer/Schematic.d.ts +977 -0
- package/renderer/Schematic.mjs +3820 -0
- package/renderer/SchematicBuilder.d.mts +103 -0
- package/renderer/SchematicBuilder.d.ts +103 -0
- package/renderer/SchematicBuilder.mjs +401 -0
- package/renderer/SchematicRegions.d.mts +93 -0
- package/renderer/SchematicRegions.d.ts +93 -0
- package/renderer/SchematicRegions.mjs +411 -0
- package/renderer/SchematicSplitResult.d.mts +26 -0
- package/renderer/SchematicSplitResult.d.ts +26 -0
- package/renderer/SchematicSplitResult.mjs +84 -0
- package/renderer/Scripting.d.mts +40 -0
- package/renderer/Scripting.d.ts +40 -0
- package/renderer/Scripting.mjs +138 -0
- package/renderer/Sdf.d.mts +234 -0
- package/renderer/Sdf.d.ts +234 -0
- package/renderer/Sdf.mjs +1234 -0
- package/renderer/SdfAxis.d.mts +25 -0
- package/renderer/SdfAxis.d.ts +25 -0
- package/renderer/SdfAxis.mjs +75 -0
- package/renderer/SdfBounds.d.mts +19 -0
- package/renderer/SdfBounds.d.ts +19 -0
- package/renderer/SdfBounds.mjs +161 -0
- package/renderer/SdfCellMode.d.mts +26 -0
- package/renderer/SdfCellMode.d.ts +26 -0
- package/renderer/SdfCellMode.mjs +78 -0
- package/renderer/SdfNormal.d.mts +16 -0
- package/renderer/SdfNormal.d.ts +16 -0
- package/renderer/SdfNormal.mjs +122 -0
- package/renderer/Shape.d.mts +143 -0
- package/renderer/Shape.d.ts +143 -0
- package/renderer/Shape.mjs +458 -0
- package/renderer/SortStrategy.d.mts +86 -0
- package/renderer/SortStrategy.d.ts +86 -0
- package/renderer/SortStrategy.mjs +272 -0
- package/renderer/Store.d.mts +83 -0
- package/renderer/Store.d.ts +83 -0
- package/renderer/Store.mjs +369 -0
- package/renderer/StoreIo.d.mts +71 -0
- package/renderer/StoreIo.d.ts +71 -0
- package/renderer/StoreIo.mjs +292 -0
- package/renderer/TextureAtlas.d.mts +40 -0
- package/renderer/TextureAtlas.d.ts +40 -0
- package/renderer/TextureAtlas.mjs +122 -0
- package/renderer/TextureInfo.d.mts +34 -0
- package/renderer/TextureInfo.d.ts +34 -0
- package/renderer/TextureInfo.mjs +149 -0
- package/renderer/TickSettleMode.d.mts +34 -0
- package/renderer/TickSettleMode.d.ts +34 -0
- package/renderer/TickSettleMode.mjs +84 -0
- package/renderer/TickSimulation.d.mts +572 -0
- package/renderer/TickSimulation.d.ts +572 -0
- package/renderer/TickSimulation.mjs +1299 -0
- package/renderer/TypedCircuitExecutor.d.mts +101 -0
- package/renderer/TypedCircuitExecutor.d.ts +101 -0
- package/renderer/TypedCircuitExecutor.mjs +378 -0
- package/renderer/Value.d.mts +73 -0
- package/renderer/Value.d.ts +73 -0
- package/renderer/Value.mjs +275 -0
- package/renderer/VideoConfig.d.mts +15 -0
- package/renderer/VideoConfig.d.ts +15 -0
- package/renderer/VideoConfig.mjs +44 -0
- package/renderer/VoxelModel.d.mts +34 -0
- package/renderer/VoxelModel.d.ts +34 -0
- package/renderer/VoxelModel.mjs +113 -0
- package/renderer/Voxelizer.d.mts +80 -0
- package/renderer/Voxelizer.d.ts +80 -0
- package/renderer/Voxelizer.mjs +261 -0
- package/renderer/WorldChunkView.d.mts +75 -0
- package/renderer/WorldChunkView.d.ts +75 -0
- package/renderer/WorldChunkView.mjs +224 -0
- package/renderer/WorldGenerator.d.mts +75 -0
- package/renderer/WorldGenerator.d.ts +75 -0
- package/renderer/WorldGenerator.mjs +255 -0
- package/renderer/WorldSink.d.mts +50 -0
- package/renderer/WorldSink.d.ts +50 -0
- package/renderer/WorldSink.mjs +177 -0
- package/renderer/WorldStream.d.mts +45 -0
- package/renderer/WorldStream.d.ts +45 -0
- package/renderer/WorldStream.mjs +184 -0
- package/renderer/WsPartitionHints.d.mts +29 -0
- package/renderer/WsPartitionHints.d.ts +29 -0
- package/renderer/WsPartitionHints.mjs +102 -0
- package/renderer/WsProfile.d.mts +46 -0
- package/renderer/WsProfile.d.ts +46 -0
- package/renderer/WsProfile.mjs +152 -0
- package/renderer/WsRunResult.d.mts +83 -0
- package/renderer/WsRunResult.d.ts +83 -0
- package/renderer/WsRunResult.mjs +326 -0
- package/renderer/WsSegmentJob.d.mts +28 -0
- package/renderer/WsSegmentJob.d.ts +28 -0
- package/renderer/WsSegmentJob.mjs +81 -0
- package/renderer/diplomat-runtime.d.mts +15 -0
- package/renderer/diplomat-runtime.d.ts +15 -0
- package/renderer/diplomat-runtime.mjs +779 -0
- package/renderer/diplomat-wasm.mjs +52 -0
- package/renderer/diplomat.config.mjs +5 -0
- package/renderer/index.d.mts +193 -0
- package/renderer/index.d.ts +193 -0
- package/renderer/index.mjs +196 -0
- package/renderer/nucleation.wasm +0 -0
- package/renderer/veneer/design.d.ts +167 -0
- package/renderer/veneer/design.mjs +480 -0
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
// generated by diplomat-tool
|
|
2
|
+
import type { NucleationError } from "./NucleationError.mjs"
|
|
3
|
+
import type { Schematic } from "./Schematic.mjs"
|
|
4
|
+
import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Namespacing opaque for routing entry points (static methods taking
|
|
10
|
+
* `&Schematic` explicitly, like `Autostack`).
|
|
11
|
+
*/
|
|
12
|
+
export class Routing {
|
|
13
|
+
/** @internal */
|
|
14
|
+
get ffiValue(): pointer;
|
|
15
|
+
/** @internal */
|
|
16
|
+
constructor();
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Route one net from `(sx, sy, sz)` to `(dx, dy, dz)` with default
|
|
21
|
+
* rules (torch-ladder vias, stair cap 4, refresh 5) and write the
|
|
22
|
+
* emitted geometry into the schematic. Writes the routed path as a
|
|
23
|
+
* JSON array of `[x, y, z]` cells.
|
|
24
|
+
*/
|
|
25
|
+
static routeNet(schematic: Schematic, sx: number, sy: number, sz: number, dx: number, dy: number, dz: number, label: string): string;
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Route every net in `nets_json` with negotiated congestion
|
|
29
|
+
* (pnr-core PathFinder) in one labelled workspace, write the
|
|
30
|
+
* geometry into the schematic, and write the JSON report
|
|
31
|
+
* (`routes` with per-net `path`/`delay_rt`, `notes`,
|
|
32
|
+
* `violations`). Supports per-net-class rule overrides
|
|
33
|
+
* (`classes`: io_contract `NetClassRule`s, with `region`
|
|
34
|
+
* resolving named route zones tagged on the schematic's
|
|
35
|
+
* DefinitionRegions), plus `bounds`, `budget` and `congestion`
|
|
36
|
+
* options — see `crate::routing::route_all_schematic` for the
|
|
37
|
+
* exact request shape.
|
|
38
|
+
*/
|
|
39
|
+
static routeAll(schematic: Schematic, netsJson: string): string;
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* LVS v1: compare an intended netlist (`{"nets": [{"name",
|
|
43
|
+
* "terminals": [[x,y,z], ...]}]}`) against the conduction
|
|
44
|
+
* netlist extracted statically from the schematic (dust
|
|
45
|
+
* adjacency incl. cut diagonals plus repeater/comparator/torch
|
|
46
|
+
* through-component edges). Writes `{"clean", "matched",
|
|
47
|
+
* "opens", "shorts", "cycles"}`.
|
|
48
|
+
*/
|
|
49
|
+
static lvs(schematic: Schematic, intentJson: string): string;
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* Run design-rule checks (support audit, repeater-cycle detection,
|
|
53
|
+
* optional decay) over the schematic. Writes a JSON array; each
|
|
54
|
+
* element has `kind` plus violation-specific fields. Label-aware
|
|
55
|
+
* short checking needs a labelled workspace and stays native.
|
|
56
|
+
*/
|
|
57
|
+
static drc(schematic: Schematic, checkDecay: boolean): string;
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Static timing over the schematic plus a gate netlist given as
|
|
61
|
+
* JSON: `{"inputs": ["a", ...], "gates": [{"out": "y",
|
|
62
|
+
* "ins": ["a", "b"], "delay_rt": 2}, ...]}`. Writes
|
|
63
|
+
* `{"arrival_rt": {sig: rt}, "critical": [sig, ...]}`.
|
|
64
|
+
*/
|
|
65
|
+
static sta(schematic: Schematic, netlistJson: string): string;
|
|
66
|
+
}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
// generated by diplomat-tool
|
|
2
|
+
import type { NucleationError } from "./NucleationError.mjs"
|
|
3
|
+
import type { Schematic } from "./Schematic.mjs"
|
|
4
|
+
import type { pointer, codepoint } from "./diplomat-runtime.d.ts";
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Namespacing opaque for routing entry points (static methods taking
|
|
10
|
+
* `&Schematic` explicitly, like `Autostack`).
|
|
11
|
+
*/
|
|
12
|
+
export class Routing {
|
|
13
|
+
/** @internal */
|
|
14
|
+
get ffiValue(): pointer;
|
|
15
|
+
/** @internal */
|
|
16
|
+
constructor();
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Route one net from `(sx, sy, sz)` to `(dx, dy, dz)` with default
|
|
21
|
+
* rules (torch-ladder vias, stair cap 4, refresh 5) and write the
|
|
22
|
+
* emitted geometry into the schematic. Writes the routed path as a
|
|
23
|
+
* JSON array of `[x, y, z]` cells.
|
|
24
|
+
*/
|
|
25
|
+
static routeNet(schematic: Schematic, sx: number, sy: number, sz: number, dx: number, dy: number, dz: number, label: string): string;
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Route every net in `nets_json` with negotiated congestion
|
|
29
|
+
* (pnr-core PathFinder) in one labelled workspace, write the
|
|
30
|
+
* geometry into the schematic, and write the JSON report
|
|
31
|
+
* (`routes` with per-net `path`/`delay_rt`, `notes`,
|
|
32
|
+
* `violations`). Supports per-net-class rule overrides
|
|
33
|
+
* (`classes`: io_contract `NetClassRule`s, with `region`
|
|
34
|
+
* resolving named route zones tagged on the schematic's
|
|
35
|
+
* DefinitionRegions), plus `bounds`, `budget` and `congestion`
|
|
36
|
+
* options — see `crate::routing::route_all_schematic` for the
|
|
37
|
+
* exact request shape.
|
|
38
|
+
*/
|
|
39
|
+
static routeAll(schematic: Schematic, netsJson: string): string;
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* LVS v1: compare an intended netlist (`{"nets": [{"name",
|
|
43
|
+
* "terminals": [[x,y,z], ...]}]}`) against the conduction
|
|
44
|
+
* netlist extracted statically from the schematic (dust
|
|
45
|
+
* adjacency incl. cut diagonals plus repeater/comparator/torch
|
|
46
|
+
* through-component edges). Writes `{"clean", "matched",
|
|
47
|
+
* "opens", "shorts", "cycles"}`.
|
|
48
|
+
*/
|
|
49
|
+
static lvs(schematic: Schematic, intentJson: string): string;
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* Run design-rule checks (support audit, repeater-cycle detection,
|
|
53
|
+
* optional decay) over the schematic. Writes a JSON array; each
|
|
54
|
+
* element has `kind` plus violation-specific fields. Label-aware
|
|
55
|
+
* short checking needs a labelled workspace and stays native.
|
|
56
|
+
*/
|
|
57
|
+
static drc(schematic: Schematic, checkDecay: boolean): string;
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Static timing over the schematic plus a gate netlist given as
|
|
61
|
+
* JSON: `{"inputs": ["a", ...], "gates": [{"out": "y",
|
|
62
|
+
* "ins": ["a", "b"], "delay_rt": 2}, ...]}`. Writes
|
|
63
|
+
* `{"arrival_rt": {sig: rt}, "critical": [sig, ...]}`.
|
|
64
|
+
*/
|
|
65
|
+
static sta(schematic: Schematic, netlistJson: string): string;
|
|
66
|
+
}
|
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
// generated by diplomat-tool
|
|
2
|
+
import { NucleationError } from "./NucleationError.mjs"
|
|
3
|
+
import { Schematic } from "./Schematic.mjs"
|
|
4
|
+
import wasm from "./diplomat-wasm.mjs";
|
|
5
|
+
import * as diplomatRuntime from "./diplomat-runtime.mjs";
|
|
6
|
+
|
|
7
|
+
const Routing_box_destroy_registry = new FinalizationRegistry((ptr) => {
|
|
8
|
+
wasm.Routing_destroy(ptr);
|
|
9
|
+
});
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Namespacing opaque for routing entry points (static methods taking
|
|
13
|
+
* `&Schematic` explicitly, like `Autostack`).
|
|
14
|
+
*/
|
|
15
|
+
export class Routing {
|
|
16
|
+
// Internal ptr reference:
|
|
17
|
+
#ptr = null;
|
|
18
|
+
|
|
19
|
+
// Lifetimes are only to keep dependencies alive.
|
|
20
|
+
// Since JS won't garbage collect until there are no incoming edges.
|
|
21
|
+
#selfEdge = [];
|
|
22
|
+
|
|
23
|
+
#internalConstructor(symbol, ptr, selfEdge) {
|
|
24
|
+
if (symbol !== diplomatRuntime.internalConstructor) {
|
|
25
|
+
console.error("Routing is an Opaque type. You cannot call its constructor.");
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
this.#ptr = ptr;
|
|
29
|
+
this.#selfEdge = selfEdge;
|
|
30
|
+
|
|
31
|
+
// Are we being borrowed? If not, we can register.
|
|
32
|
+
if (this.#selfEdge.length === 0) {
|
|
33
|
+
Routing_box_destroy_registry.register(this, this.#ptr);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
return this;
|
|
37
|
+
}
|
|
38
|
+
/** @internal */
|
|
39
|
+
get ffiValue() {
|
|
40
|
+
return this.#ptr;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Route one net from `(sx, sy, sz)` to `(dx, dy, dz)` with default
|
|
46
|
+
* rules (torch-ladder vias, stair cap 4, refresh 5) and write the
|
|
47
|
+
* emitted geometry into the schematic. Writes the routed path as a
|
|
48
|
+
* JSON array of `[x, y, z]` cells.
|
|
49
|
+
*/
|
|
50
|
+
static routeNet(schematic, sx, sy, sz, dx, dy, dz, label) {
|
|
51
|
+
let functionCleanupArena = new diplomatRuntime.CleanupArena();
|
|
52
|
+
|
|
53
|
+
const labelSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.sliceWrapper(wasm, diplomatRuntime.DiplomatBuf.str8(wasm, label)));
|
|
54
|
+
const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
|
|
55
|
+
|
|
56
|
+
const write = new diplomatRuntime.DiplomatWriteBuf(wasm);
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
const result = wasm.Routing_route_net(diplomatReceive.buffer, schematic.ffiValue, sx, sy, sz, dx, dy, dz, labelSlice.ptr, write.buffer);
|
|
60
|
+
|
|
61
|
+
try {
|
|
62
|
+
if (!diplomatReceive.resultFlag) {
|
|
63
|
+
const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
|
|
64
|
+
throw new globalThis.Error('NucleationError.' + cause.value, { cause });
|
|
65
|
+
}
|
|
66
|
+
return write.readString8();
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
finally {
|
|
70
|
+
diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
|
|
71
|
+
functionCleanupArena.free();
|
|
72
|
+
|
|
73
|
+
diplomatReceive.free();
|
|
74
|
+
write.free();
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* Route every net in `nets_json` with negotiated congestion
|
|
80
|
+
* (pnr-core PathFinder) in one labelled workspace, write the
|
|
81
|
+
* geometry into the schematic, and write the JSON report
|
|
82
|
+
* (`routes` with per-net `path`/`delay_rt`, `notes`,
|
|
83
|
+
* `violations`). Supports per-net-class rule overrides
|
|
84
|
+
* (`classes`: io_contract `NetClassRule`s, with `region`
|
|
85
|
+
* resolving named route zones tagged on the schematic's
|
|
86
|
+
* DefinitionRegions), plus `bounds`, `budget` and `congestion`
|
|
87
|
+
* options — see `crate::routing::route_all_schematic` for the
|
|
88
|
+
* exact request shape.
|
|
89
|
+
*/
|
|
90
|
+
static routeAll(schematic, netsJson) {
|
|
91
|
+
let functionCleanupArena = new diplomatRuntime.CleanupArena();
|
|
92
|
+
|
|
93
|
+
const netsJsonSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.sliceWrapper(wasm, diplomatRuntime.DiplomatBuf.str8(wasm, netsJson)));
|
|
94
|
+
const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
|
|
95
|
+
|
|
96
|
+
const write = new diplomatRuntime.DiplomatWriteBuf(wasm);
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
const result = wasm.Routing_route_all(diplomatReceive.buffer, schematic.ffiValue, netsJsonSlice.ptr, write.buffer);
|
|
100
|
+
|
|
101
|
+
try {
|
|
102
|
+
if (!diplomatReceive.resultFlag) {
|
|
103
|
+
const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
|
|
104
|
+
throw new globalThis.Error('NucleationError.' + cause.value, { cause });
|
|
105
|
+
}
|
|
106
|
+
return write.readString8();
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
finally {
|
|
110
|
+
diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
|
|
111
|
+
functionCleanupArena.free();
|
|
112
|
+
|
|
113
|
+
diplomatReceive.free();
|
|
114
|
+
write.free();
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
/**
|
|
119
|
+
* LVS v1: compare an intended netlist (`{"nets": [{"name",
|
|
120
|
+
* "terminals": [[x,y,z], ...]}]}`) against the conduction
|
|
121
|
+
* netlist extracted statically from the schematic (dust
|
|
122
|
+
* adjacency incl. cut diagonals plus repeater/comparator/torch
|
|
123
|
+
* through-component edges). Writes `{"clean", "matched",
|
|
124
|
+
* "opens", "shorts", "cycles"}`.
|
|
125
|
+
*/
|
|
126
|
+
static lvs(schematic, intentJson) {
|
|
127
|
+
let functionCleanupArena = new diplomatRuntime.CleanupArena();
|
|
128
|
+
|
|
129
|
+
const intentJsonSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.sliceWrapper(wasm, diplomatRuntime.DiplomatBuf.str8(wasm, intentJson)));
|
|
130
|
+
const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
|
|
131
|
+
|
|
132
|
+
const write = new diplomatRuntime.DiplomatWriteBuf(wasm);
|
|
133
|
+
|
|
134
|
+
|
|
135
|
+
const result = wasm.Routing_lvs(diplomatReceive.buffer, schematic.ffiValue, intentJsonSlice.ptr, write.buffer);
|
|
136
|
+
|
|
137
|
+
try {
|
|
138
|
+
if (!diplomatReceive.resultFlag) {
|
|
139
|
+
const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
|
|
140
|
+
throw new globalThis.Error('NucleationError.' + cause.value, { cause });
|
|
141
|
+
}
|
|
142
|
+
return write.readString8();
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
finally {
|
|
146
|
+
diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
|
|
147
|
+
functionCleanupArena.free();
|
|
148
|
+
|
|
149
|
+
diplomatReceive.free();
|
|
150
|
+
write.free();
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
/**
|
|
155
|
+
* Run design-rule checks (support audit, repeater-cycle detection,
|
|
156
|
+
* optional decay) over the schematic. Writes a JSON array; each
|
|
157
|
+
* element has `kind` plus violation-specific fields. Label-aware
|
|
158
|
+
* short checking needs a labelled workspace and stays native.
|
|
159
|
+
*/
|
|
160
|
+
static drc(schematic, checkDecay) {
|
|
161
|
+
const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
|
|
162
|
+
|
|
163
|
+
const write = new diplomatRuntime.DiplomatWriteBuf(wasm);
|
|
164
|
+
|
|
165
|
+
|
|
166
|
+
const result = wasm.Routing_drc(diplomatReceive.buffer, schematic.ffiValue, checkDecay, write.buffer);
|
|
167
|
+
|
|
168
|
+
try {
|
|
169
|
+
if (!diplomatReceive.resultFlag) {
|
|
170
|
+
const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
|
|
171
|
+
throw new globalThis.Error('NucleationError.' + cause.value, { cause });
|
|
172
|
+
}
|
|
173
|
+
return write.readString8();
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
finally {
|
|
177
|
+
diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
|
|
178
|
+
diplomatReceive.free();
|
|
179
|
+
write.free();
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
/**
|
|
184
|
+
* Static timing over the schematic plus a gate netlist given as
|
|
185
|
+
* JSON: `{"inputs": ["a", ...], "gates": [{"out": "y",
|
|
186
|
+
* "ins": ["a", "b"], "delay_rt": 2}, ...]}`. Writes
|
|
187
|
+
* `{"arrival_rt": {sig: rt}, "critical": [sig, ...]}`.
|
|
188
|
+
*/
|
|
189
|
+
static sta(schematic, netlistJson) {
|
|
190
|
+
let functionCleanupArena = new diplomatRuntime.CleanupArena();
|
|
191
|
+
|
|
192
|
+
const netlistJsonSlice = functionCleanupArena.alloc(diplomatRuntime.DiplomatBuf.sliceWrapper(wasm, diplomatRuntime.DiplomatBuf.str8(wasm, netlistJson)));
|
|
193
|
+
const diplomatReceive = new diplomatRuntime.DiplomatReceiveBuf(wasm, 5, 4, true);
|
|
194
|
+
|
|
195
|
+
const write = new diplomatRuntime.DiplomatWriteBuf(wasm);
|
|
196
|
+
|
|
197
|
+
|
|
198
|
+
const result = wasm.Routing_sta(diplomatReceive.buffer, schematic.ffiValue, netlistJsonSlice.ptr, write.buffer);
|
|
199
|
+
|
|
200
|
+
try {
|
|
201
|
+
if (!diplomatReceive.resultFlag) {
|
|
202
|
+
const cause = new NucleationError(diplomatRuntime.internalConstructor, diplomatRuntime.enumDiscriminant(wasm, diplomatReceive.buffer));
|
|
203
|
+
throw new globalThis.Error('NucleationError.' + cause.value, { cause });
|
|
204
|
+
}
|
|
205
|
+
return write.readString8();
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
finally {
|
|
209
|
+
diplomatRuntime.FUNCTION_PARAM_ALLOC.clean();
|
|
210
|
+
functionCleanupArena.free();
|
|
211
|
+
|
|
212
|
+
diplomatReceive.free();
|
|
213
|
+
write.free();
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
constructor(symbol, ptr, selfEdge) {
|
|
218
|
+
return this.#internalConstructor(...arguments)
|
|
219
|
+
}
|
|
220
|
+
}
|