Re: [SI-LIST] : Sweeping Temp within MonteCarlo in HSPICE

Dmitri Kuznetsov ([email protected])
Mon, 01 Dec 1997 13:54:30 -0800

Alaa,

Hspice's Monte-Carlo analysis cannot be applied to the internal
temperature variable TEMPER. But, you can sweep it in a parameter
sweep, e.g.

.TRAN 1ns 1us SWEEP TEMPER POI 25 30 35

The temperature data can also be put in a .DATA:

.TRAN 1ns 1us SWEEP DATA=temp_data
.DATA temp_data TEMPER 25 30 35

If you want to have a single .tr output file, you could pre-generate the
random parameter values for the Monte-Carlo analysis, and put them all
in the .DATA along with the TEMPER.

You can also use Monte-Carlo with .TEMP, for instance

.TRAN 1ns 1us SWEEP MONTE=10
.TEMP 25 30 35

but that will generate a separate .tr file for each temperature.

There is also DTEMP parameter that can be specified in the element card
for temperature-sensitive devices. This one can be used with
Monte-Carlo.

Regards,
-- Dmitri

=======================================================
Dmitri Kuznetsov, Ph.D.
R&D Engineer

Avant! Corporation e-mail: [email protected]
46871 Bayside Pkwy. Tel: (510)413-8631
Fremont, CA 94538 Fax: (510)413-7706
=======================================================

alaa alani wrote:
>
> Dear Coleagues,
>
> (especially for those Hspice gurus!)
>
> I have been using Monte Carlo analysis in Hspice to sweep a number of
> parameters such as package pin inductance, capacitance, etc. But when
> it comes to temperature, Hspice seems to be treating it differently.
> The problem I have now is how to sweep the temperature with the rest
> of parameters using Monte Carlo analysis.
> I tried to define it as:
>
> .param temp1 = aunif(50, 50) temp = 'INT(temp1)'
>
> The syntax was acceptable but when I viewed the results, there was no
> effect of changing temperature. Instead there was another parameter
> "temper=25C" in the results which was constant and overiding the
> temperature value determined by MonteCarlo. Here's the .measure file:
>
> MonteCarlo Hspice
> | |
> V V
>
> index tempo@temp1 gb_max q0init q1init vdd_min temper
> alter#
> 1.0000 17.0000 0.6976 0.5046 1.5000 1.4756 25.0000
> 1.0000
> 2.0000 64.0000 0.6976 0.5046 1.5000 1.4756 25.0000
> 1.0000
> 3.0000 86.0000 0.6976 0.5046 1.5000 1.4756 25.0000
> 1.0000
>
> The "tempo" was determined by MonteCarlo while "temper", which I have
> no control over it, was overriding it.
>
> I also tried to define the temperature as a parameter in the .temp
> statement but it failed complaining: temp cannot be parameterised in
> .temp statement.
>
> I could use .ALTER statement but this will lead to the generation of
> many .mt and .tr files which I am trying to avoid (i.e. The idea is to
> include all results in one file then use a spreadsheet to extract a
> set of equations that relate the result with each and every individual
> parameter).
>
> Your help is much appreciated.
>
> Regards,
>
> *****************************************************************************
> Dr. Alaa F. Alani
> Senior Signal Integrity Eng. Tel: +44
> (0)1344-413383
> LSI-Logic Europe Ltd. Fax: +44
> (0)1344-413186
> Greenwood House, London Road
> Bracknell, Berks RG12 2UB E-Mail: [email protected]
> England
>
> *****************************************************************************