Ibis model induce "Unable to read string" error

Hello everybody,
I’m an electronic engineer and electronic enthusiast :slight_smile:
I’m a long long time Altium Designer’s user, and I’m switching to Kicad due to my new job :slight_smile:
I drawed my first schematic very easily and now I would want to try the simulation module (usually I’m using LTSpice for simulation).
I imported an Ibis model from Nexperia and want to include it in my schematic.
So, I go into “symbol properties”, then click on “Simulation model” button (it then displays an error and I click on “OK button”).
image

Then I click on "Spice model from file (*.lib, *.sub or *.ibs) and choose my Ibis model, but it shows this error:
"Unable to read string, input is empty. Error on line 46. Fichier IBIS non valide ‘/home/xxx/xxx/mymodel.ibs’ "

image

If I look at line 46 into the model, there’s nothing special apart theses few lines:

[Disclaimer]
    Nexperia Semiconductors warrants and represents that the IBIS model
    identified herein is owned by Nexperia Semiconductors (Nexperia). The

Can you help me ?
Thanks a lot in advance,

Pascal


Mod edit: I replaced the imgur links with direct uploads of the images, so they show in your post.

I don’t have any experience with Ibis models personally, but to help others help you it’d be good to include your KiCad version and OS along with a link to the model and a minimally reproducible schematic to play with. (That schematic may simply be one symbol and some power rails.)

If you want to investigate further, the underlying simulation software for KiCad is called ngspice and it has extensive documentation and tutorials: Ngspice, the open source Spice circuit simulator - Intro

1 Like

The official manual is found at Schematic Editor | 7.0 | English | Documentation | KiCad .

In addition to what Scandey already has said:
I am not aware of anybody active here in this forum having ever used the ibis feature. So you are sort of a pioneer. As the manual is short as of ibis, you will have to know in detail what you want to do.

Hi,
thanks a lot for your reply.
Here version’s infos from Kicad:

Application: KiCad x86_64 on x86_64
Version: 7.0.9-7.0.9~ubuntu20.04.1, release build
Libraries:
wxWidgets 3.2.1
FreeType 2.10.1
HarfBuzz 6.0.0
FontConfig 2.13.1
libcurl/7.68.0 OpenSSL/1.1.1f zlib/1.2.11 brotli/1.0.7 libidn2/2.2.0 libpsl/0.21.0 (+libidn2/2.2.0) libssh/0.9.3/openssl/zlib nghttp2/1.40.0 librtmp/2.3
Platform: Ubuntu 20.04.6 LTS, 64 bit, Little endian, wxGTK, xubuntu, x11
Build Info:
Date: Nov 8 2023 19:01:27
wxWidgets: 3.2.1 (wchar_t,wx containers) GTK+ 3.24
Boost: 1.71.0
OCC: 7.5.2
Curl: 7.88.1
ngspice: 38
Compiler: GCC 9.4.0 with C++ ABI 1013
Build settings:
KICAD_SPICE=ON

The model I would want to use is a Schmitt trigger from Nexperia:
https://assets.nexperia.com/documents/ibis-model/lvc1g14.ibs
And finally, as I’m new on this forum, I can’t upload files. So you’ll find my schematic here:

I’ll look the link you give me.
Thanks a lot in advance for your help :slight_smile:

To solve that last issue (unable to upload due to being a new member), check out the New Member FAQ. The TLDR is you have to read 30 posts in 5 different topics for 10 minutes in order to upload files.

I quickly looked on the Ngspice site, and it seems that Ibis models are not yet supported:

Should work in master:

IBIS: add stub for Model Spec; support empty strings in line with keywords. (08e6e025) · Commits · KiCad / KiCad Source Code / kicad · GitLab

IBIS support is a plain KiCad/Eeschema issue. ngspice thus does not need to have any intrinsic IBIS support.

Eeschema will create spice compatible models from the *.ibs file data, and finally send them to ngspice for simulation. Reading data from *.ibs and creating the model is therefore handled completely by Eeschema.

There are some IBIS symbols in the Simulation_SPICE symbol library.

Unfortunately I have not (yet) found any example for an IBIS simulation in the KiCad distribution. So some experimenting is required.

1 Like

I intend to do this and had some discussions with Fabien about it but have not gotten around to it.

Backported to 7.0 too:

Will you do this experiments on short notice?

Does is work or not?

It is advertized, but I do not see any examples. Who is responsible for this piece of code? People start asking, but as the simulator guy I am unable to answer any questions about IBIS.

I only fixed the parsing errors, but I’m not sure how to configure or use IBIS models.

@Drinausaur

IBIS in current 7.0.9 is broken.

A fix (IBIS simulations broken (#16223) · Issues · KiCad / KiCad Source Code / kicad · GitLab) has been uploaded to 7 bug fix repository (will be available in upcoming 7.0.10) and to current 7.99 nightlies (available now). Thanks to Keeth and Seth for such ultra-fast action!

With today’s nightly on MS Windows I have been able to run a demo (provided by Keeth).
IBIS.7z (11.8 KB)

2 Likes

I have just had a look at the project you have offered for download.

If you want to simulate this astable oscillator, then the choice of an IBIS model for circuit simulation is the completely wrong choice!

Why?

The IBIS model does not describe the inner workings of an integrated circuit. IBIS models are made to describe the interfaces of ICs (output drivers, input receivers), but not the circuit functionality. They are made for specialists to simulate the high speed behavior of interconnects between integrated circuits (so called signal integrity).

For a simple circuit simulation (of the oscillator) you will need an ordinary spice model for the circuit. I don’t know if Nexperia has one, but TI does. After attaching the model, you have to select the proper pin sequence, as symbol and model pin numbers do not match.

In your circuit you have used a battery symbol. This is not a valid spice power supply. You should use a VDC symbol from Simulation_Spice library.

You have chosen a 1 Meg resistor to charge the capacitor. This is probably too large, compared to the input resistance of the Schmitt-Trigger. The capacitor might not charge fast enough…

With a 100k resistor and KiCad 7.99 I then have got

1 Like

There’s now an IBIS demo schematic in the nightlies.

1 Like

I signed up just to say thanks to the devs for introducing the IBIS model feature. Using the latest nightly, I was able to simulate a microstrip with the help of the Simulation SPICE > IBIS_DRIVER part, along with the Simulation SPICE > TLINE part.

The TLINE part in the library is not set-up to use the ngspice TLINE model. So I had to copy the TLINE part to a local library and edit its simulation model. It was no big deal.

The Transmission Lines page of the Calculator Tools made determining the TLINE parameters a breeze.

I’ve been waiting for decades for IBIS support in a low-cost/free CAD tool. This is awesome!

I’m not expecting super-accurate results, and won’t be designing PC motherboards with this, but it is a nice tool for verifying the effect of series termination on a high-speed digital signal. It also lets you simulate the various drive speeds of GPIO outputs to check that you meet the timing requirements of the connected device.

Now to figure out how I can simulate crosstalk with this new feature. Any ideas?

3 Likes

I had more screenshots, but the forum won’t let me post more than one media item at a time.

Simulation of GPIO configured as medium speed, driving a 4cm-long 76Ohm microstrip via a 22Ohm series termination resistor, at 10MHz.

Close-up of ringing at the rising edge:

Welcome @ecorm

Read this FAQ for posting information.

Open three more topics and read eleven posts and you will promote yourself to Basic.