Commit Graph

287 Commits

Author SHA1 Message Date
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
Jeff Young 2dac73e421 Remove dangerous SCH_FIELD::IsVoid() call.
This call didn't differentiate between GetText() and GetShownText() and
was used in instances where the difference matters.
2022-11-03 17:19:59 +00:00
Sylwester Kocjan c0191e589e eeschema: use instance-specific unit in xml exporter 2022-10-27 14:33:24 +00:00
Sylwester Kocjan d18d2eed51 eeschema: don't save and restore schematic sheet in exporter
Fixes https://gitlab.com/kicad/code/kicad/-/issues/11488
2022-10-27 14:33:24 +00: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
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 9b6cc6c505 Sim: Fix tuners 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 f95e77499b Sim: Make exception messages slightly more verbose 2022-10-21 08:15:29 +02:00
jean-pierre charras c4db7337d0 NETLIST_EXPORTER_SPICE: add missing switch to "C" locale (missing LOCALE_IO).
It breaks spice netlist in countries using a comma as floating number separator.
2022-10-19 11:50:35 +02:00
Jeff Young 1964087960 Fix some instance-data issues in netlist exporters.
Also removes the final requirements for setting the current sheet so
that we no longer need to do a save/restore.
2022-10-18 17:26:34 +01: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 d9eb76eae0 Sim: Refactor SPICE_GENERATOR methods to accept a single SPICE_ITEM 2022-10-11 02:22:59 +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
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
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
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
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
Mikolaj Wielgus e4865ce543 Excise wxString from simulation 2022-09-22 07:41:52 +02:00
Marek Roszko 63295cfb9e Remove unused vars 2022-09-18 08:49:07 -04:00
Mikolaj Wielgus a8d7a845b6 Sim: Rename SIM_MODEL_SPICE to SIM_MODEL_RAW_SPICE 2022-09-18 07:25:56 +02:00
Mikolaj Wielgus 5fa0a1a064 Sim: Output more descriptive parsing errors 2022-09-17 08:29:18 +02:00
Seth Hillbrand 524b129c64 ADDED: Support for explicit DNP field
Dims elements shown as DNP.  Adds property `dnp` to explicitly denote
parts that should not be populated. These parts are not included in X/Y
files
2022-09-16 22:26:16 +00: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 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 4f5998ee6b Spice Model Exporter: Export port directions as comments
Also fix missing subcircuit name.

Fixes https://gitlab.com/kicad/code/kicad/issues/11813
2022-09-09 23:49:17 +02:00
Mikolaj Wielgus 0184875d26 Commit missing files 2022-09-09 18:14:33 +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
jean-pierre charras 8b96e6fa44 orcadpcb2 netlist export: fix an issue with duplicated pins in multi-unit symbols.
Due to some changes in code, pins common to units were written more than once.
2022-09-07 17:13:04 +02:00
Mikolaj Wielgus 39ac58ea33 Use the PEGTL grammar for detecting .control and .subckt text directives 2022-08-30 17:27:58 +02:00
jean-pierre charras 767be75cac Netlist spice creation: fix serious issues.
* fix broken float values in countries using a comma as separator (missing LOCALE_IO switch)
* fix regression that ignored the pseudo directive Kxx Lyy Lzz nn (coupling factor)
* fix regression that created empty blocks for .subckt and .control
2022-08-30 11:06:50 +02:00
Mikolaj Wielgus e82ff4de73 Remove the old netlist_exporter_pspice.cpp file 2022-08-29 05:39:09 +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
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 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
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
jean-pierre charras b5c83ffd95 Eeschema, slash in power pin name: better fix than commit ba7a06f5.
ba7a06f5 tried to fix a (minor) issue in net names when the name was coming
from a input power pin having a '/' in name. But ba7a06f5 blindly escaped any '/'
in net name, and the hierarchy info was lost.
Now only the pin name is escaped (like any other pin name used in net names)
2022-08-10 11:00:19 +02:00
jean-pierre charras 574783bf70 netlist_exporter_spice: cleanup data lists when rerun the netlister.
It avoid duplicate includes when rerun the simulator.
Avoid also duplicate includes found in symbols.
Fixes #12192
https://gitlab.com/kicad/code/kicad/issues/12192
2022-08-09 20:52:06 +02:00
jean-pierre charras 4f7d7013e0 netlist_exporter_spice: fix crash when re-run the simulator after a schematic change.
Fixes #12142
https://gitlab.com/kicad/code/kicad/issues/12142
2022-08-09 18:33:54 +02:00
Jeff Young ba7a06f52e Escape netnames with illegal characters in them.
Fixes https://gitlab.com/kicad/code/kicad/issues/12194
2022-08-09 15:05:10 +01:00
Jeff Young 96f01d33c8 Performance improvements.
1) Move a bunch of std::map's to std::unordered_map to get constant-time
look-ups
2) Lengthen progress-reporting intervals to spend more time doing work
and less time talking about it
3) Reverse order of SHAPE_LINE_CHAINs in thermal intersection checks to
make (much) better use of bbox caches
4) Don't re-generate bboxes we already have
5) Fix some autos that weren't by reference (and were therefore copying
large datasets)
6) Rename delta progressDelta so it's easier to search for in future
7) Get rid of a few more autos (because I don't like them)
8) Pass large items to lambdas by reference

Fixes https://gitlab.com/kicad/code/kicad/issues/12130
2022-08-03 11:59:42 +01:00
Jeff Young 6f49b57f9b Cleanup & performance enhancements. 2022-08-01 13:09:51 +01: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