Mikolaj Wielgus
e8762da4f4
Revert "Support for variable references in SPICE models."
...
This reverts commit 95ebfeeed1
.
This reverts commit 672ce650a9
.
2022-11-07 19:37:40 +01:00
Jeff Young
95ebfeeed1
Support for variable references in SPICE models.
...
Also fixes a couple of bugs where sheet instance data wasn't being
handled correctly.
2022-11-07 10:57:34 +00:00
Alex
c279a2e696
Hotfix build when KICAD_SPICE=OFF
2022-11-02 11:03:09 +05:00
Jeff Young
9eef638f0b
Don't validate on keystrokes.
...
KiCad policy is to validate on focus-loss so that you can make changes
which have intermediate states that are not valid.
2022-10-31 14:09:30 +00:00
Mikolaj Wielgus
5eca8dd8de
Undo hardcoding swapping of diode pins
...
Revert commits d1e2acd3
70b4d1aa
cff508fb
2022-10-30 11:01:59 +01:00
jean-pierre charras
50d2237f06
command_export_pcb_dxf.cpp: switch to "C" locale before exporting the file
...
Fix also a minor Coverity warning
2022-10-29 09:45:45 +02:00
Mikolaj Wielgus
d1e2acd3d8
Sim: Reverse Cathode and Anode strings in diode model data
2022-10-28 15:16:34 +02:00
Mikolaj Wielgus
70b4d1aac8
Commit sim_model_diode.{cpp,h}
2022-10-28 14:29:32 +02:00
Mikolaj Wielgus
cff508fb3b
Sim: Reverse diode model pin order to match diode symbols
2022-10-28 14:01:09 +02:00
Mikolaj Wielgus
20ffb7d334
Sim: Don't throw exception for certain garbage characters in Value field
2022-10-27 06:42:43 +02:00
Jeff Young
a9a2cc3e84
Enhance readability of Simulation Model dialog.
2022-10-27 00:01:38 +01:00
Wayne Stambaugh
6a0db3e7e2
Fix Coverity warnings.
2022-10-26 14:39:44 -04:00
Mikolaj Wielgus
aa0e3666d1
Sim: Skip param name when writing primary param in model's Value field
2022-10-26 09:03:02 +02:00
Mikolaj Wielgus
01c69f1066
Sim: Swap pins instead of inverting position variable in potentiometers
2022-10-26 03:57:53 +02:00
Jeff Young
445657022b
Don't attempt to read simulation model if symbol isn't included.
...
Also collect up all errors for one dialog when preparing simulation.
Also translate error messages.
Fixes https://gitlab.com/kicad/code/kicad/issues/12686
2022-10-26 00:41:31 +01:00
Jeff Young
5f3d440ce3
Fix compile error.
2022-10-25 13:29:38 +01:00
Fabien Corona
20b63f305e
Sim: Ibis improvements and fixes
...
Follow-up after the KIBIS and KIBIS GUI merge requests.
- Move KIBIS from Pcbnew to Eeschema space,
- Make KIBIS obtain the Ku/Kd coefficients via the `SPICE_SIMULATOR` class instead of calling the `ngspice` executable via `system()`,
- Allow to toggle between differential and single-ended model in the GUI,
- Various GUI fixes and improvements.
2022-10-25 09:45:40 +00:00
Mikolaj Wielgus
3e0f4a47b0
Sim: Remove pins field in all inferred models with linear pin mapping
2022-10-25 08:52:12 +02:00
Mikolaj Wielgus
80c426f577
Sim: Fix writing inferred model for tlines
2022-10-25 08:52:12 +02:00
Mikolaj Wielgus
d10fd7bb09
Sim: Remove tuner (log) scale choice button
...
We probably won't be using it for now.
2022-10-25 04:38:09 +02:00
Mikolaj Wielgus
0399d08aaa
Sim: Fix potentiometers
2022-10-24 11:04:47 +02:00
Mikolaj Wielgus
9b6cc6c505
Sim: Fix tuners
2022-10-24 11:04:47 +02:00
Mikolaj Wielgus
78b193af5f
Sim: Add tuner param virtual getter
2022-10-24 11:04:47 +02:00
Mikolaj Wielgus
d14de1ce78
Sim: Rename Value field's "principal value" to "primary value"
2022-10-24 11:04:47 +02:00
jean-pierre charras
63002cec57
Do not add a title/comment in mandatory field strings when writting netlists.
...
This is mainly for "Sheetfile" property because current it is the only one
that has a title when plotting/drawing it.
2022-10-22 12:50:26 +02:00
Mikolaj Wielgus
958bd1897d
Sim: Add potentiometer model
2022-10-22 04:33:52 +02:00
Mikolaj Wielgus
2a5bc9f87e
Sim: Don't accept lone '.' as Value principal value
2022-10-22 04:33:52 +02:00
Mikolaj Wielgus
209ff933e7
Sim: Ignore everything between principal value and parameter-value pairs
2022-10-21 18:55:40 +02:00
Mikolaj Wielgus
f95e77499b
Sim: Make exception messages slightly more verbose
2022-10-21 08:15:29 +02:00
Mikolaj Wielgus
9819fa43dd
Sim: Allow principal value in Value field to be followed by regular params
2022-10-21 08:14:13 +02:00
Mikolaj Wielgus
d01dcc1c51
Sim: Interpret anything starting with .inc as .include
2022-10-20 05:13:32 +02:00
Mikolaj Wielgus
662f6c7d83
Sim: Don't match newlines in model names
...
This caused errors in AKO models with no overrides.
2022-10-20 04:00:33 +02:00
Mikolaj Wielgus
7ad927671d
Sim Ltspice compat: Narrow ignoring undocumented parameters
2022-10-20 04:00:33 +02:00
Mikolaj Wielgus
5878749ed2
Sim LTspice compat: Ignore undocumented LTspice diode parameters
2022-10-20 04:00:33 +02:00
Mikolaj Wielgus
7378aaae9d
Sim: Ignore the "mfg" parameter in all models
2022-10-19 06:53:39 +02:00
Mikolaj Wielgus
952f3da53f
Sim: Only set sim command if the sheet sim command is different
2022-10-19 03:02:32 +02:00
Mikolaj Wielgus
f68df09696
Sim: Fix analysis set from GUI
2022-10-19 02:32:50 +02:00
Mikolaj Wielgus
1965411bf5
Sim: Remove the parsing exception for LTspice compat
...
Silently ignoring this may be a cure worse than disease.
2022-10-18 23:19:48 +02:00
Mikolaj Wielgus
6e874f4c1e
Ngspice: Preload a basically empty circuit to avoid error messages
...
Fixes https://gitlab.com/kicad/code/kicad/issues/12481
2022-10-18 05:48:01 +02:00
Mikolaj Wielgus
2475a703d6
Sim Model Editor: Checkbox for toggling inference
2022-10-16 05:10:57 +02:00
Mikolaj Wielgus
c8e13813d9
Sim: Rename Sim_Disabled field to Sim_Enable
2022-10-16 00:49:44 +02:00
Mikolaj Wielgus
c3d5b3b3e5
Sim: Only store device type in reference, not full model type
...
Instead of Reference="VSIN1", Value="dc=1 ampl=2 f=3", it's now
Reference="V1", Value="SIN dc=1 ampl=2 f=3".
2022-10-15 19:36:26 +02:00
Mikolaj Wielgus
c857e533a9
Sim: Fix crash when a field tries to set an inexistent parameter
...
Refactored SetParamValue() and friends to use exceptions instead of
return values.
2022-10-12 04:27:48 +02:00
Mikolaj Wielgus
6ae333a116
Sim Model Editor: Fix crash when opening sources
2022-10-12 04:27:48 +02:00
Mikolaj Wielgus
d47752ad75
Sim Model Editor: Fix displaying Ibis pin list
2022-10-11 02:22:59 +02:00
Mikolaj Wielgus
d9eb76eae0
Sim: Refactor SPICE_GENERATOR methods to accept a single SPICE_ITEM
2022-10-11 02:22:59 +02:00
Mikolaj Wielgus
6d958c5a3b
Sim: Remove some superfluous class members
2022-10-10 13:49:43 +02:00
Mikolaj Wielgus
4931b80066
Sim: Resolve name collisions for generated model names
2022-10-10 13:38:35 +02:00
Mikolaj Wielgus
72402cf687
Sim: Override base model type if there's a Sim_Type field
2022-10-09 20:46:05 +02:00
Mikolaj Wielgus
994274fe9f
Move IBIS model Spice code generation to SIM_MODEL_KIBIS
...
IBIS drivers are temporarily broken. Will fix is subsequent commits.
2022-10-08 03:01:52 +02:00
jean-pierre charras
01a1d148e6
Make a sentence understandable and translatable.
...
Fix a minor compil warning
2022-10-07 10:11:02 +02:00
Mikolaj Wielgus
6f2b2d7e19
Sim: Minor SIM_LIBRARY cleanup
2022-10-06 14:08:01 +02:00
Mikolaj Wielgus
b95f4ec6bb
Sim: Use the new library manager class in Spice netlist exporter
...
Temporarily comment out IBIS processing.
2022-10-06 09:49:29 +02:00
Alex
c019ae3b89
Add missing include
2022-10-05 20:21:38 +03:00
Mikolaj Wielgus
6df774a62f
Commit missing sin_lib_mgr.{cpp,h}
2022-10-05 18:08:25 +02:00
Mikolaj Wielgus
e99d531c88
Sim: LTspice model compat: Ignore spurious values
...
Also fix parsing type in ako models
2022-10-04 22:44:26 +02:00
Mikolaj Wielgus
120b569048
Sim: Support ako models
2022-10-04 17:48:10 +02:00
Mikolaj Wielgus
c464c5b87b
Sim: cleanup: use unique_ptr for PARAM::value
2022-10-03 22:15:14 +02:00
Mikolaj Wielgus
0d369f700f
Sim: Basic cleanup after KIBIS merge
...
- Some preliminary refactoring,
- Use multiple types for IBIS drivers instead of a wftype variable,
- Remove the m_requiresUIUpdate variable and its accessors.
2022-09-30 16:17:00 +02:00
jean-pierre charras
46b0c116cd
fix a compil warning.
2022-09-29 13:06:50 +02:00
Fabien Corona
7e486327d9
Ibis differential and PRBS models
2022-09-29 08:35:01 +00:00
jean-pierre charras
dcc325b3b2
More about fix compil issues and warnings, especially in ibis code.
...
A few are msys2 specific and due to include files order.
2022-09-28 11:26:07 +02:00
Mikolaj Wielgus
b3b2b8b3f0
Sim: Don't hold KIBIS in MODEL_TYPE enum
...
Fixes pipeline error.
2022-09-28 11:14:50 +02:00
Mikolaj Wielgus
b7c8570b2a
Sim: Fix infinite recursion
2022-09-28 11:14:50 +02:00
Fabien Corona
528fe4d371
Add Ibis to spice model editor
...
ADDED: IBIS models are now supported in Sim Model Editor
2022-09-27 20:47:00 +00:00
jean-pierre charras
7584ccc758
Fix duplicate variable member m_userUnits, creating issues depending on
...
the way it was acceded (by name or by accessor).
2022-09-26 19:47:28 +02:00
Ian McInerney
1683e552f7
Add/fix some variable initializations
2022-09-25 00:48:38 +01:00
Ian McInerney
fdb97a46c1
Don't copy items in for loops when not needed
2022-09-24 03:46:06 +01:00
Mikolaj Wielgus
e27969217c
Add missing virtual destructor in SPICE_GENERATOR
2022-09-22 11:17:07 +02:00
Mikolaj Wielgus
e4865ce543
Excise wxString from simulation
2022-09-22 07:41:52 +02:00
jean-pierre charras
b6663a1c41
minor fixes.
2022-09-21 15:49:50 +02:00
jean-pierre charras
78087597cd
Avoid including plotters/plotter.h in many files.
...
It avoid a large rebuild when modifying the plot code.
2022-09-21 08:52:34 +02:00
Mikolaj Wielgus
2bf6791352
Sim: Move SIM_LIBRARY_SPICE parsing facilities to a new class
...
This leaves SIM_LIBRARY_SPICE very small, but it will grow larger later.
2022-09-20 08:17:51 +02:00
Mikolaj Wielgus
8599323dce
Sim: Move Spice model parsing to a separate class hierarchy
...
Roughly analogous to the SPICE_GENERATOR hierarchy.
2022-09-19 07:24:46 +02:00
Mikolaj Wielgus
0efc1149af
Sim: Create a common base class for models sourced from Spice libs
2022-09-18 21:25:28 +02:00
Marek Roszko
63295cfb9e
Remove unused vars
2022-09-18 08:49:07 -04:00
Mikolaj Wielgus
3b94624e90
Commit forgotten files
...
I must stop forgetting to commit new and renamed files.
2022-09-18 07:27:47 +02:00
Mikolaj Wielgus
a8d7a845b6
Sim: Rename SIM_MODEL_SPICE to SIM_MODEL_RAW_SPICE
2022-09-18 07:25:56 +02:00
Mikolaj Wielgus
4128a5533f
Sim LTspice compat: Ignore mfg, icrating, vceo, type params
2022-09-18 04:14:57 +02:00
Mikolaj Wielgus
dcb3f16fbc
Sim: Don't use long type in SIM_VALUE
2022-09-18 02:25:40 +02:00
Mikolaj Wielgus
15b5b48992
Sim: More descriptive parsing errors in all Spice parsers
...
In my previous commit, which changed Spice parsing errors to be more
descriptive, I forgot to apply this to all invocations of the Spice
parser. This commit corrects that.
2022-09-17 08:46:45 +02:00
Mikolaj Wielgus
5fa0a1a064
Sim: Output more descriptive parsing errors
2022-09-17 08:29:18 +02:00
Mikolaj Wielgus
d48ec3aa8c
Sim: Slightly simplify grammars
2022-09-17 02:18:23 +02:00
Mikolaj Wielgus
545212eb13
Sim Window: Support dark theme
2022-09-16 06:57:27 +02:00
Mikolaj Wielgus
4ae2225b6d
Sim: Replace all wxStrings with std::strings in SIM_VALUE
2022-09-16 06:11:14 +02:00
Mikolaj Wielgus
d19b2dbfe4
Sim Model Editor: Display error when failing to set parameter
2022-09-16 05:44:23 +02:00
Mikolaj Wielgus
ce3fe46751
Sim Window: Display latest netlist without having to run sim
...
Fixes https://gitlab.com/kicad/code/kicad/issues/11787
2022-09-16 03:12:28 +02:00
Mikolaj Wielgus
907ad27e7f
Sim: Move SPICE_GENERATOR class to a new file
2022-09-15 05:26:23 +02:00
Mikolaj Wielgus
e4c5bc6c66
Sim: Refactor Spice code generation to a new SPICE_GENERATOR class
2022-09-14 09:36:49 +02:00
Mikolaj Wielgus
ba723d36c9
Sim: Don't generate .model line when there's no instance param overrides
2022-09-14 03:16:53 +02:00
Mikolaj Wielgus
0e0d1a34f5
Sim: Spice grammar fixes
...
- Fix parsing .model lines with model names containingnon-alphanumeric
characters like - and _,
- Fix parsing libraries in which EOF is not preceded by a newline.
Fixes https://gitlab.com/kicad/code/kicad/issues/12394
2022-09-12 04:05:17 +02:00
Mikolaj Wielgus
e56635a02b
Sim: Add mutual inductor model
2022-09-11 19:23:01 +02:00
Mikolaj Wielgus
91358dfcac
Sim Model Editor: Fix Enable/Disable of parameters
...
Only SIM_STRING_PROPERTY-based parameters were updated.
2022-09-11 15:24:16 +02:00
Mikolaj Wielgus
1b7ff376b0
Sim: Simplify generated .model cards
...
One parameter per line instead of wrapping after a certain line width.
Consistent with the formatting in the recently added generation of
.subckt cards from the schematic.
2022-09-10 02:45:48 +02:00
Mikolaj Wielgus
300a1c4144
Add a new schematic exporter to Spice .subckt model
...
An option to use the current sheet as root is added to both the original
and new (.subckt model) exporters.
2022-09-09 16:18:48 +02:00
Marek Roszko
9f522e1343
Forgot to actually change the fmt specifiers...
2022-09-08 07:17:58 -04:00
Marek Roszko
5b96736059
LOCALE_IO is expensive to hammer, use fmt
...
Fixes https://gitlab.com/kicad/code/kicad/-/issues/12377
2022-09-08 07:04:45 -04:00
Mikolaj Wielgus
72651dffe8
Sim Model Editor: Fix crash on selecting behavioral models
...
Accidentally there was an infinite recursion.
2022-09-03 20:06:14 +02:00
Mikolaj Wielgus
70ab5db0e9
Sim Model Editor: Fix crash on selecting tline models
...
Dereferencing std::optional<T> objects was undefined behavior.
Change some forgotten SIM_VALUE_INST<T> usages to their corresponding
typedefs.
2022-09-03 19:52:24 +02:00
Mikolaj Wielgus
f6b1ff821b
Sim Model Editor: Improve raw model code preview
...
- Show whole file below the item line for reference
- Fix pin sequence in item line (was not displayed)
2022-09-03 16:20:41 +02:00
Mikolaj Wielgus
cfdf6c097d
Sim: Fix crash due to accessing param 0 of TYPE::NONE model
2022-09-02 20:21:09 +02:00
Mikolaj Wielgus
94bbb2e267
Sim: Skip NC pins of raw Spice models when generating netlist
...
Unconnected pins were erroreously placed in raw Spice item
instantiations, resulting in passing more pins than model had.
2022-09-01 11:41:43 +02:00
Mikolaj Wielgus
748324f4cd
Sim: Use O-devices to simulate all tlines (much faster than T-devices)
2022-08-31 15:50:11 +02:00
jean-pierre charras
f679400e91
simulator: fix a issue when the simulation ends, but ngspice is still running.
...
For instance if a lot of simulation results must be written to a file (using wrdata).
In this case the tools in simulator frame toolbar were never enabled.
2022-08-31 12:07:05 +02:00
Mikolaj Wielgus
39ac58ea33
Use the PEGTL grammar for detecting .control and .subckt text directives
2022-08-30 17:27:58 +02:00
Marek Roszko
ae637296cd
Fix MSVC compile
2022-08-30 07:24:58 -04:00
Mikolaj Wielgus
2bcfe5e42c
Fix Spice subcircuit parsing
...
When parsing a subcircuit, the parser was incorrectly identifying
parameters of models inside it as belonging to the subcircuit.
2022-08-30 12:09:10 +02:00
Mikolaj Wielgus
bd6c153ad9
Sim: Implement "enum" model parameters for switches
...
Displayed in Sim Model Dialog parameter grid as a dropdown
(wxEnumProperty).
2022-08-30 09:45:49 +02:00
Mikolaj Wielgus
716b60c20d
Commit forgotten sim_model_switch.{cpp,h} files
2022-08-29 04:28:56 +02:00
Mikolaj Wielgus
3b3131ad74
Create class for voltage and current -controlled switches
...
Unfortunately, along the way it turned out that Ngspice's .probe alli
breaks current-controlled switches. So they won't work in that case for
now.
2022-08-29 03:49:41 +02:00
Mikolaj Wielgus
963900ab83
Sort sim model pins by symbol pin number in sim model dialog
2022-08-26 04:36:48 +02:00
Seth Hillbrand
f1261e71d4
Replace boost::optional with std::optional
2022-08-25 15:50:47 -07:00
Mikolaj Wielgus
a0400791c0
Fix exporting Spice instance lines for multi-part symbols
...
Only pins from the current symbol part were used: the rest was
incorrectly set to Not Connected.
Also slightly change generation of names for Not Connected nets.
2022-08-25 08:47:31 +02:00
Mikolaj Wielgus
8a6a0ff7dc
Allow inferred voltage/current sources to have a single float in Value
...
Update Opamp test to use this feature.
2022-08-24 06:19:38 +02:00
Mikolaj Wielgus
ffab57ffd0
Fix default pin assignment for subcircuit sim models
...
Instead of using a linear order that incorrectly starts from 0, have all
pins unassigned by default.
2022-08-24 00:09:05 +02:00
Mikolaj Wielgus
6fad25f8ed
Allow mapping sim model pins to arbitrary string symbol pin numbers
...
This change removes the incorrect assumption that symbol pin numbers are
integers and are the same as indexes in the vector storing the symbol
pins.
"~" is now used to denote a floating sim model pin.
2022-08-22 08:13:26 +02:00
jean-pierre charras
34b38eb95b
Sim: on parameters parsing error, give a better info than tao::pegtl::eof error.
2022-08-17 11:11:36 +02:00
Roberto Fernandez Bautista
3e11506fa2
Fix a few unused variable warnings on msvc
2022-08-15 20:47:21 +01:00
Seth Hillbrand
35ac39844f
Clean up some auto usage
...
Don't make new copies of shared_ptr if we can use references. Keep auto
usage down to hard-to-type-out sequences
2022-08-15 11:29:45 -07:00
Wayne Stambaugh
898ec0d094
Fix wxWidgets 3.1 and later deprecated build warnings.
...
wxWidgets 3.1 has deprecated wxPATH_NORM_ALL when normalizing file
paths when calling wxFileName::Normalize(). This change keeps the
existing behavior except in places where our own internal
ExpandEnvVarSubstitutions() to expand environment variables.
2022-08-15 08:00:40 -04:00
jean-pierre charras
488a53e71b
Fix a few minor Coverity warnings
2022-08-12 10:51:36 +02:00
Mikolaj Wielgus
6d59fef9a5
Sim: Fix reading the legacy Spice_Node_Sequence field (2nd attempt)
...
bd809bf31c
was botched and broke QA tests,
this will fix the problem.
2022-08-11 15:50:16 +02:00
Mikolaj Wielgus
bd809bf31c
Sim: Fix reading the legacy Spice_Node_Sequence field
2022-08-11 02:42:16 +02:00
Mikolaj Wielgus
a1a99b1ec2
Sim QA: Check NGSPICE's LoadNetlist() and Run() status code
2022-08-10 17:54:28 +02:00
Mikolaj Wielgus
0040ffc567
Convert strings to UTF8 before they are input to PEGTL
...
Otherwise there are QA failures under non-UTF-8 locales.
2022-08-10 14:20:52 +02:00
Mikolaj Wielgus
67476c330e
Fix broken PEGTL include path
2022-08-08 17:50:42 +02:00
Mikolaj Wielgus
5096f5d8a9
Sim: Fix inference of RLC models with garbage suffixes
...
Garbage suffix is e.g. the "F" in "100uF".
2022-08-08 17:06:50 +02:00
Mikolaj Wielgus
24e7a8ac41
Commit missing eeschema/sim/sim_model_ngspice_data.cpp
2022-08-05 18:51:52 +02:00
Mikolaj Wielgus
c9f3507ff7
Sim: Don't require ngspice.h for SIM_MODEL_NGSPICE
2022-08-05 18:26:09 +02:00
jean-pierre charras
d667d9b464
Do not include and use sharedspice.h when KICAD_SPICE = OFF
2022-08-04 17:01:29 +02:00
Mikolaj Wielgus
a14d3e74a8
Remove generate_ngspice_models.bash script
2022-08-02 14:50:02 +02:00
Mikolaj Wielgus
5d64fc12a1
Attempt to fix GCC MSYS2 build crash
...
Initialize ngspice_models.cpp structures at runtime on demand. Use
a sequence of std::vector::emplace_back() instead of
brace-initialization.
2022-08-02 14:47:28 +02:00
Seth Hillbrand
e8627c89df
Fix initial compile error on Linux.
...
Still getting link error with DIALOG_SIM_MODEL
2022-07-31 16:43:52 -07:00
jean-pierre charras
fc849e3e0c
sim_model.h: change order of includes to avoid conflicts with a windows header.
...
msys2 specific. No actual change in code.
2022-07-31 10:32:31 +02:00
Mikolaj Wielgus
7cf5138c63
Sim: Bugfixes, mostly for MS Windows compilation errors
...
Unfortunately, Windows headers define a lot of macros for common words,
so we had to rename some enums to not collide.
We also fix some of the many bugs related to the new simulation
architecture and the Spice Model Editor dialog.
2022-07-30 02:25:34 +00:00
Mikolaj Wielgus
739b9255d9
Sim Model Editor improvements
...
- Tab-switching,
- Automatic expansion of categories on tab-switch,
- Various minor simulation improvements,
- Various new simulation-related bugfixes.
2022-07-30 02:25:34 +00:00
Mikolaj Wielgus
6984f63af8
Sim: Transmission line models
...
Implement transmission line models and perform some adjustments to
the current models. Add some QA tests.
2022-07-30 02:25:34 +00:00
Mikolaj Wielgus
fe38c622a9
Sim: Improvements to model serialization
...
Don't serialize parameters in certain models for default values. Infer
models from Value field for some kinds of models. Resolve synonyms when
loading models from Spice libraries.
2022-07-30 02:25:34 +00:00
Mikolaj Wielgus
6450ec6b85
Sim: Spice netlist exporter rewrite
...
Rewrite the spice exporter to work with the new simulation model
architecture and data model, with many bugfixes related to the latter
two along the way.
2022-07-30 02:25:34 +00:00
Mikolaj Wielgus
ce84a48037
Sim: Implement loading Spice library files
...
Implement parsing and loading Spice libraries into KiCad. This is done
without any involvement of Ngspice -- we create our own in-tree parser
using PEGTL -- because Ngspice doesn't offer any intermediate output we
could plug ourselves into. We don't parse everything -- just the library
content, so this won't be that much effort.
We implement some basic Spice code preview to give the user a hint what
Spice code eir model will correspond to.
2022-07-30 02:25:34 +00:00
Mikolaj Wielgus
978f01553b
Sim Model Editor: Serialize models in fields
...
Implemented serialization and deserialization of models in symbol fields
through the SIM_VALUE class. We don't carry the Spice legacy of
case-insensitive suffixes, instead we conform to the SI standard (i.e. M
is Mega, not milli, P is peta, p is pico).
Parameter grid value validation is implemented by simply not allowing
any characters that will make the value invalid (instead of highlighting
the field in a red color). This will likely be changed at some point in
the future.
2022-07-30 02:25:34 +00:00
Mikolaj Wielgus
c5a256291e
Sim Model Editor: Display model parameters
...
This commit adds parameter display functionality, via a wxPropertyGrid
widget, to the Sim Model Editor. To faciliate that, a SIM_VALUE class is
created to serialize, deserialize, and validate numeric values in the
new parameter grid.
SPICE_MODEL is renamed to SIM_MODEL and split into several subclasses
that correspond to different model kinds.
2022-07-30 02:25:34 +00:00
Mikolaj Wielgus
229e5c9e0f
Begin development of a new Sim Model Editor dialog
...
With that also begin reworking the internal structure of the simulation
model storage. Some models have parameter information extracted from
Ngspice, which was specially patched to faciliate that. The model is
stored and managed by the SPICE_MODEL class (later will be renamed to
SIM_MODEL).
2022-07-30 02:25:34 +00:00
Seth Hillbrand
93fb00d815
Protect the Kiway dereference
...
Also find a few more places where we are reaching into a new frame to
perform actions that need to have dialogs closed.
Running actions should also wait for the next cycle rather than being
immediately executed when we are calling into a new frame. This allow
for the cleanup actions onClose() to happen prior to the next action
starting
Fixes https://gitlab.com/kicad/code/kicad/issues/11891
2022-07-14 11:37:45 -07:00
jean-pierre charras
9f38fa43cd
Fix some minor compil and Coverity warnings.
2022-06-05 11:44:49 +02:00
Eduardo Behr
f246646d7a
Fix severe simulation memory leaks
2022-05-28 20:40:24 +00:00
Jeff Young
cb15bd1635
Fix compile issue.
2022-05-26 10:54:54 +01:00
Seth Hillbrand
11ae5b75b7
Remove broken assert
...
Fixes compile issue for linux/gcc which expects a boolean in the assert
statement that it cannot find from std::map
2022-05-25 16:36:47 -07:00
Eduardo Behr
6aa50304d9
Eeschema: Fixing simulation plot CSV exporter
2022-05-25 15:00:03 +00:00
Sylwester Kocjan
a9c61d21ca
eeschema: fix crash when closing simulation frame
...
Destructor of SIM_PLOT_FRAME calls sim->Attach( nullptr ) in order to destroy
circuit model (former netlist exporter). If this is skipped, eeschema crashes
when program is closed. nullptr is a valid parameter for Attach()
2022-04-05 19:28:05 +00:00