Skip to content

Latest commit

 

History

History
27 lines (17 loc) · 1.2 KB

README_OSDI.md

File metadata and controls

27 lines (17 loc) · 1.2 KB

OSDI implementation for NGSPICE

OSDI (Open Source Device Interface) is a simulator independent device interface, that is used by the OpenVAF compiler. Implementing this interface in NGSPICE allows loading Verilog-A models compiled by OpenVAF. The interface is fixed and does not require the compiler to know about NGSPICE during compilation. NGSPICE also doesn't need to know anything about the compiled models at compilation. Therefore, these models can be loaded dynamically at runtime.

To that end the osdi command is provided. It allows loading a dynamic library conforming to OSDI. Example usage: osdi diode.osdi.

If used within a netlist the command requires the pre_ prefix. This ensures that the devices are loaded before the netlist is parsed.

Example usage: pre_osdi diode.osdi

If a relative path is provided to the osdi command in a netlist, it will resolve that path relative to the netlist, not relative to current working directory. This ensures that netlists can be simulated from any directory

Build Instructions

To compile NGSPICE with OSDI support ensure that the --enable-predictor and --enable-osdi flags are used. The compile_linux.sh file enables these flags by default.