RE: hierarchical parameter passing in DC sweep

From: Muranyi, Arpad <arpad.muranyi_at_.....>
Date: Tue Aug 23 2005 - 09:16:45 PDT
Even though the statement below is true, we need to be
extremely careful with these kinds of things!

It is enough for just one simulator to allow this (which by
the way is a nice feature to have), and people will start
making models using this capability - not realizing that
this is a tool specific "extension" of the language.  Pretty
soon we will be in for a big (and bad) surprise that these
model doesn't work in (any) other vendor's tools.

A direct consequence of such situations is that models will
immediately become tool specific which contradicts one of
the main reasons for having an "industry standard" language.
We will end up where the SPICE world is today with its
millions of vendor specific variants that prevents any
reasonable model exchange in the industry.

In my opinion it is much better to implement the LRM strictly,
even if there are missing capabilities or bad features that
any idiot knows how to do better, than allow the tool vendors
to deviate from it.  Our industry suffers a great deal from
the inability to exchange models freely because of vendor
specific features, which results in having to make duplicate
models in many languages or language variants.  Of course
the better solution would be to write an LRM that is well
thought out, and has little if no unreasonable limitations,
i.e. a language that is useful for modern practice, and is
not bogged down by idiosyncrasies driven by historical and
other limiting forces.

Keep in mind that most of these limitations stem from the fact
that they are easier to implement in the software.  I feel it
is time to wake up and write software that lends itself to be
easy to use by its users, and not easier to implement by the
software companies.  Being an electronic engineer and not a
software expert, I would rather not have to remember that
parameters are constants as opposed to variables, I would 
much rather spend my energy on writing my model algorithms.
Most modern programming languages allow arguments to come
in almost any shape or form, as long as they evaluate to
the correct type (string, integer, etc...)  Whether it comes
from a pointer (by reference), or a variable (by value), or a
literal, etc... shouldn't matter.  Yet in Verilog-A we are
still wrestling with the file argument of $table_model etc.
required to be literals (hard coded, grrrrrrr)...  I feel I
am in the stone age!

Sorry for the harsh words, but I wonder is there a way out
of this situation in a language which is being developed
in year 2005?

Arpad
=============================================================

-----Original Message-----
From: owner-verilog-ams@eda.org [mailto:owner-verilog-ams@eda.org] On Behalf Of Geoffrey.Coram
Sent: Tuesday, August 23, 2005 6:57 AM
To: Marq Kole
Cc: verilog-ams@eda.org
Subject: Re: hierarchical parameter passing in DC sweep

...
...
I still think this is a simulator issue: if the simulator vendor
relieves the restriction on parameters being constant at run-time,
then the vendor is also responsible for logical extensions such
as passing that varied parameter.
...
...

-Geoffrey
Received on Tue Aug 23 09:16:58 2005

This archive was generated by hypermail 2.1.8 : Tue Aug 23 2005 - 09:18:12 PDT