IBIS models within ngspice/KiCad

After my SPICE talk at KiCon, I was asked a question about IBIS models. I previously only dealt with IBIS models to get package parasitics and import them into LTspice for basic tests. It’s an easy task because you just look at the text file and pick out the numbers. However, after KiCon I delved back into IBIS stuff because I wanted to know more about the topic. First, a quick overview of IBIS can be found in either of these documents and the official website:

A basic rundown is that for complex parts, such as microcontrollers and FPGAs, it’s useful to characterize the input & ouput pin structures at the minimum without revealing to the public any internal semiconductor information. This helps you deal with physical phenomena while interfacing the pins which are still analog in nature, such as transmission line issues, overshoot/ringing, and other signal integrity nonsense.

I found a free Java web-app which can convert IBIS models into SPICE behavioral subcircuits in both ngspice and LTspice format. The only difference I can see between the two outputs is that LTspice uses single ampersand (&) for logical AND while ngspice uses double ampersand (&&). Anyway, I hate apps that require external connection to the internet for operation. So…I spent a night messing with the locally cached file and converting it into a simple Java .JAR file which can run completely offline. It’s a neat little tool so I thought I would post it here for anyone else interested. I only tested it on Windows, so it would be interesting to know if it works without issue on other OS’s.

UPDATE: 2019-11-09
They updated the software and it’s slightly smaller now so it can fit on this forum’s own file hosting system.
SPISIM_IBIS_V2019083001.jar (3.4 MB)


Heya Ste!

Thanks for taking enough of an interest in my question to dig around for the SPISIM Ibis-to-Spice translator. I was aware of this thing’s existence, but it appeared they’d taken it down because of Oracle’s change in license for commercial use of their Java VM.

I’ll give it a try under Linux when I get a chance and let you know how well it works.


Sure thing, Reece. Thanks for the question.

I should probably mention that this free tool only uses the linear ramp data instead of the data-points for the rising/falling waveforms (the V-T info within model). You can see that “Waveform data” is grayed out in the tool GUI. They explain this within the “Unlock” tab on their website for this software. It still results in a decent model, but I wanted to highlight that limitation.