You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit ce5b9bb
Browse filesBrowse the repository at this point in the historyBrowse files
- source waveforms including `EXP(...)`, finite-cycle `PULSE(... Ncycles)`, finite-cycle `SINE(... Ncycles)`, and local two-column `PWL file=<path>` data
131
+
- source waveforms including `EXP(...)`, finite-cycle `PULSE(... Ncycles)`, finite-cycle `SINE(... Ncycles)`, local two-column `PWL file=<path>` data, and simple LTspice `PWL REPEAT FOR` / `REPEAT FOREVER` blocks
132
132
- independent-source topology options: `Rser`, `Cpar`, `load`, and `R=<value>`
133
133
- model parameter aliases: resistor and capacitor models accept `tc=<tc1>[,<tc2>]`; voltage switches accept `von` / `voff`; current switches accept `ion` / `ioff`
Copy file name to clipboardExpand all lines: roadmap/ltspice-compatibility-matrix.md
+3-2Lines changed: 3 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
---
2
2
title: LTspice Compatibility Matrix
3
-
status: P3 Baseline + .FOUR Support Refresh + Custom Passives + Ideal Diodes + Golden Evidence + Include/Lib Path Evidence + Waveform Docs Refresh + PWL Text Variants + Finite SINE + Source/R-C/L Parasitics
3
+
status: P3 Baseline + .FOUR Support Refresh + Custom Passives + Ideal Diodes + Golden Evidence + Include/Lib Path Evidence + Waveform Docs Refresh + PWL Text Variants + PWL Repeat Variants + Finite SINE + Source/R-C/L Parasitics
4
4
scope: SpiceSharpParser + SpiceSharp
5
5
last_reviewed: 2026-07-07
6
6
---
@@ -58,7 +58,8 @@ Compatibility classes:
58
58
|`EXP(...)` source waveform | Accepted | Produces internal exponential waveform | TRAN supported | Analytic fixture plus optional LTspice-backed transient golden | Invalid count/tau diagnostics name `EXP`| Current parser/runtime | P2 supports the six-argument form `EXP(v1 v2 td1 tau1 td2 tau2)`. |
59
59
|`PULSE(... Ncycles)`| Accepted in LTspice mode | Produces finite-cycle pulse waveform | TRAN supported | Analytic transient fixture plus optional LTspice-backed transient golden | Invalid period or cycle count produces targeted `PULSE` diagnostic | Current parser/runtime | The eighth LTspice argument limits the waveform to `Ncycles` periods, then returns to the initial value. |
60
60
|`SINE(... Ncycles)`| Accepted in LTspice mode | Produces finite-cycle sine waveform | TRAN supported | Analytic transient fixture plus optional LTspice-backed transient golden | Invalid frequency or cycle count produces targeted `SINE` diagnostic | Current parser/runtime | The seventh LTspice argument limits the waveform to `Ncycles` periods after the delay, then returns to the offset value. |
61
-
|`PWL file=<path>` source waveform | Accepted | Produces PWL waveform from a local two-column text file with optional header row | TRAN supported | Analytic transient fixture | Missing file, empty file, no data rows, malformed rows, and unsupported LTspice repeat forms produce targeted `PWL` diagnostics | Current parser/runtime | File data may start after leading blank lines or full-line comments beginning with `;`, `#`, `*`, or `//`; space, comma, semicolon, and tab delimiters are fixture-backed. Broader LTspice PWL repeat variants are deferred. |
61
+
|`PWL file=<path>` source waveform | Accepted | Produces PWL waveform from a local two-column text file with optional header row | TRAN supported | Analytic transient fixture | Missing file, empty file, no data rows, and malformed rows produce targeted `PWL` diagnostics | Current parser/runtime | File data may start after leading blank lines or full-line comments beginning with `;`, `#`, `*`, or `//`; space, comma, semicolon, and tab delimiters are fixture-backed. |
62
+
|`PWL REPEAT FOR <n>` / `REPEAT FOREVER`| Accepted in LTspice mode | Produces finite expanded PWL or runtime repeating PWL waveform | TRAN supported | Analytic transient fixture plus optional LTspice-backed transient golden for `REPEAT FOR`| Bare `REPEAT`, missing `ENDREPEAT`, bad repeat count, odd point data, non-increasing local times, contradictory zero-time boundaries, nested repeats, trailing parameters after `ENDREPEAT`, and unsupported combined forms produce targeted `PWL` diagnostics | Current parser/runtime | Supports simple non-nested repeat blocks with local repeat times. Time/value scale factors, `SCOPEDATA`, trigger restarts, relative `+time` points, and nested/combined PWL specs remain deferred. |
62
63
| Independent source `tbl=(expr,x1,y1,...)`| Accepted in LTspice mode | Lowered to behavioral `table(...)` source | OP supported | Analytic fixture | Invalid form names `tbl`| Current parser/runtime | Parser shim uses the existing source/table expression path. |
63
64
| Source `wavefile=<path> chan=<n> [amplitude=<value>]`| Accepted | Produces wave-file waveform | Existing wave-file behavior | Smoke/diagnostic fixture | Missing `wavefile`, missing `chan`, missing file, and invalid `chan` produce targeted validation | Current parser/runtime | Channel defaults are not inferred. |
64
65
| Source `Rser`, `Cpar`, `load`, `R=<value>`| Accepted | Synthesizes helper R/C entities in LTspice mode | OP supported for resistance helpers; Cpar read fixture | Analytic/parser fixture plus optional LTspice-backed OP golden | Malformed value forms produce targeted LTspice source-option diagnostics | Current parser/runtime | Parser-only topology synthesis: `Rser` adds a series resistor, `Cpar` adds a shunt capacitor, `load` adds a shunt resistor, and `R=<value>` maps to series resistance on voltage sources and load resistance on current sources. Core source models are unchanged. |
Copy file name to clipboardExpand all lines: roadmap/ltspice-netlist-compatibility-plan.md
+4-3Lines changed: 4 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -38,7 +38,7 @@ This roadmap is intentionally parser-first and evidence-first:
38
38
-`.TRAN` accepts traditional numeric forms and trailing `UIC`; P1 LTspice mode also accepts `.tran <Tstop>` and `.tran <Tstop> UIC` by deriving `step = Tstop / 50.0`. LTspice `startup`, `steady`, `nodiscard`, and `step` modifiers remain targeted errors.
39
39
- LTspice output/viewer `.options` such as `plotwinsize`, `plotreltol`, `plotvntol`, `plotabstol`, `numdgt`, `measdgt`, `meascplxfmt`, `baudrate`, and `fastaccess` are warning no-ops only in LTspice mode.
40
40
- LTspice behavior-changing `.options` such as `cshunt`, `gshunt`, `srcsteps`, `gminsteps`, `trtol`, `chgtol`, `pivrel`, `pivtol`, and `ptrantau` remain targeted errors.
41
-
- Source waveform mappings cover `SIN` / `SINE`, `PULSE`, `EXP`, `PWL`, `AM`, `SFFM`, and wave-file input. LTspice finite-cycle `PULSE(... Ncycles)` and `SINE(... Ncycles)` are supported, PWL file parsing supports optional header rows, leading blank/comment lines, and space/comma/semicolon/tab delimiters, unsupported PWL repeat syntax produces targeted diagnostics, wave-file channel defaults are not inferred, and topology-changing independent-source options synthesize parser helper components.
41
+
- Source waveform mappings cover `SIN` / `SINE`, `PULSE`, `EXP`, `PWL`, `AM`, `SFFM`, and wave-file input. LTspice finite-cycle `PULSE(... Ncycles)` and `SINE(... Ncycles)` are supported, PWL file parsing supports optional header rows, leading blank/comment lines, and space/comma/semicolon/tab delimiters, simple non-nested LTspice `PWL REPEAT FOR` / `REPEAT FOREVER` blocks are supported, broader PWL variants still produce targeted diagnostics, wave-file channel defaults are not inferred, and topology-changing independent-source options synthesize parser helper components.
42
42
- MOS model generation currently covers legacy levels 1, 2, and 3. LTspice `VDMOS` and advanced monolithic levels such as BSIM/EKV/HiSIM variants are runtime or intentional-unsupported candidates.
43
43
- Distributed-line support currently starts from lossless `T`. LTspice lossy `O` / `LTRA` and uniform RC-line `URC` models need engine triage before runnable support is claimed.
44
44
- P3 LTspice mode maps R/C model `tc=a[,b]`, switch `von`/`voff`, and current-switch `ion`/`ioff` aliases where they lower to existing parameters.
@@ -212,7 +212,8 @@ Implemented P2 behavior:
212
212
- Added LTspice-style smooth limiting support for `uplim(...)` and `dnlim(...)`, while keeping unary `~` as a targeted diagnostic.
213
213
- Added six-argument `EXP(v1 v2 td1 tau1 td2 tau2)` source waveform support with argument-count and positive-tau diagnostics.
214
214
- Added LTspice-mode finite-cycle `PULSE(... Ncycles)` and `SINE(... Ncycles)` support with targeted diagnostics for invalid period/frequency and cycle-count arguments.
215
-
- Added PWL file fixtures for supported local two-column text variants with optional header rows, leading blank/comment lines, and space/comma/semicolon/tab delimiters, plus targeted diagnostics for missing files, empty files, missing data rows, malformed rows, and unsupported LTspice repeat syntax.
215
+
- Added PWL file fixtures for supported local two-column text variants with optional header rows, leading blank/comment lines, and space/comma/semicolon/tab delimiters, plus targeted diagnostics for missing files, empty files, missing data rows, and malformed rows.
216
+
- Added LTspice-mode support for simple non-nested `PWL REPEAT FOR <n>` and `REPEAT FOREVER` blocks with local repeat times, analytic transient fixtures, malformed-repeat diagnostics, and optional LTspice-backed transient golden evidence for `REPEAT FOR`.
216
217
- Added LTspice-mode `tbl=(expr,x1,y1,...)` independent-source lowering to the existing behavioral `table(...)` path.
217
218
- Improved `wavefile=<path> chan=<n> [amplitude=<value>]` validation so missing `wavefile`, missing `chan`, missing files, and invalid `chan` values produce targeted diagnostics.
218
219
- Added LTspice-mode parser synthesis for topology-changing independent-source options: `Rser` adds a series resistor, `Cpar` adds a shunt capacitor, `load` adds a shunt resistor, and `R=<value>` maps to series resistance on voltage sources or load resistance on current sources.
@@ -221,7 +222,7 @@ Remaining follow-up:
221
222
222
223
- Compare existing random functions with LTspice semantics before making numeric claims.
223
224
- Decide whether LTspice boolean XOR can be added without breaking existing `^` exponent behavior.
224
-
- Defer LTspice PWL repeat variants until fixture-backed runtime behavior is specified.
225
+
- Defer nested/combined LTspice PWL specs, trigger restarts, time/value scale factors, `SCOPEDATA`, and relative `+time` points until fixture-backed runtime behavior is specified.
0 commit comments