Re: initial_step and final_step in DC sweep

From: Marq Kole <marq.kole_at_.....>
Date: Fri Aug 25 2006 - 06:12:38 PDT
Geoffrey,

:-))  <---- really big grin

In my most recent case it is a BSIM4 model that you coded, available from 
Silvaco, linked through by the Designer's Guide. Admittedly, it is from 
March 2004 (says the header - it's version 4.3.0 so it can't be older than 
2003 when that model was released in C code). I've been updating it to 
version 4.4.0.

Rest assured that you're far from the only one; among the many others I've 
always been doing it myself. I'll to change my ways ... :-)

I'm more concerned about implementers having this implemented without 
considering the nitty-gritty detail of the standard.

Marq


Marq Kole
Competence Leader Analog Simulation, Philips ED&T










"Geoffrey.Coram" <Geoffrey.Coram@analog.com> 
Sent by:
geoffrey.coram@analog.com
25-08-2006 14:57

To
Marq Kole/EHV/RESEARCH/PHILIPS@PHILIPS
cc
verilog-ams <verilog-ams@verilog.org>
Subject
Re: initial_step and final_step in DC sweep
Classification







Marq Kole wrote:
>
> 
> The general application of the initial_step event as I have seen
> in nearly all models is as an initialization block.

What models have you seen this in?  I've been trying to stamp out
the practice.  I see that PSP does not use it (it uses the 
initialModel block name).

Mextram does use it, for the following (in mextram_504.6_TUD.va):

 `ifdef insideADMS
   @(initial_model) begin
`else
   @(initial_step or initial_step("static")) begin
`endif

     // Impact ionization constants (NPN - PNP)

     if (TYPE == 1) begin

        An = 7.03e7;
        Bn = 1.23e8;

     end else begin

        An = 1.58e8;
        Bn = 2.04e8;

     end

  end

What should be used is
  localparam An = (TYPE == 1) ? 7.03e7 : 1.58e8;
  localparam Bn = (TYPE == 1) ? 1.23e8 : 2.04e8;
though localparam is not widely accepted by current
Verilog-A simulators.


Of course, Mextram (and Hicum) are somewhat strange models,
in that almost all the parameters are updated based on the
self-heating temperature, which does depend on a circuit
unknown, and thus their initialization block does not
contain much code in any case.

-Geoffrey
Received on Fri Aug 25 06:13:29 2006

This archive was generated by hypermail 2.1.8 : Fri Aug 25 2006 - 06:13:31 PDT