I did see that there are three recent threads with very similar titles, but - unfortunately, with completely different problems described.
I use up-to-date MMSIM and IC5 (2012_2013 package installed on a 32 bit machine) and I have given a swap file to the PSS analysis. I am trying to get IIP3 post-layout simulation to run for my circuit (QRC used for extraction). I want it measured at 8 and 9 GHz with 200 MHz harmonics. I do only 6 steps for signals of power in the range of -20:5 dBm.
Nevertheless, the simulation breaks telling me - insufficient memory. During the simulation, it doesn't really use the file I gave it (<path>/Desktop/pss_swap - it's always 0 bytes). What it actually does is that it creates about twenty files called pss_swap_0, pss_swap_1, and so on, each of them about 1.2 GB. And it does this for every point of calculation.
Now, my question is, is it possible (and how?) to overcome this? If I choose a higher limit for extraction my S-parameters change, so I can not go higher on this. Less than 6 points... does it really make sense? Number of harmonics must remain the same since I need it calculated at certain frequencies.
Do you have any suggestions how to get this done?
Thank you very much for your time and effort.
This is a very quick reply, as I don't have time to delve into this....
You may want to contact Customer Support for additional assistance.
A 64-bit version of Spectre has been developed to handle large circuits that fail to simulate because of their size with the current 32-bit Spectre. By default, 32 bit spectre is used. To use 64 bit spectre, you can either:- set the following variable:setenv CDS_AUTO_64BIT spectre- pass "-64" as a command line option to spectreTo test what version of Spectre is being used, you can use the following:% spectre -debug3264 -V
A 64-bit version of Spectre has been developed to handle large circuits that fail to simulate because of their size with the current 32-bit Spectre. By default, 32 bit spectre is used.
To use 64 bit spectre, you can either:
- set the following variable:
setenv CDS_AUTO_64BIT spectre
- pass "-64" as a command line option to spectre
To test what version of Spectre is being used, you can use the following:
% spectre -debug3264 -V
Sr. Staff Support AE, Global Customer Support
Cadence Design Systems, Inc.
In reply to Tawna:
Another thing....it's important to give us the subversion of code that you are using.
e.g. type in an xterm:
virtuoso -W (if using IC6.1.X)
icfb -W (if using IC5.1.41)
There are a lot of great improvements to the nport. Please see:
MMSIM 12.1 SpectreRF -- Preview of Coming nport Attractions!
Thank you very much for your time and advices.
For now, I am unable to transfer to a 64 bit OS, so I will try the first option you mentioned. Here are the sub-versions:
icfb --- 220.127.116.110.6.151 and
spectre --- 18.104.22.168508.
When usinh Shooting Engine, in Options, there was box to give a swap file... After selecting Harmonic Balance engine, I go to options and swap file option does not exist... So my simulation crashes right in the beginning.
Is there a way to define a swap file for HB engine?
In reply to apaj:
Harmonic Balance wasn't supported until MMSIM61 (from memory), so you can't be using the version of spectre that you're saying.
There is no "swapfile" argument for HB (it wouldn't make any sense to provide this, as the algorithm isn't really amenable to being able to take advantage of it).
It would be useful to know how you have your tones set up - maybe you can post the analysis statements from the bottom of the netlist, and maybe also any sources/ports that you have in your netlist - or just a picture of the PSS form (use the Options tab at the top of the forum web page when posting to add a screenshot as an attachment)
In reply to Andrew Beckett:
Thank you very much for your time and effort.
Please find attached a screenshot in which ADE, PSS analysis and input port properties windows are shown. If I can provide any more information in order to enable you better understanding of my problem, please let me know.
As far as MMSIM is considered, that is the output I get when typing spectre -W in my terminal. The version I downloaded and installed was from 2012_2013 32 bit package: MMSIM_11.10.509.
First of all, I apologize for a delayed answer - I was out of office for a couple of days.
Thank you very much for your advices and explanations. I tried to follow your instructions on running the qpss HB analysis - with the same output: Insuficient memory.
What I am working on is a purely academic project, so I don't have a problem sharing the log files - I just want to have it running.
Here is the line about the software version:
spectre (ver. 22.214.171.124508 -- 15 Dec 2008).
Here are some warning that might be interesting, and I couldn't get the hang of them:
qpss: `flexbalance' is not a valid parameter for an instance of `qpss'. Ignored.qpss: `oversample' is not a valid parameter for an instance of `qpss'. Ignored.
Namely, for some reason it doesn't like the oversample to be 1 - and I read here that it should be 1... Flexbalance, I couldn't find - what is it?
Here is the circuit inventory:
nodes 247224equations 247257ahdl simulator 1 bsim3v3 8 capacitor 100526diode 52 inductor 12 port 2 resistor 310279respoly_va 8 vsource 3
This number of almost 250k equations looks really scary... But, as I mentioned a couple of posts ago, it's what I get after QRC extraction. I tried sett ing the parasitics limit to higher values (so I have less parasitics) but then the results start to change and look much better than when all of the small ones are included. So, I guess I don't have a choice here, it must be this much... Right?
Also, please find attached the screenshot of my qpss analysis. Am I doig it the right way?
Thank you very much for you effort.
You clearly have the wrong version of spectre (an old one) in your UNIX path. Spectre (back in IC5141) used to be in the IC stream when IC5141 was released in 2004. Late in 2004, a new MMSIM stream was created and there have been 10 major releases of MMSIM since it was launched 10 years ago... you're using a hotfix of IC5141 which is before Harmonic Balance (which used to be known as Flexible Balance in spectre) was launched, which was in MMSIM61 (ish) time frame.
Generally the "Harmonic Balance" options shouldn't show up on the QPSS or PSS forms unless you have a version of the simulator which supports this in your UNIX path. My guess is that for some reason you have the "SPECTRE_FEATURE_FILE" UNIX env var set (which you should NOT do) which is pointing at a feature file (which is a little database indicating what features a release of spectre supports, so that the ADE UI can adapt accordingly) from a newer release.
So, to get this to work, make sure that you don't have SPECTRE_FEATURE_FILE set, and ensure that $PATH includes (at the beginning) <MMSIMinstDir>/tools/bin before you start icfb.
Once again, thank you very much.
Issuing the command printenv, I find that no SPECTR_FEATURE_FILE variable is set and that $PATH includes the path to <mmsim_install_dir>/tools/bin. Here are some pieces of the printenv output:
Could this variable that you mention somehow be set without showing in the output of printenv?
Or I just really need a reinstall of MMSIM? Once again, I did download and install the MMSIM from 2012_2013 package, just several weeks ago...
The env var is SPECTRE_FEATURE_FILE - but maybe the features are being set in the .cdsinit.
Whilst you have MMSIM in the path, it is after the tools/bin and tools/dfII/bin from the IC5141 installation, so it will never find spectre from the MMSIM stream. So your path is in the wrong order. It must have MMSIM first.
Thank you very much - I fliped them and we've got that solved:
spectre -Wsub-version 126.96.36.1999.isr14
Now, if I am not becoming to tiring, would you be so kind to have a look at the HB analysis? I am interested in th IIP3 and P1dB of my circuit at 8.2 GHz with harmonics of 200 MHz. Is the screenshot I sent in the previous post a way to do it - or something else?
Once again, thank you very much for your time and effort!
I would suggest you take a look at the <MMSIMinstDir>/tools/spectre/examples/SpectreRF_workshop/rfworkshop.tar.Z file which has workshops for LNA, Mixer, Oscillators and PAs. The databases are for IC61 in the versions you're using, but at least you can look at the PDFs for a bit of guidance.
You didn't say what kind of circuit it is. For IP3 you'd need two input tones (plus another if it's a mixer); for P1dB you'd need one input tone (plus another if it is a mixer). So your setup may or may not be correct, depending on the circuit...
The circuit is (supposed to be) a low noise amplifier. However, I'd like to stop bothering you about this - I'll check the examples you mentioned, and see what happens.
I just have one more question - if, even after setting up the analysis as shown in the examples, I remain with the same output (insuficient memory), the only thing I can do is find a 64-bit machine? I mean, there is no some kind of system variable that controls the amount of alowable memory or something like that?
Thank you very much, I appriciate your time and effort very much.
Fundamentally a 32 bit application is limited to a 32-bit address space - that's a maximum of 2^32 bytes (about 4Gbytes). In practice it is usually a bit lower than that on most OS.
You can't make a 32 bit application be able to access a larger amount of memory. Shooting PSS had a special trick which allowed it to write its data to disk instead (this was the swapfile) - the algorithm lent itself to that type of approach. HB doesn't though.
So if you need more memory, you have to run 64 bit spectre, and that requires a 64-bit OS.