kicad-developers team mailing list archive
-
kicad-developers team
-
Mailing list archive
-
Message #26668
Re: Spice simulation on windows.
-
To:
Nick Østergaard <oe.nick@xxxxxxxxx>
-
From:
Maciej Sumiński <maciej.suminski@xxxxxxx>
-
Date:
Mon, 17 Oct 2016 10:14:34 +0200
-
Authentication-results:
spf=pass (sender IP is 188.184.36.50) smtp.mailfrom=cern.ch; lists.launchpad.net; dkim=none (message not signed) header.d=none;lists.launchpad.net; dmarc=bestguesspass action=none header.from=cern.ch;
-
Cc:
KiCad Developers <kicad-developers@xxxxxxxxxxxxxxxxxxx>
-
In-reply-to:
<CAOuK9LgWWdsXi+OSbEq00GN3sNLn6RZVc=pspxQOH98chCHdZA@mail.gmail.com>
-
Spamdiagnosticmetadata:
NSPM
-
Spamdiagnosticoutput:
1:99
-
User-agent:
Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.3.0
Hi Nick,
Thank you for testing the patch. I have just committed it to the master
branch.
Regards,
Orson
On 10/17/2016 08:59 AM, Nick Østergaard wrote:
> Hi Maciej
>
> It looks like your patchs works for the windows build. At least I
> don't get the errors that Wayne mentioned and I see a square wave with
> the patch applied. So committing that will essentially fix the
> nightlies.
>
> Additionally I noticed a small bug with the plot view. When resizing
> the window in any size, the y-axis will increase in value, which will
> make the graph smaller. This does not happen when maximizing the
> window.
>
> 2016-10-14 15:30 GMT+02:00 Maciej Sumiński <maciej.suminski@xxxxxxx>:
>> Yes, I override three Spice variables:
>>
>> - unset interactive
>> Disable interactive mode. You should expect hang ups when the option is
>> enabled and you get an error during parameter evaluation (it asks you
>> whether you want to continue, but there is no way to confirm).
>>
>> - set noaskquit
>> Do not ask the user whether to quit the simulation.
>>
>> - set nomoremode
>> Disables stopping output until a return key is pressed whenever there is
>> a large number of lines to be displayed.
>>
>> I hope these three settings are reasonable. I override them as they have
>> no meaning when ngspice is used as a shared library, but in a different
>> configuration they cause troubles. Note that I do not put them into any
>> config files, these options are set only when simulation is run in KiCad.
>>
>> Regards,
>> Orson
>>
>> On 10/14/2016 03:12 PM, Wayne Stambaugh wrote:
>>> I didn't look that carefully but are you overriding any settings from
>>> the user config? I would prefer that you didn't so I don't spend time
>>> trying to figure out why my config settings are not being respected.
>>>
>>> On 10/13/2016 11:13 AM, Maciej Sumiński wrote:
>>>> It still loads the original configuration files (when possible) and
>>>> afterwards it checks a few extra locations (relative to the executed
>>>> binary path). This gives a chance to package maintainers to provide a
>>>> proper spinit file. If it fails to find a custom spinit file, but it
>>>> detects a path to codemodel libraries correctly, it will just load them.
>>>>
>>>> Regards,
>>>> Orson
>>>>
>>>> On 10/13/2016 04:08 PM, Wayne Stambaugh wrote:
>>>>> Does this patch override the users configuration or does it just solve
>>>>> the default configuration issue on windows and osx? If so, that's not a
>>>>> good thing. I'm fine if respects the users config. I still stand by my
>>>>> original investigation that this is a package configuration issue, not a
>>>>> broken code issue but if no one is willing to resolve those issues and
>>>>> your patch respects the user config, then I'm OK with it.
>>>>>
>>>>> On 10/13/2016 9:49 AM, Maciej Sumiński wrote:
>>>>>> Finally, I could get back to the issue. If we really focus about the
>>>>>> consequences, the real problem is not that spinit is not processed, but
>>>>>> the codemodel libraries are not loaded.
>>>>>>
>>>>>> Looking at the default spinit file:
>>>>>> - most of the lines are comments
>>>>>> - one causes problems ('set interactive', has to be unset later)
>>>>>> - three others have no special meaning in shared library mode (aliases
>>>>>> and 'set x11lineararcs')
>>>>>> - the only meaningful lines are the ones that load codemodel libraries
>>>>>>
>>>>>> To fix the problem, there is a patch which:
>>>>>> - Allows ngspice to load the default spinit/.spiceinit files (no changes
>>>>>> here).
>>>>>>
>>>>>> - Looks for codemodel files in a few paths relative to eeschema
>>>>>> executable. If a valid path is found, then an ngspice variable __CMPATH
>>>>>> is set.
>>>>>>
>>>>>> - After the default initialization, looks for spiceinit (note it is
>>>>>> spiceinit not .spiceinit) file in a few paths relative to eeschema
>>>>>> executable. If one is found, then it is executed. If we decide to
>>>>>> provide our spiceinit file (see the attachment), then thanks to __CMPATH
>>>>>> variable we can point to the right codemodel directory.
>>>>>>
>>>>>> - If no spiceinit was found, but we know the correct path to codemodels,
>>>>>> then they are simply loaded.
>>>>>>
>>>>>> - Unsets a few variables which may cause simulator hangups.
>>>>>>
>>>>>> Once the patch is committed, codemodels should work out of the box for
>>>>>> the common msys2 builds and nightly Windows installers, even without a
>>>>>> custom spiceinit. If OSX bundles provide codemodel libraries, then there
>>>>>> is a chance it will work for them as well, otherwise we can add another
>>>>>> search path.
>>>>>>
>>>>>> I know it may look like an ugly hack, but sincerely I have no better
>>>>>> idea at the moment. I am going to leave it here for comments for a few
>>>>>> days, if there are no objections, I will commit the changes.
>>>>>>
>>>>>> Regards,
>>>>>> Orson
>>>>>>
>>>>>> On 10/06/2016 05:53 PM, Wayne Stambaugh wrote:
>>>>>>> I have some additional information that may prove useful:
>>>>>>>
>>>>>>> 1) Using relative paths in the spinit file does not work on windows.
>>>>>>>
>>>>>>> 2) Placing a spinit file in the path where the ngspice and libngspice
>>>>>>> binaries reside works with no need to set any environment variables.
>>>>>>>
>>>>>>> Option 2 could be used by the installer. The installer itself would
>>>>>>> have to create the spinit file by substituting the install path for the
>>>>>>> path of the .cm files. I'm not sure if this would work on osx. Maybe
>>>>>>> one of our osx devs could test this. If it does, than that would
>>>>>>> resolve the simulation init issues.
>>>>>>>
>>>>>>> I've attached a simple circuit that demonstrates the issue. When the
>>>>>>> .cm files are not located, the simulation will run with the following
>>>>>>> warnings and cause the output of the op-amp to be an impossibly high 260V:
>>>>>>>
>>>>>>> Error on line 0 :
>>>>>>> a$poly$e.xu1.eos %vd [ xu1.53 xu1.98 ] %vd ( xu1.3 net-_u1-pad1_ )
>>>>>>> a$poly$e.xu1.eos
>>>>>>> MIF-ERROR - unable to find definition of model a$poly$e.xu1.eos
>>>>>>> Warning: Model issue on line 0 :
>>>>>>> .model a$poly$e.xu1.eos spice2poly coef = [ 1.7e-3 1 ] ...
>>>>>>> Unknown model type spice2poly - ignored
>>>>>>> Error on line 0 :
>>>>>>> a$poly$e.xu1.eref1 %vd [ vdd 0 0 0 ] %vd ( xu1.98 0 ) a$poly$e.xu1.eref1
>>>>>>> MIF-ERROR - unable to find definition of model a$poly$e.xu1.eref1
>>>>>>> Warning: Model issue on line 0 :
>>>>>>> .model a$poly$e.xu1.eref1 spice2poly coef = [ 0 0.5 0.5 ] ...
>>>>>>> Unknown model type spice2poly - ignored
>>>>>>> Error on line 0 :
>>>>>>> a$poly$e.xu1.eref2 %vd [ net-_u1-pad1_ 0 /out 0 ] %vd ( xu1.97 0 )
>>>>>>> a$poly$e.xu1.eref2
>>>>>>> MIF-ERROR - unable to find definition of model a$poly$e.xu1.eref2
>>>>>>> Warning: Model issue on line 0 :
>>>>>>> .model a$poly$e.xu1.eref2 spice2poly coef = [ 0 0.5 0.5 ] ...
>>>>>>> Unknown model type spice2poly - ignored
>>>>>>> Error on line 0 :
>>>>>>> a$poly$e.xu1.eo3 %vd [ xu1.98 xu1.30 ] %vd ( vdd xu1.42 ) a$poly$e.xu1.eo3
>>>>>>> MIF-ERROR - unable to find definition of model a$poly$e.xu1.eo3
>>>>>>> Warning: Model issue on line 0 :
>>>>>>> .model a$poly$e.xu1.eo3 spice2poly coef = [ 0.7175 0.5 ] ...
>>>>>>> Unknown model type spice2poly - ignored
>>>>>>> Error on line 0 :
>>>>>>> a$poly$e.xu1.eo4 %vd [ xu1.30 xu1.98 ] %vd ( xu1.44 0 ) a$poly$e.xu1.eo4
>>>>>>> MIF-ERROR - unable to find definition of model a$poly$e.xu1.eo4
>>>>>>> Warning: Model issue on line 0 :
>>>>>>> .model a$poly$e.xu1.eo4 spice2poly coef = [ 0.7355 0.5 ] ...
>>>>>>> Unknown model type spice2poly - ignored
>>>>>>> Reducing trtol to 1 for xspice 'A' devices
>>>>>>> Doing analysis at TEMP = 27.000000 and TNOM = 27.000000
>>>>>>> Warning: vv3: no DC value, transient time 0 value used
>>>>>>>
>>>>>>> Let me know if you have any other questions or comments.
>>>>>>>
>>>>>>> Cheers,
>>>>>>>
>>>>>>> Wayne
>>>>>>>
>>>>>>> On 10/6/2016 10:56 AM, Nick Østergaard wrote:
>>>>>>>> Hi Maciej
>>>>>>>>
>>>>>>>> In the latest nightlies they are now stored in lib/ngspice/
>>>>>>>>
>>>>>>>> I guess that should equate to a relative path to the executables to
>>>>>>>> ../lib/ngspice/*.cm, given that the exe's are in the bin folder on the
>>>>>>>> same level as lib.
>>>>>>>>
>>>>>>>> So feel free to submit your fix. Also, are there any demos that make
>>>>>>>> use of those cm libs such that it can be tested?
>>>>>>>>
>>>>>>>> Nick
>>>>>>>>
>>>>>>>> 2016-10-05 23:16 GMT+02:00 Maciej Sumiński <maciej.suminski@xxxxxxx>:
>>>>>>>>> Hi Nick,
>>>>>>>>>
>>>>>>>>> Are the .cm files included in the Windows nightlies installer? If so,
>>>>>>>>> could you tell me what is the relative path to the directory storing
>>>>>>>>> them? The easiest way to fix the problem is to send a few commands to
>>>>>>>>> ngspice before a simulation starts.
>>>>>>>>>
>>>>>>>>> Regards,
>>>>>>>>> Orson
>>>>>>>>>
>>>>>>>>> On 10/05/2016 10:23 PM, Nick Østergaard wrote:
>>>>>>>>>> Is this really needed? What exactly does the .cm files provide?
>>>>>>>>>>
>>>>>>>>>> When I run the latest nightly I can run the allen key demo without
>>>>>>>>>> problems as far as I can see. Maybe some other simulation modes do
>>>>>>>>>> not work properly?
>>>>>>>>>>
>>>>>>>>>> 2016-09-30 14:37 GMT+02:00 Wayne Stambaugh <stambaughw@xxxxxxxxx>:
>>>>>>>>>>> That would work as a long term solution as well. I was trying to at
>>>>>>>>>>> least prove that it can be done without make changes to the current
>>>>>>>>>>> code. Until a full solution is implemented, users (me) will have an
>>>>>>>>>>> interim solution if they want to use the spice simulator.
>>>>>>>>>>>
>>>>>>>>>>> Cheers,
>>>>>>>>>>>
>>>>>>>>>>> Wayne
>>>>>>>>>>>
>>>>>>>>>>> On 9/30/2016 3:40 AM, Maciej Sumiński wrote:
>>>>>>>>>>>> We have also discussed on IRC another possibility, which is loading the
>>>>>>>>>>>> extensions manually instead of having ngspice process its initialization
>>>>>>>>>>>> file (spinit). This way we can adjust the paths during runtime.
>>>>>>>>>>>>
>>>>>>>>>>>> Regards,
>>>>>>>>>>>> Orson
>>>>>>>>>>>>
>>>>>>>>>>>> On 09/29/2016 08:51 PM, Wayne Stambaugh wrote:
>>>>>>>>>>>>> After much cursing and many config attempts, I finally have a working
>>>>>>>>>>>>> spice simulation solution on windows. I'm guessing similar parallels
>>>>>>>>>>>>> can be applied to osx as well.
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> Option A: running from a mingw32 or mingw64 terminal.
>>>>>>>>>>>>>
>>>>>>>>>>>>> 1) copy the installed spinit file (by default will be in
>>>>>>>>>>>>> ${MINGW-PACKAGE-PREFIX}/share/ngspice/scripts) to ~/.spiceinit.
>>>>>>>>>>>>> 2) change the msys2 paths (/mingw##) in ~/.spiceinit to absolute windows
>>>>>>>>>>>>> paths with / not \ (in my case C:/msys64/mingw##).
>>>>>>>>>>>>> 3) Launch kicad.exe from the terminal.
>>>>>>>>>>>>>
>>>>>>>>>>>>> I realize this is not very elegant and will only work with either the 64
>>>>>>>>>>>>> or 32 bit mingw (not both without editing .spiceinit) but it works and
>>>>>>>>>>>>> is handy for mingw users.
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> Option B: configuring windows and run kicad from a shortcut.
>>>>>>>>>>>>>
>>>>>>>>>>>>> 1) locate the installed spinit file
>>>>>>>>>>>>> ($INSTALL_PATH/share/ngspice/scripts) and change the msys2 paths
>>>>>>>>>>>>> (/mingw##) to absolute windows paths with / not \ (in my case
>>>>>>>>>>>>> C:/msys64/mingw##).
>>>>>>>>>>>>> 2) Run kicad, open the config paths dialog, and add an environment
>>>>>>>>>>>>> variable SPICE_LIB_DIR with path to the spinit file minus the last
>>>>>>>>>>>>> "scripts" path ($INSTALL_PATH/share/ngspice).
>>>>>>>>>>>>>
>>>>>>>>>>>>> I also tried copying the .spiceinit file from option A to %USERPROFILE%
>>>>>>>>>>>>> but that did not work when launching kicad from a shortcut.
>>>>>>>>>>>>>
>>>>>>>>>>>>> Option B a cleaner solution but still requires some configuration by the
>>>>>>>>>>>>> user. This is going to be an interesting problem to solve for our
>>>>>>>>>>>>> package devs. We need to figure out a way to generate or modify the
>>>>>>>>>>>>> spinit file base on where it gets installed by the installer on
>>>>>>>>>>>>> platforms where this is relevant. We will also either have to set an
>>>>>>>>>>>>> the SPICE_LIB_DIR environment variable or teach ngspice how to find the
>>>>>>>>>>>>> correct spinit file at run time.
>>>>>>>>>>>>>
>>>>>>>>>>>>> At least now windows users have a way to have the same functional spice
>>>>>>>>>>>>> simulation as linux users.
>>>>>>>>>>>>>
>>>>>>>>>>>>> Cheers,
>>>>>>>>>>>>>
>>>>>>>>>>>>> Wayne
>>>>>>>>>>>>>
>>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>>> Mailing list: https://launchpad.net/~kicad-developers
>>>>>>>>>>>>> Post to : kicad-developers@xxxxxxxxxxxxxxxxxxx
>>>>>>>>>>>>> Unsubscribe : https://launchpad.net/~kicad-developers
>>>>>>>>>>>>> More help : https://help.launchpad.net/ListHelp
>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> _______________________________________________
>>>>>>>>>>> Mailing list: https://launchpad.net/~kicad-developers
>>>>>>>>>>> Post to : kicad-developers@xxxxxxxxxxxxxxxxxxx
>>>>>>>>>>> Unsubscribe : https://launchpad.net/~kicad-developers
>>>>>>>>>>> More help : https://help.launchpad.net/ListHelp
>>>>>>>>>
>>>>>>
>>>>
>>>>
>>>
>>
Attachment:
signature.asc
Description: OpenPGP digital signature
References
-
Spice simulation on windows.
From: Wayne Stambaugh, 2016-09-29
-
Re: Spice simulation on windows.
From: Maciej Sumiński, 2016-09-30
-
Re: Spice simulation on windows.
From: Wayne Stambaugh, 2016-09-30
-
Re: Spice simulation on windows.
From: Nick Østergaard, 2016-10-05
-
Re: Spice simulation on windows.
From: Maciej Sumiński, 2016-10-05
-
Re: Spice simulation on windows.
From: Nick Østergaard, 2016-10-06
-
Re: Spice simulation on windows.
From: Wayne Stambaugh, 2016-10-06
-
Re: Spice simulation on windows.
From: Maciej Sumiński, 2016-10-13
-
Re: Spice simulation on windows.
From: Wayne Stambaugh, 2016-10-13
-
Re: Spice simulation on windows.
From: Maciej Sumiński, 2016-10-13
-
Re: Spice simulation on windows.
From: Wayne Stambaugh, 2016-10-14
-
Re: Spice simulation on windows.
From: Maciej Sumiński, 2016-10-14
-
Re: Spice simulation on windows.
From: Nick Østergaard, 2016-10-17