The standard already exists. We are working on a free implementation.
I’m still confused.
Everyone is, and this (together with lack of funding) has caused a lot of delay. Let me try and explain.
We describe how IEEE 1364-2005 can be used in free software tools to exchange schematics. (PCB and layout will be next, but this will fit into the framework without too much hassle.) Imagine two schematic editors that share a data format, just like gcc and clang share the C input language, and similar to how svn and git share the patch format. Use one or another or both in turns to do the work.
The question is how to get the schematic from one editor into the other. Simulating/analysing the circuit requires (at least) the information in the schematic, hence the exchange is the first problem to address.
At this stage, text editors share ASCII encoding, and more recently UTF8. But it works and opens new possibilities. Imagine it didn’t.
Also note that I still struggle with the idea that simulation models are expected to be provided by the simulator
Sadly, this is common practice and lock-in is the consequence. The IEEE standards (+ the AMS extenions to it) describe how simulation models need to be written, so they can be considered user input and no longer “part of a simulator”. And this is where we want to be. Basically you need not to worry about simulator provided models.
Remember Verilog has provided logic gate macros from the onset, the Verilog-AMS LRM defines “SPICE primitives”. Think of these as a standard library, but an optional one. You may want to use a C standard library when you write a C program, but circuits can be built purely with your own components.
But for that I first need a clear idea what expectations you have on the EDA tool.
Think “schematic editor” for now. The expectation on the schematic editor is, that it can read a schematic file, allows to edit a schematic, and save a schematic file. A schematic is not a component library. It is basically a list of parameterised device instances with connections between them (and some extra data to make the drawing).
Our data format leaves space for application-specific extensions. This way you could save the primary data in this format. Application-spefic means, it has no impact on the circuit model the schematic describes. E.g. “this wire is thick red”.
How can the EDA user provide a model for a component not provided by the simulator (yet)?
This is covered by the standard. In many existing tools, a component is a string that would instanciate a specific component of a specific architecture when using a specific simulator (much like embedded assembly code breaks portability of C code). Sometimes there is some mechanism baked into the schematic editor that produces such a string from the data available. Sure everyone does it in a different way.
The schematic editor we are looking for does not implement such a mechanism. A component should be instanciated following the standard rules, certainly not by the schematic editor or associated tools. Instanciation is something a simulator would have to do. Assigning responsibilities is important, because the desired electrical model behind an instance depends on the use case…
How can we control what version of models is used? For LibrePCB we claim projects to be 100% self-contained (not depending on any external data or tools) which should also be true for simulation to guarantee reproducible results.
This is very easy, but not the first step. It does not matter if you reference the device library (if it exists) or bundle the model source to improve self containedness. The relevant piece here is the standard. Whatever model you reference or ship has an implementation independent, simulator independent, unambiguous behaviour described by the modeller, and chosen by the circuit designer.
It is clear that you only get 100% reproducible results if you also fix the simulator and the hardware it runs on. You will find that correctness is more important than reproducibility.
my requirement for a standardized simulation exchange format that models need to be part of this format too.
Looks like we are on the same page here.
Hope this answers some of your questions.