|
From: Jim M. <jim...@gm...> - 2020-10-02 15:11:59
|
Hi Evan and Alan, Here are a few comments related to Alan's recent post about model processing. There is indeed special processing for each letter/component type. They all call the common whitespace skipping function INPgetNetTok() I mentioned earlier, which is called in a bit over 100 places. Currently, the "ngspice" format of SPICE is essentially being used as an intermediate language. Ngspice supports many flavors of SPICE used by various software implementations of SPICE such as LTspice, and it accomplishes much of this support by a preprocessing that translates the relatively small differences into the format that is native ngspice. If a more general format is selected, a good approach may be to decouple the parsing problem into an independent step where any SPICE format first gets transformed to it and then the parsing of the new format. For any problem that takes a long time to run, the input processing should not account for a significant amount of the time, and the added translation should not even be noticeable. The choice of the new format should be considered carefully. Something to be aware of is that the current input processing is complex with many steps, so major changes like a new format will not be at all trivial to implement. However, a clean modular unit to do the parsing would be helpful in making the ngspice source code clearer and easier to maintain and modify. Jim [image: Mailtrack] <https://mailtrack.io?utm_source=gmail&utm_medium=signature&utm_campaign=signaturevirality5&> Sender notified by Mailtrack <https://mailtrack.io?utm_source=gmail&utm_medium=signature&utm_campaign=signaturevirality5&> 10/02/20, 10:55:40 AM |