This shows you the differences between two versions of the page.
gnucap:manual:tech:spice [2025/05/14 13:36] felixs link spice2verilog, add todo list |
gnucap:manual:tech:spice [2025/05/18 14:26] (current) felixs present |
||
---|---|---|---|
Line 8: | Line 8: | ||
Gnucap Spice support was originally implemented during Spice2 times. More features, mainly behavioural modelling were added, with goals similar to Spice3, but using a more regular syntax. As a consequence, Gnucap is not compatible with any Spice3 derivative out there. | Gnucap Spice support was originally implemented during Spice2 times. More features, mainly behavioural modelling were added, with goals similar to Spice3, but using a more regular syntax. As a consequence, Gnucap is not compatible with any Spice3 derivative out there. | ||
+ | |||
+ | ==== Present ==== | ||
+ | |||
+ | Gnucap is based on plugins, including command plugins and "language" | ||
+ | plugins. The lang_spice plugin provides Spice compatibility, to some | ||
+ | extent. So, mostly we can use Spice netlist. By "mostly", we acknowledge that | ||
+ | there are some features that might be in one and not the other. | ||
==== Future ==== | ==== Future ==== | ||
- | Since Gnucap has moved to plugins around 2010, the Spice parsing is essentially separate from the core library. The plugin apps/lang_spice.cc works well for what it was meant to do (including some compatibility kludges with ancient commercial Spices). It can be thought of as an example or template for more specialised and higher levels of compatibility, if so required. | + | Since Gnucap has moved to plugins around 2010, the parsing is essentially separate from the core library. |
+ | |||
+ | The use of plugins gives Gnucap the flexibility to meet several | ||
+ | incompatible ways to do it. Having a compatibility mode could make it | ||
+ | easy for users to try it, then to discover what we have and they don't. | ||
+ | |||
+ | The plugin apps/lang_spice.cc works well for what it was meant to do (including some compatibility kludges with ancient commercial Spices). It can be thought of as an example or template for more specialized and higher levels of compatibility, if so required. | ||
+ | |||
+ | This concept is also demonstrated in Gnucsator, a (partial) drop in replacement for Qucsator, the default simulator used by the Qucs project. | ||
Spice language plugins could be used as a basis for a translation from Spice to Verilog, possibly in combination with modelgen-verilog. There is an outline [[spice2verilog|here]]. | Spice language plugins could be used as a basis for a translation from Spice to Verilog, possibly in combination with modelgen-verilog. There is an outline [[spice2verilog|here]]. | ||
Line 50: | Line 65: | ||
- a ''scale'' option (seen in ngspice) | - a ''scale'' option (seen in ngspice) | ||
+ | |||
- raw file output | - raw file output | ||
+ | |||
- B sources (?) | - B sources (?) | ||