@celox-sim/celox 0.1.31 → 0.1.33

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/index.d.ts CHANGED
@@ -18,7 +18,7 @@ export { buildNapiOpts, buildPortsFromLayout, clearJitCache, createSimulationBri
18
18
  export { Simulation } from "./simulation.js";
19
19
  export { Simulator } from "./simulator.js";
20
20
  /** @internal */
21
- export type { CreateResult, EventHandle, FourStateValue, LoopBreak, ModuleDefinition, NativeHandle, NativeSimulationHandle, NativeSimulatorHandle, OptimizeOptions, ParamOverride, PortInfo, SignalLayout, SimulatorOptions, SourceFile, TrueLoopSpec, } from "./types.js";
21
+ export type { CreateResult, EventHandle, FourStateSignalValue, FourStateValue, LoopBreak, ModuleDefinition, NativeHandle, NativeSimulationHandle, NativeSimulatorHandle, OptimizeOptions, ParamOverride, PortInfo, SignalLayout, SimulatorOptions, SourceFile, TrueLoopSpec, } from "./types.js";
22
22
  export { FourState, isFourStateValue, SimulationTimeoutError, X, Z, } from "./types.js";
23
23
  /** @internal */
24
24
  export type { RawWasmSimulatorHandle, WasmBridgeResult, } from "./wasm-bridge.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,gBAAgB;AAChB,YAAY,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAC3C,gBAAgB;AAChB,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACpE,gBAAgB;AAChB,YAAY,EACX,aAAa,EACb,YAAY,EACZ,uBAAuB,EACvB,sBAAsB,GACtB,MAAM,mBAAmB,CAAC;AAC3B,gBAAgB;AAChB,OAAO,EACN,aAAa,EACb,oBAAoB,EACpB,aAAa,EACb,sBAAsB,EACtB,qBAAqB,EACrB,eAAe,EACf,oBAAoB,EACpB,eAAe,EACf,eAAe,EACf,0BAA0B,EAC1B,yBAAyB,GACzB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,gBAAgB;AAChB,YAAY,EACX,YAAY,EACZ,WAAW,EACX,cAAc,EACd,SAAS,EACT,gBAAgB,EAChB,YAAY,EACZ,sBAAsB,EACtB,qBAAqB,EACrB,eAAe,EACf,aAAa,EACb,QAAQ,EACR,YAAY,EACZ,gBAAgB,EAChB,UAAU,EACV,YAAY,GACZ,MAAM,YAAY,CAAC;AAGpB,OAAO,EACN,SAAS,EACT,gBAAgB,EAChB,sBAAsB,EACtB,CAAC,EACD,CAAC,GACD,MAAM,YAAY,CAAC;AAGpB,gBAAgB;AAChB,YAAY,EACX,sBAAsB,EACtB,gBAAgB,GAChB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACN,yBAAyB,EACzB,8BAA8B,EAC9B,YAAY,GACZ,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,gBAAgB;AAChB,YAAY,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAC3C,gBAAgB;AAChB,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACpE,gBAAgB;AAChB,YAAY,EACX,aAAa,EACb,YAAY,EACZ,uBAAuB,EACvB,sBAAsB,GACtB,MAAM,mBAAmB,CAAC;AAC3B,gBAAgB;AAChB,OAAO,EACN,aAAa,EACb,oBAAoB,EACpB,aAAa,EACb,sBAAsB,EACtB,qBAAqB,EACrB,eAAe,EACf,oBAAoB,EACpB,eAAe,EACf,eAAe,EACf,0BAA0B,EAC1B,yBAAyB,GACzB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,gBAAgB;AAChB,YAAY,EACX,YAAY,EACZ,WAAW,EACX,oBAAoB,EACpB,cAAc,EACd,SAAS,EACT,gBAAgB,EAChB,YAAY,EACZ,sBAAsB,EACtB,qBAAqB,EACrB,eAAe,EACf,aAAa,EACb,QAAQ,EACR,YAAY,EACZ,gBAAgB,EAChB,UAAU,EACV,YAAY,GACZ,MAAM,YAAY,CAAC;AAGpB,OAAO,EACN,SAAS,EACT,gBAAgB,EAChB,sBAAsB,EACtB,CAAC,EACD,CAAC,GACD,MAAM,YAAY,CAAC;AAGpB,gBAAgB;AAChB,YAAY,EACX,sBAAsB,EACtB,gBAAgB,GAChB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACN,yBAAyB,EACzB,8BAA8B,EAC9B,YAAY,GACZ,MAAM,kBAAkB,CAAC"}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,gBAAgB;AAChB,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAQpE,gBAAgB;AAChB,OAAO,EACN,aAAa,EACb,oBAAoB,EACpB,aAAa,EACb,sBAAsB,EACtB,qBAAqB,EACrB,eAAe,EACf,oBAAoB,EACpB,eAAe,EACf,eAAe,EACf,0BAA0B,EAC1B,yBAAyB,GACzB,MAAM,mBAAmB,CAAC;AAC3B,0BAA0B;AAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,0BAA0B;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAoB3C,kBAAkB;AAClB,cAAc;AACd,OAAO,EACN,SAAS,EACT,gBAAgB,EAChB,sBAAsB,EACtB,CAAC,EACD,CAAC,GACD,MAAM,YAAY,CAAC;AAQpB,OAAO,EACN,yBAAyB,EACzB,8BAA8B,EAC9B,YAAY,GACZ,MAAM,kBAAkB,CAAC;AAE1B,+DAA+D;AAC/D,4DAA4D"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,gBAAgB;AAChB,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAQpE,gBAAgB;AAChB,OAAO,EACN,aAAa,EACb,oBAAoB,EACpB,aAAa,EACb,sBAAsB,EACtB,qBAAqB,EACrB,eAAe,EACf,oBAAoB,EACpB,eAAe,EACf,eAAe,EACf,0BAA0B,EAC1B,yBAAyB,GACzB,MAAM,mBAAmB,CAAC;AAC3B,0BAA0B;AAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,0BAA0B;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAqB3C,kBAAkB;AAClB,cAAc;AACd,OAAO,EACN,SAAS,EACT,gBAAgB,EAChB,sBAAsB,EACtB,CAAC,EACD,CAAC,GACD,MAAM,YAAY,CAAC;AAQpB,OAAO,EACN,yBAAyB,EACzB,8BAA8B,EAC9B,YAAY,GACZ,MAAM,kBAAkB,CAAC;AAE1B,+DAA+D;AAC/D,4DAA4D"}
@@ -169,6 +169,28 @@ export declare function parseNapiLayout(json: string): {
169
169
  }>;
170
170
  forDut: Record<string, SignalLayout>;
171
171
  };
172
+ /**
173
+ * Recover 4-state flags for wasm32 layout JSON emitted by older addons.
174
+ *
175
+ * Older wasm artifacts reported `is_4state: false` for every signal even when
176
+ * the simulator was created with `fourState: true`. In that case, infer the
177
+ * flag from `typeKind` so JS-side DUT access continues to work.
178
+ */
179
+ export declare function recoverWasmFourStateLayout(layout: {
180
+ signals: Record<string, SignalLayout & {
181
+ typeKind: string;
182
+ arrayDims?: number[];
183
+ associatedClock?: string;
184
+ }>;
185
+ forDut: Record<string, SignalLayout>;
186
+ }): {
187
+ signals: Record<string, SignalLayout & {
188
+ typeKind: string;
189
+ arrayDims?: number[];
190
+ associatedClock?: string;
191
+ }>;
192
+ forDut: Record<string, SignalLayout>;
193
+ };
172
194
  /**
173
195
  * Build PortInfo records from the NAPI layout signals.
174
196
  * This auto-detects port metadata so users don't need to hand-write ModuleDefinition.
@@ -1 +1 @@
1
- {"version":3,"file":"napi-helpers.d.ts","sourceRoot":"","sources":["../src/napi-helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"napi-helpers.d.ts","sourceRoot":"","sources":["../src/napi-helpers.ts"],"names":[],"mappings":"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"}
@@ -237,6 +237,24 @@ export function parseNapiLayout(json) {
237
237
  }
238
238
  return { signals, forDut };
239
239
  }
240
+ /**
241
+ * Recover 4-state flags for wasm32 layout JSON emitted by older addons.
242
+ *
243
+ * Older wasm artifacts reported `is_4state: false` for every signal even when
244
+ * the simulator was created with `fourState: true`. In that case, infer the
245
+ * flag from `typeKind` so JS-side DUT access continues to work.
246
+ */
247
+ export function recoverWasmFourStateLayout(layout) {
248
+ const signals = Object.fromEntries(Object.entries(layout.signals).map(([name, sig]) => {
249
+ const inferred = sig.is4state || (sig.typeKind !== "bit" && sig.typeKind !== "other");
250
+ return [name, { ...sig, is4state: inferred }];
251
+ }));
252
+ const forDut = Object.fromEntries(Object.entries(layout.forDut).map(([name, sig]) => [
253
+ name,
254
+ { ...sig, is4state: signals[name]?.is4state ?? sig.is4state },
255
+ ]));
256
+ return { signals, forDut };
257
+ }
240
258
  /**
241
259
  * Build PortInfo records from the NAPI layout signals.
242
260
  * This auto-detects port metadata so users don't need to hand-write ModuleDefinition.
@@ -1 +1 @@
1
- {"version":3,"file":"napi-helpers.js","sourceRoot":"","sources":["../src/napi-helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"napi-helpers.js","sourceRoot":"","sources":["../src/napi-helpers.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"simulator.d.ts","sourceRoot":"","sources":["../src/simulator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAYH,OAAO,KAAK,EACX,YAAY,EACZ,WAAW,EACX,cAAc,EACd,gBAAgB,EAChB,qBAAqB,EAErB,gBAAgB,EAChB,UAAU,EACV,MAAM,YAAY,CAAC;AAGpB;;;;;;GAMG;AACH,MAAM,MAAM,cAAc,GAAG,CAC5B,OAAO,EAAE,aAAa,CAAC,UAAU,CAAC,EAClC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,gBAAgB,KACrB,YAAY,CAAC,qBAAqB,CAAC,CAAC;AAIzC;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,cAAc,GAAG,IAAI,CAEjE;AAMD,qBAAa,SAAS,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACjD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAwB;IAChD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAI;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAyB;IACjD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;IACzC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;IACpC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkC;IAC1D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA+B;IACvD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAoB;IAC9C,OAAO,CAAC,SAAS,CAAS;IAE1B,OAAO;IAoBP;;;;;;;OAOG;IACH,MAAM,CAAC,MAAM,CAAC,CAAC,EACd,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAC3B,OAAO,CAAC,EAAE,gBAAgB,GAAG;QAC5B,iEAAiE;QACjE,cAAc,CAAC,EAAE,cAAc,CAAC;KAChC,GACC,SAAS,CAAC,CAAC,CAAC;IAoEf;;;;;;;;;;;;;OAaG;IACH,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5C,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,gBAAgB,GAAG;QAAE,eAAe,CAAC,EAAE,MAAM,CAAA;KAAE,GACvD,SAAS,CAAC,CAAC,CAAC;IA4Df;;;;;;;;;;OAUG;IACH,MAAM,CAAC,WAAW,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7C,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,gBAAgB,GAAG;QAAE,eAAe,CAAC,EAAE,MAAM,CAAA;KAAE,GACvD,SAAS,CAAC,CAAC,CAAC;IAyDf,sEAAsE;IACtE,IAAI,GAAG,IAAI,CAAC,CAEX;IAED,oDAAoD;IACpD,IAAI,QAAQ,IAAI,SAAS,MAAM,EAAE,CAEhC;IAED;;;;;;OAMG;IACH,IAAI,CAAC,KAAK,CAAC,EAAE,WAAW,GAAG,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IACxD,IAAI,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IAiC1B,+DAA+D;IAC/D,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW;IAUhC;;OAEG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc;IAY3C,iEAAiE;IACjE,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAK7B,gCAAgC;IAChC,OAAO,IAAI,IAAI;IAcf,OAAO,CAAC,WAAW;CAKnB"}
1
+ {"version":3,"file":"simulator.d.ts","sourceRoot":"","sources":["../src/simulator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAaH,OAAO,KAAK,EACX,YAAY,EACZ,WAAW,EACX,cAAc,EACd,gBAAgB,EAChB,qBAAqB,EAErB,gBAAgB,EAChB,UAAU,EACV,MAAM,YAAY,CAAC;AAGpB;;;;;;GAMG;AACH,MAAM,MAAM,cAAc,GAAG,CAC5B,OAAO,EAAE,aAAa,CAAC,UAAU,CAAC,EAClC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,gBAAgB,KACrB,YAAY,CAAC,qBAAqB,CAAC,CAAC;AAIzC;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,cAAc,GAAG,IAAI,CAEjE;AAMD,qBAAa,SAAS,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACjD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAwB;IAChD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAI;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAyB;IACjD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;IACzC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;IACpC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkC;IAC1D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA+B;IACvD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAoB;IAC9C,OAAO,CAAC,SAAS,CAAS;IAE1B,OAAO;IAoBP;;;;;;;OAOG;IACH,MAAM,CAAC,MAAM,CAAC,CAAC,EACd,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAC3B,OAAO,CAAC,EAAE,gBAAgB,GAAG;QAC5B,iEAAiE;QACjE,cAAc,CAAC,EAAE,cAAc,CAAC;KAChC,GACC,SAAS,CAAC,CAAC,CAAC;IAoEf;;;;;;;;;;;;;OAaG;IACH,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5C,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,gBAAgB,GAAG;QAAE,eAAe,CAAC,EAAE,MAAM,CAAA;KAAE,GACvD,SAAS,CAAC,CAAC,CAAC;IAgEf;;;;;;;;;;OAUG;IACH,MAAM,CAAC,WAAW,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7C,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,gBAAgB,GAAG;QAAE,eAAe,CAAC,EAAE,MAAM,CAAA;KAAE,GACvD,SAAS,CAAC,CAAC,CAAC;IA6Df,sEAAsE;IACtE,IAAI,GAAG,IAAI,CAAC,CAEX;IAED,oDAAoD;IACpD,IAAI,QAAQ,IAAI,SAAS,MAAM,EAAE,CAEhC;IAED;;;;;;OAMG;IACH,IAAI,CAAC,KAAK,CAAC,EAAE,WAAW,GAAG,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IACxD,IAAI,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IAiC1B,+DAA+D;IAC/D,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW;IAUhC;;OAEG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc;IAY3C,iEAAiE;IACjE,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAK7B,gCAAgC;IAChC,OAAO,IAAI,IAAI;IAcf,OAAO,CAAC,WAAW;CAKnB"}
package/dist/simulator.js CHANGED
@@ -5,7 +5,7 @@
5
5
  * for manually controlling clock edges via `tick()`.
6
6
  */
7
7
  import { createDut, readFourState } from "./dut.js";
8
- import { buildNapiOpts, buildPortsFromLayout, filterHierarchyForDse, loadNativeAddon, parseHierarchyLayout, parseNapiLayout, wrapDirectSimulatorHandle, } from "./napi-helpers.js";
8
+ import { buildNapiOpts, buildPortsFromLayout, filterHierarchyForDse, loadNativeAddon, parseHierarchyLayout, parseNapiLayout, recoverWasmFourStateLayout, wrapDirectSimulatorHandle, } from "./napi-helpers.js";
9
9
  import { createWasmSimulatorBridge, isWasmHandle } from "./wasm-bridge.js";
10
10
  let _nativeCreate;
11
11
  /**
@@ -101,7 +101,10 @@ export class Simulator {
101
101
  const addon = loadNativeAddon(options?.nativeAddonPath);
102
102
  const napiOpts = buildNapiOpts(options);
103
103
  const raw = new addon.NativeSimulatorHandle([{ content: source, path: "" }], top, napiOpts);
104
- const layout = parseNapiLayout(raw.layoutJson);
104
+ const isWasm = isWasmHandle(raw);
105
+ const layout = isWasm && options?.fourState
106
+ ? recoverWasmFourStateLayout(parseNapiLayout(raw.layoutJson))
107
+ : parseNapiLayout(raw.layoutJson);
105
108
  const events = JSON.parse(raw.eventsJson);
106
109
  const rawHierarchy = parseHierarchyLayout(raw.hierarchyJson, events);
107
110
  const hierarchy = filterHierarchyForDse(rawHierarchy, options?.deadStorePolicy);
@@ -115,7 +118,7 @@ export class Simulator {
115
118
  // Detect WASM-compiled addon and use the bridge
116
119
  let buf;
117
120
  let handle;
118
- if (isWasmHandle(raw)) {
121
+ if (isWasm) {
119
122
  const bridge = createWasmSimulatorBridge(raw);
120
123
  buf = bridge.sharedMemory.buffer;
121
124
  handle = bridge.handle;
@@ -144,7 +147,10 @@ export class Simulator {
144
147
  const addon = loadNativeAddon(options?.nativeAddonPath);
145
148
  const napiOpts = buildNapiOpts(options);
146
149
  const raw = addon.NativeSimulatorHandle.fromProject(projectPath, top, napiOpts);
147
- const layout = parseNapiLayout(raw.layoutJson);
150
+ const isWasm = isWasmHandle(raw);
151
+ const layout = isWasm && options?.fourState
152
+ ? recoverWasmFourStateLayout(parseNapiLayout(raw.layoutJson))
153
+ : parseNapiLayout(raw.layoutJson);
148
154
  const events = JSON.parse(raw.eventsJson);
149
155
  const rawHierarchy = parseHierarchyLayout(raw.hierarchyJson, events);
150
156
  const hierarchy = filterHierarchyForDse(rawHierarchy, options?.deadStorePolicy);
@@ -155,7 +161,7 @@ export class Simulator {
155
161
  // Detect WASM-compiled addon and use the bridge
156
162
  let buf;
157
163
  let handle;
158
- if (isWasmHandle(raw)) {
164
+ if (isWasm) {
159
165
  const bridge = createWasmSimulatorBridge(raw);
160
166
  buf = bridge.sharedMemory.buffer;
161
167
  handle = bridge.handle;
@@ -1 +1 @@
1
- {"version":3,"file":"simulator.js","sourceRoot":"","sources":["../src/simulator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"simulator.js","sourceRoot":"","sources":["../src/simulator.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -232,6 +232,8 @@ export interface FourStateValue {
232
232
  readonly value: bigint;
233
233
  readonly mask: bigint;
234
234
  }
235
+ /** Values assignable to a writable 4-state signal. */
236
+ export type FourStateSignalValue = bigint | typeof X | typeof Z | FourStateValue;
235
237
  /**
236
238
  * Construct a 4-state value with explicit value and mask.
237
239
  *
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,+CAA+C;AAC/C,MAAM,WAAW,UAAU;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CACzB;AAED;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAChE,QAAQ,CAAC,cAAc,EAAE,IAAI,CAAC;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IAC5C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACzC,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;IAC1B,yEAAyE;IACzE,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,4EAA4E;IAC5E,QAAQ,CAAC,cAAc,CAAC,EAAE,gBAAgB,CAAC;IAC3C,sEAAsE;IACtE,QAAQ,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC;CACzB;AAED,qDAAqD;AACrD,MAAM,WAAW,QAAQ;IACxB,QAAQ,CAAC,SAAS,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,UAAU,CAAC;IAC9D,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,KAAK,CAAC;IACnD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,4CAA4C;IAC5C,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;CAC9C;AAMD;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC5B,4CAA4C;IAC5C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,+BAA+B;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,gDAAgD;IAChD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,wEAAwE;IACxE,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,UAAU,CAAC;IAC9D,uEAAuE;IACvE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,gFAAgF;IAChF,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;CAClC;AAMD;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACrC,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5C,QAAQ,IAAI,IAAI,CAAC;IACjB,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,OAAO,IAAI,IAAI,CAAC;CAChB;AAED;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACtC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IACtE,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7D,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,IAAI,IAAI,MAAM,GAAG,IAAI,CAAC;IACtB,IAAI,IAAI,MAAM,CAAC;IACf,aAAa,IAAI,MAAM,GAAG,IAAI,CAAC;IAC/B,QAAQ,IAAI,IAAI,CAAC;IACjB,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,OAAO,IAAI,IAAI,CAAC;CAChB;AAED;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,qBAAqB,GAAG,sBAAsB,CAAC;AAE1E;;;GAGG;AACH,MAAM,WAAW,YAAY,CAAC,CAAC,SAAS,YAAY,GAAG,YAAY;IAClE,+DAA+D;IAC/D,QAAQ,CAAC,MAAM,EAAE,WAAW,GAAG,iBAAiB,CAAC;IACjD,8CAA8C;IAC9C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAC9C,8CAA8C;IAC9C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,6BAA6B;IAC7B,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IACnB,0EAA0E;IAC1E,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,mBAAmB,EAAE,aAAa,CAAC;IAC/D,oDAAoD;IACpD,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CAC7B;AAMD,4EAA4E;AAC5E,MAAM,WAAW,eAAe;IAC/B,2EAA2E;IAC3E,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,mEAAmE;IACnE,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,4EAA4E;IAC5E,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,uEAAuE;IACvE,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,uEAAuE;IACvE,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,wDAAwD;IACxD,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,0DAA0D;IAC1D,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,yDAAyD;IACzD,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC,kEAAkE;IAClE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,2EAA2E;IAC3E,cAAc,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,gBAAgB;IAChC,qDAAqD;IACrD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,yCAAyC;IACzC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC9B;;;;;;;;;;;OAWG;IACH,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,8DAA8D;IAC9D,iBAAiB,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,cAAc,CAAC;IACtD;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,cAAc,GAAG,YAAY,CAAC;IAClD;;;OAGG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,4DAA4D;IAC5D,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC;IACzB,sDAAsD;IACtD,SAAS,CAAC,EAAE,YAAY,EAAE,CAAC;IAC3B,0CAA0C;IAC1C,SAAS,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAClC,wCAAwC;IACxC,SAAS,CAAC,EAAE,YAAY,GAAG,WAAW,GAAG,WAAW,GAAG,UAAU,CAAC;IAClE,iEAAiE;IACjE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4CAA4C;IAC5C,UAAU,CAAC,EAAE,aAAa,EAAE,CAAC;IAC7B;;;OAGG;IACH,eAAe,CAAC,EAAE,KAAK,GAAG,kBAAkB,GAAG,kBAAkB,CAAC;CAClE;AAED,6DAA6D;AAC7D,MAAM,WAAW,aAAa;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;CACvB;AAMD,wDAAwD;AACxD,MAAM,WAAW,WAAW;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACpB;AAMD,qEAAqE;AACrE,eAAO,MAAM,CAAC,eAAwB,CAAC;AAEvC,4EAA4E;AAC5E,eAAO,MAAM,CAAC,eAAwB,CAAC;AAEvC;;;;;;;;GAQG;AACH,MAAM,WAAW,cAAc;IAC9B,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACtB;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CACxB,KAAK,EAAE,MAAM,GAAG,MAAM,EACtB,IAAI,EAAE,MAAM,GAAG,MAAM,GACnB,cAAc,CAEhB;AAED,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,cAAc,CAMhE;AAMD;;GAEG;AACH,qBAAa,sBAAuB,SAAQ,KAAK;IAChD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;gBAEX,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;CAMxD;AAMD,2DAA2D;AAC3D,MAAM,WAAW,SAAS;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;CACX;AAED,gEAAgE;AAChE,MAAM,WAAW,YAAa,SAAQ,SAAS;IAC9C,OAAO,EAAE,MAAM,CAAC;CAChB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAkPH,8EAA8E;AAC9E,kBAAkB;AAClB,8EAA8E;AAE9E,qEAAqE;AACrE,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AAEvC,4EAA4E;AAC5E,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AAiBvC;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CACxB,KAAsB,EACtB,IAAqB;IAErB,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;AACxE,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,CAAU;IAC1C,OAAO,CACN,OAAO,CAAC,KAAK,QAAQ;QACrB,CAAC,KAAK,IAAI;QACT,CAAoB,CAAC,WAAW,KAAK,IAAI,CAC1C,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,2BAA2B;AAC3B,8EAA8E;AAE9E;;GAEG;AACH,MAAM,OAAO,sBAAuB,SAAQ,KAAK;IACvC,IAAI,CAAS;IACb,KAAK,CAAS;IAEvB,YAAY,OAAe,EAAE,IAAY,EAAE,KAAa;QACvD,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;QACrC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACpB,CAAC;CACD"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAkPH,8EAA8E;AAC9E,kBAAkB;AAClB,8EAA8E;AAE9E,qEAAqE;AACrE,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AAEvC,4EAA4E;AAC5E,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AAwBvC;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CACxB,KAAsB,EACtB,IAAqB;IAErB,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;AACxE,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,CAAU;IAC1C,OAAO,CACN,OAAO,CAAC,KAAK,QAAQ;QACrB,CAAC,KAAK,IAAI;QACT,CAAoB,CAAC,WAAW,KAAK,IAAI,CAC1C,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,2BAA2B;AAC3B,8EAA8E;AAE9E;;GAEG;AACH,MAAM,OAAO,sBAAuB,SAAQ,KAAK;IACvC,IAAI,CAAS;IACb,KAAK,CAAS;IAEvB,YAAY,OAAe,EAAE,IAAY,EAAE,KAAa;QACvD,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;QACrC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACpB,CAAC;CACD"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@celox-sim/celox",
3
- "version": "0.1.31",
3
+ "version": "0.1.33",
4
4
  "description": "TypeScript runtime for Celox HDL simulation",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -29,7 +29,7 @@
29
29
  },
30
30
  "license": "MIT",
31
31
  "dependencies": {
32
- "@celox-sim/celox-napi": "0.1.31"
32
+ "@celox-sim/celox-napi": "0.1.33"
33
33
  },
34
34
  "peerDependencies": {
35
35
  "vitest": ">=1.0.0"
@@ -41,8 +41,8 @@
41
41
  },
42
42
  "devDependencies": {
43
43
  "@types/node": "^25.3.2",
44
- "typescript": "^5.7.0",
45
- "vitest": "^3.0.0"
44
+ "typescript": "^6.0.0",
45
+ "vitest": "^4.0.0"
46
46
  },
47
47
  "scripts": {
48
48
  "build": "tsc",
package/src/dut.test.ts CHANGED
@@ -1,6 +1,11 @@
1
1
  import { describe, expect, test, vi } from "vitest";
2
2
  import { createDut, type DirtyState, readFourState } from "./dut.js";
3
- import type { NativeSimulatorHandle, PortInfo, SignalLayout } from "./types.js";
3
+ import type {
4
+ FourStateSignalValue,
5
+ NativeSimulatorHandle,
6
+ PortInfo,
7
+ SignalLayout,
8
+ } from "./types.js";
4
9
  import { FourState, X } from "./types.js";
5
10
 
6
11
  // ---------------------------------------------------------------------------
@@ -21,6 +26,11 @@ function makeBuffer(size: number): SharedArrayBuffer {
21
26
  return new SharedArrayBuffer(size);
22
27
  }
23
28
 
29
+ interface WritableFourStatePort {
30
+ get a(): bigint;
31
+ set a(value: FourStateSignalValue);
32
+ }
33
+
24
34
  // ---------------------------------------------------------------------------
25
35
  // Basic scalar read/write
26
36
  // ---------------------------------------------------------------------------
@@ -434,9 +444,15 @@ describe("createDut — 4-state", () => {
434
444
  const handle = mockHandle();
435
445
  const state: DirtyState = { dirty: false };
436
446
 
437
- const dut = createDut<{ a: bigint }>(buffer, layout, ports, handle, state);
447
+ const dut = createDut<WritableFourStatePort>(
448
+ buffer,
449
+ layout,
450
+ ports,
451
+ handle,
452
+ state,
453
+ );
438
454
 
439
- (dut as any).a = X;
455
+ dut.a = X;
440
456
  // X = (v=1, m=1) per bit: value should be 0xFF, mask should be 0xFF
441
457
  const [value, mask] = readFourState(buffer, layout.a);
442
458
  expect(value).toBe(0xffn);
@@ -460,9 +476,15 @@ describe("createDut — 4-state", () => {
460
476
  const handle = mockHandle();
461
477
  const state: DirtyState = { dirty: false };
462
478
 
463
- const dut = createDut<{ a: bigint }>(buffer, layout, ports, handle, state);
479
+ const dut = createDut<WritableFourStatePort>(
480
+ buffer,
481
+ layout,
482
+ ports,
483
+ handle,
484
+ state,
485
+ );
464
486
 
465
- (dut as any).a = FourState(0b1010, 0b0100);
487
+ dut.a = FourState(0b1010, 0b0100);
466
488
  const [value, mask] = readFourState(buffer, layout.a);
467
489
  expect(value).toBe(0b1010n);
468
490
  expect(mask).toBe(0b0100n);
@@ -485,10 +507,16 @@ describe("createDut — 4-state", () => {
485
507
  const handle = mockHandle();
486
508
  const state: DirtyState = { dirty: false };
487
509
 
488
- const dut = createDut<{ a: bigint }>(buffer, layout, ports, handle, state);
510
+ const dut = createDut<WritableFourStatePort>(
511
+ buffer,
512
+ layout,
513
+ ports,
514
+ handle,
515
+ state,
516
+ );
489
517
 
490
518
  expect(() => {
491
- (dut as any).a = X;
519
+ dut.a = X;
492
520
  }).toThrow("not 4-state");
493
521
  });
494
522
 
@@ -509,10 +537,16 @@ describe("createDut — 4-state", () => {
509
537
  const handle = mockHandle();
510
538
  const state: DirtyState = { dirty: false };
511
539
 
512
- const dut = createDut<{ a: bigint }>(buffer, layout, ports, handle, state);
540
+ const dut = createDut<WritableFourStatePort>(
541
+ buffer,
542
+ layout,
543
+ ports,
544
+ handle,
545
+ state,
546
+ );
513
547
 
514
548
  expect(() => {
515
- (dut as any).a = FourState(0xa5, 0x0f);
549
+ dut.a = FourState(0xa5, 0x0f);
516
550
  }).toThrow("not 4-state");
517
551
  });
518
552
 
@@ -533,10 +567,16 @@ describe("createDut — 4-state", () => {
533
567
  const handle = mockHandle();
534
568
  const state: DirtyState = { dirty: false };
535
569
 
536
- const dut = createDut<{ a: bigint }>(buffer, layout, ports, handle, state);
570
+ const dut = createDut<WritableFourStatePort>(
571
+ buffer,
572
+ layout,
573
+ ports,
574
+ handle,
575
+ state,
576
+ );
537
577
 
538
578
  // First write X
539
- (dut as any).a = X;
579
+ dut.a = X;
540
580
  const [, maskBefore] = readFourState(buffer, layout.a);
541
581
  expect(maskBefore).toBe(0xffn);
542
582
 
@@ -598,9 +638,15 @@ describe("createDut — 4-state", () => {
598
638
  const handle = mockHandle();
599
639
  const state: DirtyState = { dirty: false };
600
640
 
601
- const dut = createDut<{ a: bigint }>(buffer, layout, ports, handle, state);
641
+ const dut = createDut<WritableFourStatePort>(
642
+ buffer,
643
+ layout,
644
+ ports,
645
+ handle,
646
+ state,
647
+ );
602
648
 
603
- (dut as any).a = X;
649
+ dut.a = X;
604
650
  expect(state.dirty).toBe(true);
605
651
  });
606
652
  });
package/src/e2e.bench.ts CHANGED
@@ -9,7 +9,8 @@
9
9
  * 4. Simulator::tick vs Simulation::step overhead
10
10
  */
11
11
 
12
- import { readFileSync } from "node:fs";
12
+ import { existsSync, readdirSync, readFileSync } from "node:fs";
13
+ import { homedir } from "node:os";
13
14
  import { dirname, resolve } from "node:path";
14
15
  import { fileURLToPath } from "node:url";
15
16
  import { afterAll, bench, describe } from "vitest";
@@ -25,10 +26,17 @@ import type { ModuleDefinition } from "./types.js";
25
26
  const addon = loadNativeAddon();
26
27
 
27
28
  const __benchDir = dirname(fileURLToPath(import.meta.url));
28
- const VERYL_STD = resolve(
29
- __benchDir,
30
- "../../../deps/veryl/crates/std/veryl/src",
31
- );
29
+ function resolveVerylStd(): string {
30
+ const cargoHome = process.env.CARGO_HOME ?? resolve(homedir(), ".cargo");
31
+ const registrySrc = resolve(cargoHome, "registry/src");
32
+ for (const registry of readdirSync(registrySrc)) {
33
+ const source = resolve(registrySrc, registry, "veryl-std-0.20.0/veryl/src");
34
+ if (existsSync(source)) return source;
35
+ }
36
+ throw new Error("veryl-std 0.20.0 source not found; run cargo fetch first");
37
+ }
38
+
39
+ const VERYL_STD = resolveVerylStd();
32
40
  function readVeryl(...parts: string[]): string {
33
41
  return readFileSync(resolve(VERYL_STD, ...parts), "utf8");
34
42
  }
package/src/e2e.test.ts CHANGED
@@ -22,7 +22,12 @@ import {
22
22
  } from "./napi-helpers.js";
23
23
  import { Simulation } from "./simulation.js";
24
24
  import { Simulator } from "./simulator.js";
25
- import { FourState, SimulationTimeoutError, X } from "./types.js";
25
+ import {
26
+ FourState,
27
+ type FourStateSignalValue,
28
+ SimulationTimeoutError,
29
+ X,
30
+ } from "./types.js";
26
31
 
27
32
  // Fixture project directories
28
33
  const FIXTURES_DIR = path.resolve(
@@ -522,7 +527,8 @@ module InitTest (
522
527
 
523
528
  test("writing X clears value and sets mask", () => {
524
529
  interface Ports {
525
- a: bigint;
530
+ get a(): bigint;
531
+ set a(value: FourStateSignalValue);
526
532
  readonly y_and: bigint;
527
533
  }
528
534
 
@@ -532,7 +538,7 @@ module InitTest (
532
538
  raw = undefined; // sim manages its own handle
533
539
 
534
540
  // Write X to input 'a' via DUT
535
- (sim.dut as any).a = X;
541
+ sim.dut.a = X;
536
542
 
537
543
  // We can't inspect mask through DUT getter (it only returns value),
538
544
  // so this test verifies X write doesn't throw and propagation works.
@@ -832,8 +838,10 @@ module InitTest (
832
838
 
833
839
  test("4-state through DUT high-level API (fromSource with fourState)", () => {
834
840
  interface Ports {
835
- a: bigint;
836
- b: bigint;
841
+ get a(): bigint;
842
+ set a(value: FourStateSignalValue);
843
+ get b(): bigint;
844
+ set b(value: FourStateSignalValue);
837
845
  readonly y: bigint;
838
846
  }
839
847
 
@@ -847,14 +855,14 @@ module InitTest (
847
855
  expect(sim.dut.y).toBe(155n);
848
856
 
849
857
  // Write X to a — output should propagate X (value reads as 0)
850
- (sim.dut as any).a = X;
858
+ sim.dut.a = X;
851
859
  // After writing X, the value part of 'y' is implementation-defined
852
860
  // but the read should not throw
853
861
  const _yVal = sim.dut.y;
854
862
  expect(typeof _yVal).toBe("bigint");
855
863
 
856
864
  // Write FourState with partial X
857
- (sim.dut as any).a = FourState(0xa0, 0x0f);
865
+ sim.dut.a = FourState(0xa0, 0x0f);
858
866
  const _yVal2 = sim.dut.y;
859
867
  expect(typeof _yVal2).toBe("bigint");
860
868
 
@@ -942,7 +950,8 @@ describe("E2E: 4-state high-level DUT API", () => {
942
950
  test("FF via DUT API: write X input, tick, read output", () => {
943
951
  interface FFPorts {
944
952
  rst: bigint;
945
- d: bigint;
953
+ get d(): bigint;
954
+ set d(value: FourStateSignalValue);
946
955
  readonly q: bigint;
947
956
  }
948
957
 
@@ -962,7 +971,7 @@ describe("E2E: 4-state high-level DUT API", () => {
962
971
  expect(sim.dut.q).toBe(0x42n);
963
972
 
964
973
  // Write X to d, tick — q should capture it (value read still returns a bigint)
965
- (sim.dut as any).d = X;
974
+ sim.dut.d = X;
966
975
  sim.tick();
967
976
  expect(typeof sim.dut.q).toBe("bigint");
968
977
 
@@ -976,8 +985,10 @@ describe("E2E: 4-state high-level DUT API", () => {
976
985
 
977
986
  test("X to defined transition: adder recovers from X", () => {
978
987
  interface Ports {
979
- a: bigint;
980
- b: bigint;
988
+ get a(): bigint;
989
+ set a(value: FourStateSignalValue);
990
+ get b(): bigint;
991
+ set b(value: FourStateSignalValue);
981
992
  readonly y: bigint;
982
993
  }
983
994
 
@@ -986,7 +997,7 @@ describe("E2E: 4-state high-level DUT API", () => {
986
997
  });
987
998
 
988
999
  // Start with X
989
- (sim.dut as any).a = X;
1000
+ sim.dut.a = X;
990
1001
  sim.dut.b = 10n;
991
1002
  // Output has X — just verify it doesn't crash
992
1003
  expect(typeof sim.dut.y).toBe("bigint");
@@ -1345,8 +1356,10 @@ describe("E2E: fourState() method", () => {
1345
1356
 
1346
1357
  test("Simulator.fourState: reads X mask when input is X", () => {
1347
1358
  interface Ports {
1348
- a: bigint;
1349
- b: bigint;
1359
+ get a(): bigint;
1360
+ set a(value: FourStateSignalValue);
1361
+ get b(): bigint;
1362
+ set b(value: FourStateSignalValue);
1350
1363
  readonly y: bigint;
1351
1364
  }
1352
1365
 
@@ -1354,7 +1367,7 @@ describe("E2E: fourState() method", () => {
1354
1367
  fourState: true,
1355
1368
  });
1356
1369
 
1357
- (sim.dut as any).a = X;
1370
+ sim.dut.a = X;
1358
1371
  sim.dut.b = 10n;
1359
1372
  // Trigger evalComb via output read
1360
1373
  sim.dut.y;
@@ -1707,7 +1720,7 @@ describe("E2E: parameter override — DUT correctness", () => {
1707
1720
  sim.dispose();
1708
1721
  });
1709
1722
 
1710
- test.skip("param value reflected in logic via fromSource", () => {
1723
+ test("param value reflected in logic via fromSource", () => {
1711
1724
  // blocked by upstream Veryl IR bug
1712
1725
  interface Ports {
1713
1726
  a: bigint;
@@ -2105,7 +2118,7 @@ module Top (
2105
2118
  bus: modport Bus::consumer [2],
2106
2119
  out: output logic<8>,
2107
2120
  ) {
2108
- assign out = bus.data[0] + bus.data[1];
2121
+ assign out = bus[0].data + bus[1].data;
2109
2122
  }
2110
2123
  `;
2111
2124
 
@@ -2714,7 +2727,7 @@ ${TB_COUNTER_SOURCE}
2714
2727
  #[test(t)]
2715
2728
  module CounterTbPass {
2716
2729
  inst clk: $tb::clock_gen;
2717
- inst rst: $tb::reset_gen;
2730
+ inst rst: $tb::reset_gen(clk);
2718
2731
  var cnt: logic<32>;
2719
2732
  inst dut: Counter_tb (clk, rst, cnt);
2720
2733
  initial {
@@ -2731,7 +2744,7 @@ ${TB_COUNTER_SOURCE}
2731
2744
  #[test(t)]
2732
2745
  module CounterTbFail {
2733
2746
  inst clk: $tb::clock_gen;
2734
- inst rst: $tb::reset_gen;
2747
+ inst rst: $tb::reset_gen(clk);
2735
2748
  var cnt: logic<32>;
2736
2749
  inst dut: Counter_tb (clk, rst, cnt);
2737
2750
  initial {
@@ -2744,6 +2757,38 @@ module CounterTbFail {
2744
2757
  }
2745
2758
  `;
2746
2759
 
2760
+ const TB_MULTIPLE_TESTS_SOURCE = `
2761
+ ${TB_COUNTER_SOURCE}
2762
+ #[test(t)]
2763
+ module CounterTbFailFirst {
2764
+ inst clk: $tb::clock_gen;
2765
+ inst rst: $tb::reset_gen(clk);
2766
+ var cnt: logic<32>;
2767
+ inst dut: Counter_tb (clk, rst, cnt);
2768
+ initial {
2769
+ rst.assert(clk);
2770
+ clk.next (5);
2771
+ $assert (cnt == 32'd99, "fail first");
2772
+ $assert (cnt == 32'd5, "should not run");
2773
+ $finish ();
2774
+ }
2775
+ }
2776
+
2777
+ #[test(t)]
2778
+ module CounterTbPassSecond {
2779
+ inst clk: $tb::clock_gen;
2780
+ inst rst: $tb::reset_gen(clk);
2781
+ var cnt: logic<32>;
2782
+ inst dut: Counter_tb (clk, rst, cnt);
2783
+ initial {
2784
+ rst.assert(clk);
2785
+ clk.next (5);
2786
+ $assert (cnt == 32'd5, "pass second");
2787
+ $finish ();
2788
+ }
2789
+ }
2790
+ `;
2791
+
2747
2792
  describe("E2E: native testbench (runTest)", () => {
2748
2793
  const addon = loadNativeAddon();
2749
2794
 
@@ -2757,16 +2802,33 @@ describe("E2E: native testbench (runTest)", () => {
2757
2802
  expect(result.assertions[0]!.passed).toBe(true);
2758
2803
  });
2759
2804
 
2760
- test("failing testbench returns passed=false and collects all assertions", () => {
2805
+ test("failing testbench returns passed=false and stops on plain assert", () => {
2761
2806
  const result: NapiTestResult = addon.runTest(
2762
2807
  [{ content: TB_FAIL_SOURCE, path: "test.veryl" }],
2763
2808
  "CounterTbFail",
2764
2809
  );
2765
2810
  expect(result.passed).toBe(false);
2766
- // Both assertions are collected (not stopped at first failure)
2767
- expect(result.assertions.length).toBe(2);
2811
+ expect(result.assertions.length).toBe(1);
2768
2812
  expect(result.assertions[0]!.passed).toBe(false);
2769
- expect(result.assertions[1]!.passed).toBe(true);
2813
+ });
2814
+
2815
+ test("multiple test modules run independently after one fails", () => {
2816
+ const sources = [{ content: TB_MULTIPLE_TESTS_SOURCE, path: "test.veryl" }];
2817
+
2818
+ const first: NapiTestResult = addon.runTest(sources, "CounterTbFailFirst");
2819
+ expect(first.passed).toBe(false);
2820
+ expect(first.assertions.length).toBe(1);
2821
+ expect(first.assertions[0]!.passed).toBe(false);
2822
+ expect(first.assertions[0]!.message).toBe("fail first");
2823
+
2824
+ const second: NapiTestResult = addon.runTest(
2825
+ sources,
2826
+ "CounterTbPassSecond",
2827
+ );
2828
+ expect(second.passed).toBe(true);
2829
+ expect(second.assertions.length).toBe(1);
2830
+ expect(second.assertions[0]!.passed).toBe(true);
2831
+ expect(second.assertions[0]!.message).toBe("pass second");
2770
2832
  });
2771
2833
 
2772
2834
  test("assertion results include source location", () => {
package/src/index.ts CHANGED
@@ -42,6 +42,7 @@ export { Simulator } from "./simulator.js";
42
42
  export type {
43
43
  CreateResult,
44
44
  EventHandle,
45
+ FourStateSignalValue,
45
46
  FourStateValue,
46
47
  LoopBreak,
47
48
  ModuleDefinition,
@@ -462,6 +462,52 @@ export function parseNapiLayout(json: string): {
462
462
  return { signals, forDut };
463
463
  }
464
464
 
465
+ /**
466
+ * Recover 4-state flags for wasm32 layout JSON emitted by older addons.
467
+ *
468
+ * Older wasm artifacts reported `is_4state: false` for every signal even when
469
+ * the simulator was created with `fourState: true`. In that case, infer the
470
+ * flag from `typeKind` so JS-side DUT access continues to work.
471
+ */
472
+ export function recoverWasmFourStateLayout(layout: {
473
+ signals: Record<
474
+ string,
475
+ SignalLayout & {
476
+ typeKind: string;
477
+ arrayDims?: number[];
478
+ associatedClock?: string;
479
+ }
480
+ >;
481
+ forDut: Record<string, SignalLayout>;
482
+ }): {
483
+ signals: Record<
484
+ string,
485
+ SignalLayout & {
486
+ typeKind: string;
487
+ arrayDims?: number[];
488
+ associatedClock?: string;
489
+ }
490
+ >;
491
+ forDut: Record<string, SignalLayout>;
492
+ } {
493
+ const signals = Object.fromEntries(
494
+ Object.entries(layout.signals).map(([name, sig]) => {
495
+ const inferred =
496
+ sig.is4state || (sig.typeKind !== "bit" && sig.typeKind !== "other");
497
+ return [name, { ...sig, is4state: inferred }];
498
+ }),
499
+ ) as typeof layout.signals;
500
+
501
+ const forDut = Object.fromEntries(
502
+ Object.entries(layout.forDut).map(([name, sig]) => [
503
+ name,
504
+ { ...sig, is4state: signals[name]?.is4state ?? sig.is4state },
505
+ ]),
506
+ ) as typeof layout.forDut;
507
+
508
+ return { signals, forDut };
509
+ }
510
+
465
511
  /**
466
512
  * Build PortInfo records from the NAPI layout signals.
467
513
  * This auto-detects port metadata so users don't need to hand-write ModuleDefinition.
package/src/simulator.ts CHANGED
@@ -13,6 +13,7 @@ import {
13
13
  loadNativeAddon,
14
14
  parseHierarchyLayout,
15
15
  parseNapiLayout,
16
+ recoverWasmFourStateLayout,
16
17
  wrapDirectSimulatorHandle,
17
18
  } from "./napi-helpers.js";
18
19
  import type {
@@ -194,8 +195,12 @@ export class Simulator<P = Record<string, unknown>> {
194
195
  top,
195
196
  napiOpts,
196
197
  );
198
+ const isWasm = isWasmHandle(raw);
197
199
 
198
- const layout = parseNapiLayout(raw.layoutJson);
200
+ const layout =
201
+ isWasm && options?.fourState
202
+ ? recoverWasmFourStateLayout(parseNapiLayout(raw.layoutJson))
203
+ : parseNapiLayout(raw.layoutJson);
199
204
  const events: Record<string, number> = JSON.parse(raw.eventsJson);
200
205
  const rawHierarchy = parseHierarchyLayout(raw.hierarchyJson, events);
201
206
  const hierarchy = filterHierarchyForDse(
@@ -214,7 +219,7 @@ export class Simulator<P = Record<string, unknown>> {
214
219
  // Detect WASM-compiled addon and use the bridge
215
220
  let buf: ArrayBuffer | SharedArrayBuffer;
216
221
  let handle: NativeSimulatorHandle;
217
- if (isWasmHandle(raw)) {
222
+ if (isWasm) {
218
223
  const bridge = createWasmSimulatorBridge(raw);
219
224
  buf = bridge.sharedMemory.buffer;
220
225
  handle = bridge.handle;
@@ -269,8 +274,12 @@ export class Simulator<P = Record<string, unknown>> {
269
274
  top,
270
275
  napiOpts,
271
276
  );
277
+ const isWasm = isWasmHandle(raw);
272
278
 
273
- const layout = parseNapiLayout(raw.layoutJson);
279
+ const layout =
280
+ isWasm && options?.fourState
281
+ ? recoverWasmFourStateLayout(parseNapiLayout(raw.layoutJson))
282
+ : parseNapiLayout(raw.layoutJson);
274
283
  const events: Record<string, number> = JSON.parse(raw.eventsJson);
275
284
  const rawHierarchy = parseHierarchyLayout(raw.hierarchyJson, events);
276
285
  const hierarchy = filterHierarchyForDse(
@@ -286,7 +295,7 @@ export class Simulator<P = Record<string, unknown>> {
286
295
  // Detect WASM-compiled addon and use the bridge
287
296
  let buf: ArrayBuffer | SharedArrayBuffer;
288
297
  let handle: NativeSimulatorHandle;
289
- if (isWasmHandle(raw)) {
298
+ if (isWasm) {
290
299
  const bridge = createWasmSimulatorBridge(raw);
291
300
  buf = bridge.sharedMemory.buffer;
292
301
  handle = bridge.handle;
package/src/types.ts CHANGED
@@ -272,6 +272,13 @@ export interface FourStateValue {
272
272
  readonly mask: bigint;
273
273
  }
274
274
 
275
+ /** Values assignable to a writable 4-state signal. */
276
+ export type FourStateSignalValue =
277
+ | bigint
278
+ | typeof X
279
+ | typeof Z
280
+ | FourStateValue;
281
+
275
282
  /**
276
283
  * Construct a 4-state value with explicit value and mask.
277
284
  *