@celox-sim/celox 0.1.4 → 0.1.6
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/dut.d.ts +13 -6
- package/dist/dut.d.ts.map +1 -1
- package/dist/dut.js +79 -6
- package/dist/dut.js.map +1 -1
- package/dist/index.d.ts +5 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/napi-helpers.d.ts +62 -1
- package/dist/napi-helpers.d.ts.map +1 -1
- package/dist/napi-helpers.js +154 -19
- package/dist/napi-helpers.js.map +1 -1
- package/dist/simulation.d.ts +59 -3
- package/dist/simulation.d.ts.map +1 -1
- package/dist/simulation.js +162 -16
- package/dist/simulation.js.map +1 -1
- package/dist/simulator.d.ts +7 -1
- package/dist/simulator.d.ts.map +1 -1
- package/dist/simulator.js +31 -13
- package/dist/simulator.js.map +1 -1
- package/dist/types.d.ts +34 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +16 -0
- package/dist/types.js.map +1 -1
- package/package.json +2 -2
- package/src/dut.ts +93 -5
- package/src/e2e.bench.ts +164 -1
- package/src/e2e.test.ts +432 -30
- package/src/index.ts +10 -2
- package/src/napi-helpers.ts +224 -22
- package/src/simulation.test.ts +213 -5
- package/src/simulation.ts +198 -13
- package/src/simulator.ts +38 -10
- package/src/types.ts +51 -0
package/dist/dut.d.ts
CHANGED
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
* accessors are fully visible to V8 inline caches.
|
|
8
8
|
*/
|
|
9
9
|
import type { NativeHandle, PortInfo, SignalLayout } from "./types.js";
|
|
10
|
+
import type { HierarchyNode } from "./napi-helpers.js";
|
|
10
11
|
/**
|
|
11
12
|
* Mutable state shared between the DUT accessor and its owning
|
|
12
13
|
* Simulator/Simulation instance. The Simulator clears `dirty` after
|
|
@@ -20,13 +21,19 @@ export interface DirtyState {
|
|
|
20
21
|
/**
|
|
21
22
|
* Create a DUT accessor object with defineProperty-based getters/setters.
|
|
22
23
|
*
|
|
23
|
-
* @param buffer
|
|
24
|
-
* @param layout
|
|
25
|
-
* @param portDefs
|
|
26
|
-
* @param handle
|
|
27
|
-
* @param state
|
|
24
|
+
* @param buffer SharedArrayBuffer from NAPI create()
|
|
25
|
+
* @param layout Per-signal byte layout within the buffer
|
|
26
|
+
* @param portDefs Port metadata from the ModuleDefinition
|
|
27
|
+
* @param handle Native handle (for evalComb calls)
|
|
28
|
+
* @param state Shared dirty-tracking state
|
|
29
|
+
* @param hierarchy Optional hierarchy node for child instance access
|
|
28
30
|
*/
|
|
29
|
-
export declare function createDut<P>(buffer: ArrayBuffer | SharedArrayBuffer, layout: Record<string, SignalLayout>, portDefs: Record<string, PortInfo>, handle: NativeHandle, state: DirtyState): P;
|
|
31
|
+
export declare function createDut<P>(buffer: ArrayBuffer | SharedArrayBuffer, layout: Record<string, SignalLayout>, portDefs: Record<string, PortInfo>, handle: NativeHandle, state: DirtyState, hierarchy?: HierarchyNode): P;
|
|
32
|
+
/**
|
|
33
|
+
* Create a child instance DUT accessor from a HierarchyNode.
|
|
34
|
+
* Recursively creates accessors for the child's signals and its own children.
|
|
35
|
+
*/
|
|
36
|
+
export declare function createChildDut(buffer: ArrayBuffer | SharedArrayBuffer, hierarchy: HierarchyNode, handle: NativeHandle, state: DirtyState): object;
|
|
30
37
|
/**
|
|
31
38
|
* Read the raw 4-state (value, mask) pair for a signal.
|
|
32
39
|
* Mask bits set to 1 indicate X/Z.
|
package/dist/dut.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dut.d.ts","sourceRoot":"","sources":["../src/dut.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACV,YAAY,EACZ,QAAQ,EACR,YAAY,EAEb,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"dut.d.ts","sourceRoot":"","sources":["../src/dut.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACV,YAAY,EACZ,QAAQ,EACR,YAAY,EAEb,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAOvD;;;;;;GAMG;AACH,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,OAAO,CAAC;CAChB;AAwJD;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CAAC,CAAC,EACzB,MAAM,EAAE,WAAW,GAAG,iBAAiB,EACvC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,EACpC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,EAClC,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,UAAU,EACjB,SAAS,CAAC,EAAE,aAAa,GACxB,CAAC,CA0EH;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,WAAW,GAAG,iBAAiB,EACvC,SAAS,EAAE,aAAa,EACxB,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,UAAU,GAChB,MAAM,CAiDR;AAoLD;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,WAAW,GAAG,iBAAiB,EACvC,GAAG,EAAE,YAAY,GAChB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,CAejD"}
|
package/dist/dut.js
CHANGED
|
@@ -132,13 +132,14 @@ function writeAllX(view, sig) {
|
|
|
132
132
|
/**
|
|
133
133
|
* Create a DUT accessor object with defineProperty-based getters/setters.
|
|
134
134
|
*
|
|
135
|
-
* @param buffer
|
|
136
|
-
* @param layout
|
|
137
|
-
* @param portDefs
|
|
138
|
-
* @param handle
|
|
139
|
-
* @param state
|
|
135
|
+
* @param buffer SharedArrayBuffer from NAPI create()
|
|
136
|
+
* @param layout Per-signal byte layout within the buffer
|
|
137
|
+
* @param portDefs Port metadata from the ModuleDefinition
|
|
138
|
+
* @param handle Native handle (for evalComb calls)
|
|
139
|
+
* @param state Shared dirty-tracking state
|
|
140
|
+
* @param hierarchy Optional hierarchy node for child instance access
|
|
140
141
|
*/
|
|
141
|
-
export function createDut(buffer, layout, portDefs, handle, state) {
|
|
142
|
+
export function createDut(buffer, layout, portDefs, handle, state, hierarchy) {
|
|
142
143
|
const view = new DataView(buffer);
|
|
143
144
|
const obj = Object.create(null);
|
|
144
145
|
// Iterate portDefs (not layout) so that interface ports are discovered
|
|
@@ -175,6 +176,78 @@ export function createDut(buffer, layout, portDefs, handle, state) {
|
|
|
175
176
|
// Scalar port — define getter/setter
|
|
176
177
|
defineSignalProperty(obj, name, view, sig, port, handle, state);
|
|
177
178
|
}
|
|
179
|
+
// Attach child instance accessors from hierarchy
|
|
180
|
+
if (hierarchy) {
|
|
181
|
+
for (const [childName, instances] of Object.entries(hierarchy.children)) {
|
|
182
|
+
if (instances.length === 1) {
|
|
183
|
+
const childDut = createChildDut(buffer, instances[0], handle, state);
|
|
184
|
+
Object.defineProperty(obj, childName, {
|
|
185
|
+
value: childDut,
|
|
186
|
+
enumerable: true,
|
|
187
|
+
configurable: false,
|
|
188
|
+
writable: false,
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
else if (instances.length > 1) {
|
|
192
|
+
const childDuts = instances.map((inst) => createChildDut(buffer, inst, handle, state));
|
|
193
|
+
Object.defineProperty(obj, childName, {
|
|
194
|
+
value: childDuts,
|
|
195
|
+
enumerable: true,
|
|
196
|
+
configurable: false,
|
|
197
|
+
writable: false,
|
|
198
|
+
});
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
return obj;
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Create a child instance DUT accessor from a HierarchyNode.
|
|
206
|
+
* Recursively creates accessors for the child's signals and its own children.
|
|
207
|
+
*/
|
|
208
|
+
export function createChildDut(buffer, hierarchy, handle, state) {
|
|
209
|
+
const view = new DataView(buffer);
|
|
210
|
+
const obj = Object.create(null);
|
|
211
|
+
// Define signal properties for this child instance
|
|
212
|
+
for (const [name, port] of Object.entries(hierarchy.ports)) {
|
|
213
|
+
if (port.type === "clock")
|
|
214
|
+
continue;
|
|
215
|
+
const sig = hierarchy.forDut[name];
|
|
216
|
+
if (!sig)
|
|
217
|
+
continue;
|
|
218
|
+
if (port.arrayDims && port.arrayDims.length > 0) {
|
|
219
|
+
const arrayObj = createArrayDut(view, sig, port, handle, state);
|
|
220
|
+
Object.defineProperty(obj, name, {
|
|
221
|
+
value: arrayObj,
|
|
222
|
+
enumerable: true,
|
|
223
|
+
configurable: false,
|
|
224
|
+
writable: false,
|
|
225
|
+
});
|
|
226
|
+
continue;
|
|
227
|
+
}
|
|
228
|
+
defineSignalProperty(obj, name, view, sig, port, handle, state);
|
|
229
|
+
}
|
|
230
|
+
// Recursively attach children
|
|
231
|
+
for (const [childName, instances] of Object.entries(hierarchy.children)) {
|
|
232
|
+
if (instances.length === 1) {
|
|
233
|
+
const childDut = createChildDut(buffer, instances[0], handle, state);
|
|
234
|
+
Object.defineProperty(obj, childName, {
|
|
235
|
+
value: childDut,
|
|
236
|
+
enumerable: true,
|
|
237
|
+
configurable: false,
|
|
238
|
+
writable: false,
|
|
239
|
+
});
|
|
240
|
+
}
|
|
241
|
+
else if (instances.length > 1) {
|
|
242
|
+
const childDuts = instances.map((inst) => createChildDut(buffer, inst, handle, state));
|
|
243
|
+
Object.defineProperty(obj, childName, {
|
|
244
|
+
value: childDuts,
|
|
245
|
+
enumerable: true,
|
|
246
|
+
configurable: false,
|
|
247
|
+
writable: false,
|
|
248
|
+
});
|
|
249
|
+
}
|
|
250
|
+
}
|
|
178
251
|
return obj;
|
|
179
252
|
}
|
|
180
253
|
/** Define a single scalar signal property on the target object. */
|
package/dist/dut.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dut.js","sourceRoot":"","sources":["../src/dut.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dut.js","sourceRoot":"","sources":["../src/dut.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -7,18 +7,19 @@
|
|
|
7
7
|
*
|
|
8
8
|
* @packageDocumentation
|
|
9
9
|
*/
|
|
10
|
-
export type { ModuleDefinition, PortInfo, SimulatorOptions, EventHandle, FourStateValue, } from "./types.js";
|
|
10
|
+
export type { ModuleDefinition, PortInfo, SimulatorOptions, EventHandle, FourStateValue, LoopBreak, TrueLoopSpec, } from "./types.js";
|
|
11
11
|
/** @internal */
|
|
12
12
|
export type { SignalLayout, CreateResult, NativeHandle, NativeSimulatorHandle, NativeSimulationHandle, } from "./types.js";
|
|
13
13
|
export { X, FourState, isFourStateValue } from "./types.js";
|
|
14
|
+
export { SimulationTimeoutError } from "./types.js";
|
|
14
15
|
export { Simulator } from "./simulator.js";
|
|
15
16
|
export { Simulation } from "./simulation.js";
|
|
16
17
|
/** @internal */
|
|
17
|
-
export { createDut, readFourState } from "./dut.js";
|
|
18
|
+
export { createDut, createChildDut, readFourState } from "./dut.js";
|
|
18
19
|
/** @internal */
|
|
19
20
|
export type { DirtyState } from "./dut.js";
|
|
20
21
|
/** @internal */
|
|
21
|
-
export { loadNativeAddon, parseNapiLayout, buildPortsFromLayout, wrapDirectSimulatorHandle, wrapDirectSimulationHandle, createSimulatorBridge, createSimulationBridge, } from "./napi-helpers.js";
|
|
22
|
+
export { loadNativeAddon, parseNapiLayout, parseHierarchyLayout, buildPortsFromLayout, wrapDirectSimulatorHandle, wrapDirectSimulationHandle, createSimulatorBridge, createSimulationBridge, parseSignalPath, buildNapiOpts, } from "./napi-helpers.js";
|
|
22
23
|
/** @internal */
|
|
23
|
-
export type { RawNapiAddon, RawNapiSimulatorHandle, RawNapiSimulationHandle } from "./napi-helpers.js";
|
|
24
|
+
export type { HierarchyNode, RawNapiAddon, RawNapiSimulatorHandle, RawNapiSimulationHandle } from "./napi-helpers.js";
|
|
24
25
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,YAAY,EACV,gBAAgB,EAChB,QAAQ,EACR,gBAAgB,EAChB,WAAW,EACX,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,YAAY,EACV,gBAAgB,EAChB,QAAQ,EACR,gBAAgB,EAChB,WAAW,EACX,cAAc,EACd,SAAS,EACT,YAAY,GACb,MAAM,YAAY,CAAC;AAEpB,gBAAgB;AAChB,YAAY,EACV,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAG5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAGpD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAG3C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,gBAAgB;AAChB,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACpE,gBAAgB;AAChB,YAAY,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C,gBAAgB;AAChB,OAAO,EACL,eAAe,EACf,eAAe,EACf,oBAAoB,EACpB,oBAAoB,EACpB,yBAAyB,EACzB,0BAA0B,EAC1B,qBAAqB,EACrB,sBAAsB,EACtB,eAAe,EACf,aAAa,GACd,MAAM,mBAAmB,CAAC;AAC3B,gBAAgB;AAChB,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -9,14 +9,16 @@
|
|
|
9
9
|
*/
|
|
10
10
|
// 4-state helpers
|
|
11
11
|
export { X, FourState, isFourStateValue } from "./types.js";
|
|
12
|
+
// Error types
|
|
13
|
+
export { SimulationTimeoutError } from "./types.js";
|
|
12
14
|
// Simulator (event-based)
|
|
13
15
|
export { Simulator } from "./simulator.js";
|
|
14
16
|
// Simulation (time-based)
|
|
15
17
|
export { Simulation } from "./simulation.js";
|
|
16
18
|
/** @internal */
|
|
17
|
-
export { createDut, readFourState } from "./dut.js";
|
|
19
|
+
export { createDut, createChildDut, readFourState } from "./dut.js";
|
|
18
20
|
/** @internal */
|
|
19
|
-
export { loadNativeAddon, parseNapiLayout, buildPortsFromLayout, wrapDirectSimulatorHandle, wrapDirectSimulationHandle, createSimulatorBridge, createSimulationBridge, } from "./napi-helpers.js";
|
|
21
|
+
export { loadNativeAddon, parseNapiLayout, parseHierarchyLayout, buildPortsFromLayout, wrapDirectSimulatorHandle, wrapDirectSimulationHandle, createSimulatorBridge, createSimulationBridge, parseSignalPath, buildNapiOpts, } from "./napi-helpers.js";
|
|
20
22
|
// NAPI bridge (backward compat — re-exports from napi-helpers)
|
|
21
23
|
// Consumers that import from "./napi-bridge.js" still work.
|
|
22
24
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAsBH,kBAAkB;AAClB,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE5D,cAAc;AACd,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAEpD,0BAA0B;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,0BAA0B;AAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,gBAAgB;AAChB,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAIpE,gBAAgB;AAChB,OAAO,EACL,eAAe,EACf,eAAe,EACf,oBAAoB,EACpB,oBAAoB,EACpB,yBAAyB,EACzB,0BAA0B,EAC1B,qBAAqB,EACrB,sBAAsB,EACtB,eAAe,EACf,aAAa,GACd,MAAM,mBAAmB,CAAC;AAI3B,+DAA+D;AAC/D,4DAA4D"}
|
package/dist/napi-helpers.d.ts
CHANGED
|
@@ -8,12 +8,13 @@
|
|
|
8
8
|
* - Wrapping NAPI handles with zero-copy direct operations
|
|
9
9
|
* - Creating bridge functions for Simulator.create() / Simulation.create()
|
|
10
10
|
*/
|
|
11
|
-
import type { NativeSimulatorHandle, NativeSimulationHandle, PortInfo, SignalLayout } from "./types.js";
|
|
11
|
+
import type { NativeSimulatorHandle, NativeSimulationHandle, PortInfo, SignalLayout, SimulatorOptions } from "./types.js";
|
|
12
12
|
import type { NativeCreateFn } from "./simulator.js";
|
|
13
13
|
import type { NativeCreateSimulationFn } from "./simulation.js";
|
|
14
14
|
export interface RawNapiSimulatorHandle {
|
|
15
15
|
readonly layoutJson: string;
|
|
16
16
|
readonly eventsJson: string;
|
|
17
|
+
readonly hierarchyJson: string;
|
|
17
18
|
readonly stableSize: number;
|
|
18
19
|
readonly totalSize: number;
|
|
19
20
|
tick(eventId: number): void;
|
|
@@ -26,6 +27,7 @@ export interface RawNapiSimulatorHandle {
|
|
|
26
27
|
export interface RawNapiSimulationHandle {
|
|
27
28
|
readonly layoutJson: string;
|
|
28
29
|
readonly eventsJson: string;
|
|
30
|
+
readonly hierarchyJson: string;
|
|
29
31
|
readonly stableSize: number;
|
|
30
32
|
readonly totalSize: number;
|
|
31
33
|
addClock(eventId: number, period: number, initialDelay: number): void;
|
|
@@ -33,13 +35,37 @@ export interface RawNapiSimulationHandle {
|
|
|
33
35
|
runUntil(endTime: number): void;
|
|
34
36
|
step(): number | null;
|
|
35
37
|
time(): number;
|
|
38
|
+
nextEventTime(): number | null;
|
|
36
39
|
evalComb(): void;
|
|
37
40
|
dump(timestamp: number): void;
|
|
38
41
|
sharedMemory(): Uint8Array;
|
|
39
42
|
dispose(): void;
|
|
40
43
|
}
|
|
44
|
+
export interface NapiFalseLoop {
|
|
45
|
+
from: NapiSignalPath;
|
|
46
|
+
to: NapiSignalPath;
|
|
47
|
+
}
|
|
48
|
+
export interface NapiTrueLoop {
|
|
49
|
+
from: NapiSignalPath;
|
|
50
|
+
to: NapiSignalPath;
|
|
51
|
+
maxIter: number;
|
|
52
|
+
}
|
|
53
|
+
export interface NapiSignalPath {
|
|
54
|
+
instancePath: NapiInstanceSegment[];
|
|
55
|
+
varPath: string[];
|
|
56
|
+
}
|
|
57
|
+
export interface NapiInstanceSegment {
|
|
58
|
+
name: string;
|
|
59
|
+
index: number;
|
|
60
|
+
}
|
|
41
61
|
export interface NapiOptions {
|
|
42
62
|
fourState?: boolean;
|
|
63
|
+
vcd?: string;
|
|
64
|
+
optimize?: boolean;
|
|
65
|
+
falseLoops?: NapiFalseLoop[];
|
|
66
|
+
trueLoops?: NapiTrueLoop[];
|
|
67
|
+
clockType?: string;
|
|
68
|
+
resetType?: string;
|
|
43
69
|
}
|
|
44
70
|
export interface RawNapiAddon {
|
|
45
71
|
NativeSimulatorHandle: {
|
|
@@ -62,6 +88,25 @@ export interface RawNapiAddon {
|
|
|
62
88
|
* @param addonPath Explicit path to the `.node` file (overrides auto-detection).
|
|
63
89
|
*/
|
|
64
90
|
export declare function loadNativeAddon(addonPath?: string): RawNapiAddon;
|
|
91
|
+
/**
|
|
92
|
+
* Parse a signal path string into instance-path + var-path components.
|
|
93
|
+
*
|
|
94
|
+
* Format: `instanceSeg1.instanceSeg2:varSeg1.varSeg2`
|
|
95
|
+
* - `:` separates instance path from variable path
|
|
96
|
+
* - Without `:`, the whole string is the variable path
|
|
97
|
+
* - Instance segments may include `[N]` array indices
|
|
98
|
+
*
|
|
99
|
+
* Examples:
|
|
100
|
+
* - `"v"` → { instancePath: [], varPath: ["v"] }
|
|
101
|
+
* - `"p2:i"` → { instancePath: [{name:"p2",index:0}], varPath: ["i"] }
|
|
102
|
+
* - `"a.b[3]:x.y"` → { instancePath: [{name:"a",index:0},{name:"b",index:3}], varPath: ["x","y"] }
|
|
103
|
+
*/
|
|
104
|
+
export declare function parseSignalPath(path: string): NapiSignalPath;
|
|
105
|
+
/**
|
|
106
|
+
* Build NapiOptions from SimulatorOptions.
|
|
107
|
+
* Returns `undefined` when no options are set (to skip the NAPI options arg).
|
|
108
|
+
*/
|
|
109
|
+
export declare function buildNapiOpts(options?: SimulatorOptions): NapiOptions | undefined;
|
|
65
110
|
/**
|
|
66
111
|
* Parse the NAPI layout JSON into SignalLayout records.
|
|
67
112
|
* Returns both the full layout (with type_kind for port detection) and
|
|
@@ -71,6 +116,7 @@ export declare function parseNapiLayout(json: string): {
|
|
|
71
116
|
signals: Record<string, SignalLayout & {
|
|
72
117
|
typeKind: string;
|
|
73
118
|
arrayDims?: number[];
|
|
119
|
+
associatedClock?: string;
|
|
74
120
|
}>;
|
|
75
121
|
forDut: Record<string, SignalLayout>;
|
|
76
122
|
};
|
|
@@ -82,6 +128,21 @@ export declare function buildPortsFromLayout(signals: Record<string, SignalLayou
|
|
|
82
128
|
typeKind: string;
|
|
83
129
|
arrayDims?: number[];
|
|
84
130
|
}>, _events: Record<string, number>): Record<string, PortInfo>;
|
|
131
|
+
export interface HierarchyNode {
|
|
132
|
+
moduleName: string;
|
|
133
|
+
signals: Record<string, SignalLayout & {
|
|
134
|
+
typeKind: string;
|
|
135
|
+
arrayDims?: number[];
|
|
136
|
+
}>;
|
|
137
|
+
forDut: Record<string, SignalLayout>;
|
|
138
|
+
ports: Record<string, PortInfo>;
|
|
139
|
+
children: Record<string, HierarchyNode[]>;
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Parse the hierarchy JSON from NAPI into a HierarchyNode tree.
|
|
143
|
+
* Converts snake_case keys to camelCase and auto-detects ports.
|
|
144
|
+
*/
|
|
145
|
+
export declare function parseHierarchyLayout(json: string, events: Record<string, number>): HierarchyNode;
|
|
85
146
|
/**
|
|
86
147
|
* Wrap a raw NAPI simulator handle with direct (zero-copy) operations.
|
|
87
148
|
* The buffer is shared between JS and Rust — no copies per tick.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"napi-helpers.d.ts","sourceRoot":"","sources":["../src/napi-helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"napi-helpers.d.ts","sourceRoot":"","sources":["../src/napi-helpers.ts"],"names":[],"mappings":"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"}
|
package/dist/napi-helpers.js
CHANGED
|
@@ -34,6 +34,91 @@ export function loadNativeAddon(addonPath) {
|
|
|
34
34
|
`Build it with: pnpm run build:napi`, { cause: e });
|
|
35
35
|
}
|
|
36
36
|
}
|
|
37
|
+
// ---------------------------------------------------------------------------
|
|
38
|
+
// Signal path parsing
|
|
39
|
+
// ---------------------------------------------------------------------------
|
|
40
|
+
/**
|
|
41
|
+
* Parse a signal path string into instance-path + var-path components.
|
|
42
|
+
*
|
|
43
|
+
* Format: `instanceSeg1.instanceSeg2:varSeg1.varSeg2`
|
|
44
|
+
* - `:` separates instance path from variable path
|
|
45
|
+
* - Without `:`, the whole string is the variable path
|
|
46
|
+
* - Instance segments may include `[N]` array indices
|
|
47
|
+
*
|
|
48
|
+
* Examples:
|
|
49
|
+
* - `"v"` → { instancePath: [], varPath: ["v"] }
|
|
50
|
+
* - `"p2:i"` → { instancePath: [{name:"p2",index:0}], varPath: ["i"] }
|
|
51
|
+
* - `"a.b[3]:x.y"` → { instancePath: [{name:"a",index:0},{name:"b",index:3}], varPath: ["x","y"] }
|
|
52
|
+
*/
|
|
53
|
+
export function parseSignalPath(path) {
|
|
54
|
+
const colonIdx = path.indexOf(":");
|
|
55
|
+
if (colonIdx < 0) {
|
|
56
|
+
return { instancePath: [], varPath: path.split(".") };
|
|
57
|
+
}
|
|
58
|
+
const instPart = path.slice(0, colonIdx);
|
|
59
|
+
const varPart = path.slice(colonIdx + 1);
|
|
60
|
+
const instancePath = [];
|
|
61
|
+
if (instPart.length > 0) {
|
|
62
|
+
for (const seg of instPart.split(".")) {
|
|
63
|
+
const bracketIdx = seg.indexOf("[");
|
|
64
|
+
if (bracketIdx >= 0) {
|
|
65
|
+
const name = seg.slice(0, bracketIdx);
|
|
66
|
+
const index = Number.parseInt(seg.slice(bracketIdx + 1, -1), 10);
|
|
67
|
+
instancePath.push({ name, index });
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
instancePath.push({ name: seg, index: 0 });
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
return { instancePath, varPath: varPart.split(".") };
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Build NapiOptions from SimulatorOptions.
|
|
78
|
+
* Returns `undefined` when no options are set (to skip the NAPI options arg).
|
|
79
|
+
*/
|
|
80
|
+
export function buildNapiOpts(options) {
|
|
81
|
+
if (!options)
|
|
82
|
+
return undefined;
|
|
83
|
+
const napiOpts = {};
|
|
84
|
+
let hasOpt = false;
|
|
85
|
+
if (options.fourState) {
|
|
86
|
+
napiOpts.fourState = options.fourState;
|
|
87
|
+
hasOpt = true;
|
|
88
|
+
}
|
|
89
|
+
if (options.vcd) {
|
|
90
|
+
napiOpts.vcd = options.vcd;
|
|
91
|
+
hasOpt = true;
|
|
92
|
+
}
|
|
93
|
+
if (options.optimize != null) {
|
|
94
|
+
napiOpts.optimize = options.optimize;
|
|
95
|
+
hasOpt = true;
|
|
96
|
+
}
|
|
97
|
+
if (options.falseLoops && options.falseLoops.length > 0) {
|
|
98
|
+
napiOpts.falseLoops = options.falseLoops.map((lb) => ({
|
|
99
|
+
from: parseSignalPath(lb.from),
|
|
100
|
+
to: parseSignalPath(lb.to),
|
|
101
|
+
}));
|
|
102
|
+
hasOpt = true;
|
|
103
|
+
}
|
|
104
|
+
if (options.trueLoops && options.trueLoops.length > 0) {
|
|
105
|
+
napiOpts.trueLoops = options.trueLoops.map((tl) => ({
|
|
106
|
+
from: parseSignalPath(tl.from),
|
|
107
|
+
to: parseSignalPath(tl.to),
|
|
108
|
+
maxIter: tl.maxIter,
|
|
109
|
+
}));
|
|
110
|
+
hasOpt = true;
|
|
111
|
+
}
|
|
112
|
+
if (options.clockType) {
|
|
113
|
+
napiOpts.clockType = options.clockType;
|
|
114
|
+
hasOpt = true;
|
|
115
|
+
}
|
|
116
|
+
if (options.resetType) {
|
|
117
|
+
napiOpts.resetType = options.resetType;
|
|
118
|
+
hasOpt = true;
|
|
119
|
+
}
|
|
120
|
+
return hasOpt ? napiOpts : undefined;
|
|
121
|
+
}
|
|
37
122
|
/**
|
|
38
123
|
* Parse the NAPI layout JSON into SignalLayout records.
|
|
39
124
|
* Returns both the full layout (with type_kind for port detection) and
|
|
@@ -58,6 +143,9 @@ export function parseNapiLayout(json) {
|
|
|
58
143
|
if (r.array_dims && r.array_dims.length > 0) {
|
|
59
144
|
entry.arrayDims = r.array_dims;
|
|
60
145
|
}
|
|
146
|
+
if (r.associated_clock) {
|
|
147
|
+
entry.associatedClock = r.associated_clock;
|
|
148
|
+
}
|
|
61
149
|
signals[name] = entry;
|
|
62
150
|
forDut[name] = sl;
|
|
63
151
|
}
|
|
@@ -72,19 +160,17 @@ export function buildPortsFromLayout(signals, _events) {
|
|
|
72
160
|
for (const [name, sig] of Object.entries(signals)) {
|
|
73
161
|
const typeKind = sig.typeKind;
|
|
74
162
|
let portType;
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
portType = "logic";
|
|
87
|
-
break;
|
|
163
|
+
if (typeKind === "clock") {
|
|
164
|
+
portType = "clock";
|
|
165
|
+
}
|
|
166
|
+
else if (typeKind.startsWith("reset")) {
|
|
167
|
+
portType = "reset";
|
|
168
|
+
}
|
|
169
|
+
else if (typeKind === "bit") {
|
|
170
|
+
portType = "bit";
|
|
171
|
+
}
|
|
172
|
+
else {
|
|
173
|
+
portType = "logic";
|
|
88
174
|
}
|
|
89
175
|
const port = {
|
|
90
176
|
direction: sig.direction,
|
|
@@ -99,6 +185,48 @@ export function buildPortsFromLayout(signals, _events) {
|
|
|
99
185
|
}
|
|
100
186
|
return ports;
|
|
101
187
|
}
|
|
188
|
+
/**
|
|
189
|
+
* Parse the hierarchy JSON from NAPI into a HierarchyNode tree.
|
|
190
|
+
* Converts snake_case keys to camelCase and auto-detects ports.
|
|
191
|
+
*/
|
|
192
|
+
export function parseHierarchyLayout(json, events) {
|
|
193
|
+
const raw = JSON.parse(json);
|
|
194
|
+
return convertHierarchyNode(raw, events);
|
|
195
|
+
}
|
|
196
|
+
function convertHierarchyNode(raw, events) {
|
|
197
|
+
const signals = {};
|
|
198
|
+
const forDut = {};
|
|
199
|
+
for (const [name, r] of Object.entries(raw.signals)) {
|
|
200
|
+
const sl = {
|
|
201
|
+
offset: r.offset,
|
|
202
|
+
width: r.width,
|
|
203
|
+
byteSize: r.byte_size > 0 ? r.byte_size : Math.ceil(r.width / 8),
|
|
204
|
+
is4state: r.is_4state,
|
|
205
|
+
direction: r.direction,
|
|
206
|
+
};
|
|
207
|
+
const entry = {
|
|
208
|
+
...sl,
|
|
209
|
+
typeKind: r.type_kind,
|
|
210
|
+
};
|
|
211
|
+
if (r.array_dims && r.array_dims.length > 0) {
|
|
212
|
+
entry.arrayDims = r.array_dims;
|
|
213
|
+
}
|
|
214
|
+
signals[name] = entry;
|
|
215
|
+
forDut[name] = sl;
|
|
216
|
+
}
|
|
217
|
+
const ports = buildPortsFromLayout(signals, events);
|
|
218
|
+
const children = {};
|
|
219
|
+
for (const [name, instances] of Object.entries(raw.children)) {
|
|
220
|
+
children[name] = instances.map((inst) => convertHierarchyNode(inst, events));
|
|
221
|
+
}
|
|
222
|
+
return {
|
|
223
|
+
moduleName: raw.module_name,
|
|
224
|
+
signals,
|
|
225
|
+
forDut,
|
|
226
|
+
ports,
|
|
227
|
+
children,
|
|
228
|
+
};
|
|
229
|
+
}
|
|
102
230
|
// ---------------------------------------------------------------------------
|
|
103
231
|
// Handle wrapping — zero-copy direct operations
|
|
104
232
|
// ---------------------------------------------------------------------------
|
|
@@ -145,6 +273,9 @@ export function wrapDirectSimulationHandle(raw) {
|
|
|
145
273
|
time() {
|
|
146
274
|
return raw.time();
|
|
147
275
|
},
|
|
276
|
+
nextEventTime() {
|
|
277
|
+
return raw.nextEventTime();
|
|
278
|
+
},
|
|
148
279
|
evalComb() {
|
|
149
280
|
raw.evalComb();
|
|
150
281
|
},
|
|
@@ -181,13 +312,15 @@ function parseLegacyLayout(json) {
|
|
|
181
312
|
* `Simulator.create(module, { __nativeCreate: ... })`.
|
|
182
313
|
*/
|
|
183
314
|
export function createSimulatorBridge(addon) {
|
|
184
|
-
return (source, moduleName,
|
|
185
|
-
const
|
|
315
|
+
return (source, moduleName, options) => {
|
|
316
|
+
const napiOpts = buildNapiOpts(options);
|
|
317
|
+
const raw = new addon.NativeSimulatorHandle(source, moduleName, napiOpts);
|
|
186
318
|
const layout = parseLegacyLayout(raw.layoutJson);
|
|
187
319
|
const events = JSON.parse(raw.eventsJson);
|
|
320
|
+
const hierarchy = parseHierarchyLayout(raw.hierarchyJson, events);
|
|
188
321
|
const buf = raw.sharedMemory().buffer;
|
|
189
322
|
const handle = wrapDirectSimulatorHandle(raw);
|
|
190
|
-
return { buffer: buf, layout, events, handle };
|
|
323
|
+
return { buffer: buf, layout, events, handle, hierarchy };
|
|
191
324
|
};
|
|
192
325
|
}
|
|
193
326
|
/**
|
|
@@ -195,13 +328,15 @@ export function createSimulatorBridge(addon) {
|
|
|
195
328
|
* `Simulation.create(module, { __nativeCreate: ... })`.
|
|
196
329
|
*/
|
|
197
330
|
export function createSimulationBridge(addon) {
|
|
198
|
-
return (source, moduleName,
|
|
199
|
-
const
|
|
331
|
+
return (source, moduleName, options) => {
|
|
332
|
+
const napiOpts = buildNapiOpts(options);
|
|
333
|
+
const raw = new addon.NativeSimulationHandle(source, moduleName, napiOpts);
|
|
200
334
|
const layout = parseLegacyLayout(raw.layoutJson);
|
|
201
335
|
const events = JSON.parse(raw.eventsJson);
|
|
336
|
+
const hierarchy = parseHierarchyLayout(raw.hierarchyJson, events);
|
|
202
337
|
const buf = raw.sharedMemory().buffer;
|
|
203
338
|
const handle = wrapDirectSimulationHandle(raw);
|
|
204
|
-
return { buffer: buf, layout, events, handle };
|
|
339
|
+
return { buffer: buf, layout, events, handle, hierarchy };
|
|
205
340
|
};
|
|
206
341
|
}
|
|
207
342
|
//# sourceMappingURL=napi-helpers.js.map
|