I have some problem when doing the PSS/PAC/PSP simulation with Nport from the analoglib.
I'm using Spectre Version 22.214.171.1243.isr7 64bit and Virtuoso IC6.1.8-64b.
I wrote a S4P touchstone file to model an ideal IQ coupler and simulated it with Nport component from analoglib.
I tried PSS/PSP/PAC simulations with both shooting and HB engine.
The result of HB engine is correct, funtioning exactly as an ideal IQ coupler. While the result of shooting engine is completely wrong.
I used the PSS shooting engine for NPORT simulation with Spectre 14 and Virtuoso IC6.1.6 before. It works very well.
I wonder whether there is a way to get NPORT works with PSS shooting engine in the new Spectre/Virtuoso version.
For the Nport setup, I tried nearly all the options for passivity, causilty, interpolation methods.
One weird thing is that no matter which interpolation methods I chose (linear, rational), the final fitting is always based on BBspice.
Any comment is appreciated. Thank you.
Perhaps you can post your s-parameter file? Normally I would expect an "ideal" IQ coupler to be something that would be difficult to simulate in the time-domain because it represents something that is very hard to model in the time-domain (it would probably have passivity/causality problems). So almost certainly, bbspice would be problematic, but even linear could be tricky. With hb it would be easier since that is a frequency-domain analysis, but shooting could be a challenge.
What is odd is that there are some automatic methods to switch to linear if bbspice modelling is problematic, but I wouldn't expect it to auto-switch the other way - that's what I'd like to investigate.
Note that "rational" should never be used; it's been obsolete for many years and in fact in later IC6.1.8 ISRs (ISR9 onwards) it has been removed as a choice on the port component.
I'd normally point to Tawna's 7 Habits of Highly Successful S-Parameters (Spectre 20.1, 19.1 and IC6.1.8 ISR9) but I think the issue here is a combination of an ideal model and something strange going on.
Thank you for your quick response. I cannot upload my s-paramtere file directly due to unknown error. An screenshot is attached in stead.
I read the 7 Habits of Highly Successful S-Parameters (Spectre 20.1, 19.1 and IC6.1.8 ISR9). However, the Nport interpolation setup is different with what I have. I don't have the default option (auto_switch) and rational is stii there. . I didn't see nportbbsversion option in simulator option (I saw all the nports options except nportbbsversion). It turns out that the version I used is ISR 7.
I agree that ideal coupler might be the source of problem. I will work with HB engine when using components like that.
Thank you again.
Well, I'm not going to type in the file from your image, and my attempts to use OCR to convert it to something usable failed (too many characters in the wrong place - not helped by your image being line wrapped in the wrong places). Please try giving the file a ".txt" suffix and uploading it via Insert->Insert Image/Video/File
Sorry. I didn't know that I need to change the suffix. Here it is.
As I suspected, the s-parameters represent something totally non-physical - you can't have constant magnitude and 90-degree phase shift for s13 and s24 across a 60GHz bandwidth. As reported in the log files, the errors when trying to get a bbspice rational fit for this are huge, so it makes no sense. It's also likely to cause problems for time-domain analyses even with linear mode as the convolution-based approach will struggle to produce something that makes sense in the time-domain (because it's impossible to realise this in real life):
WARNING (CMI-2837): In file `/export/home/andrewb/tools/spectre/Ideal_90_coupler.s4p', after causality enforcement, the maximum in-band error is 0.000104%, detected in S1_1 at 59.9854 GHz. Data may be non-causal. WARNING (CMI-2971): After causality enforcement, the maximum passivity violation is 91.750461% at 101.865 GHz. Data may be non-passive.
Anyway, the reason for the problem is that in the IC version you're using, the only choices for Interpolation Method were linear, spline, rational and bbspice. Unfortunately if you left the setting at linear, then as this is the default, it gets omitted from the netlist. Then spectre kicks in and has the automatic switch to bbspice for PSS kick in (because usually this is the best option for PSS). In later IC ISRs, there's the new choice of "default" which does this, and if you explicitly pick "linear" then it will honour that.
There are two ways to solve this (other than switching to a newer ISR subversion). One is to use the additional parameter list in the rarely used parameters on the nport as below:
The alternative (because again, this option is not on the form in the version you're using) is to go to Simuilation->Options->Analog, Miscellaneous tab and enter "nport_default_interp=linear" in the Additional arguments field:
In later IC618 ISRs, this choice is on the Component tab.
Either way, this is risky with shooting PSS anyway, so be warned...