I have spent a few hours over the weekend really t...
# ihp-sg13g2
r
I have spent a few hours over the weekend really trying to design with the BJT/HBT models. But I am having little luck. The noise figure simulations seem to be fixed once non-ideal components are used. but I am still worried that it is a bad extrapolation that is causing the weird behavior. Once I realized the NF is believable (at least) I started designing matching circuits. At 60 GHz this needs to be distributed components. But I cannot seem to make the models work in ng-spice with S-parameter touchstone files. So, I would simulate using open EM, and generate a s2p file. But then the s-parameter sim in ng spice just bombs out on me. Has anyone designed with SnP files so far? Any advice? 🙂
To just further expand on the problem: I have a circuit with a NPN transistor, and idealish components running an S-parameter sim. Without attaching a SnP file component to the actual circuit (I just short all the outputs of the SnP file component to ground), I get the following error. If I disable the SnP component, the sim runs fine. The error message I get: Ngspice started... Using SPARSE 1.3 as Direct Linear Solver Warning: singular matrix: check node _net16 Note: Starting dynamic gmin stepping Warning: singular matrix: check node q.xnpn13g2v2.q.x1.qnpn13g2v#baseBI Warning: singular matrix: check node _net16 Warning: Dynamic gmin stepping failed Note: Starting true gmin stepping Warning: singular matrix: check node _net16 Warning: singular matrix: check node _net16 Warning: singular matrix: check node _net16 Warning: True gmin stepping failed Note: Starting source stepping Warning: source stepping failed Note: Transient op started Note: Transient op finished successfully
k
@RikusNel could you please share the testcase ? Anyway the ngspice log throws some warning messages what is kind of default behavior (I guess you can suppress the verbosity level). Remember also that the PDK models and respective simulations are under development so we are doing our best to improve booth. Thank you for sharing your experience.
r
@Krzysztof Herman, I understand, and it is the reason I am asking, as to see if I am missing something or if it is an issue. And if it is an issue, I can bring it to your attention 🙂 The warnings I get from the sim message is not the problem, the issue is there is no info in the data file. So it errors out, without telling me much. Except that gmin stepping failed, and that the matrix is singular, on a device that is not connected to the problem circuit (the snp file component), How would you like me to share the testcase so it is best for you? Can I upload the example schematic and snp file?
k
@RikusNel yes, please share the testcase
r
In the schematic you can just activate/deactivate the SnP file by clicking on it and pressing ctrl D. When the file is activated the simulation crashes, when it is deactivated it works. The idea is to use that SnP file to design matching networks, currently it is two coupled lines. So P1 and P2 is one line, and P3, P4 is another. But the moment that file is just in simulation the engine crashes. But if I have it alone in s4ptest.sch then ngspice works. So I am perplexed.
k
thank you @RikusNel
@RikusNel I have simulated your circuits and have not found any issues, the simulation works (not speaking about QoR) but in both cases the netlist is generated and simulated without any crush. Please find some netilist attached. The one with interactive suffix you can simulate inside ngspice calling
source netlist_SP_active_interactive.cit
command. I use ngspice 42 and Qucs-S qucs-s
qucs s24.2.0 (edc6bd8f)
development version. Please find attached the netlists:
l
I kind of circumvented the snp in ngspice problem and ran the vector fitting function inside scikit-rf to create me a spice netlist. I didn't know that ngspice could take snp files and successfully run simulations.