Hi VAMS committee,
On a similar subject as Paul has mentioned, is it possible to upgrade the analog operators such as Laplace filters to take a truly dynamic argument that will re-evaluate after time zero? I have had a need several times of the last 2 years to have dynamically calculated Laplace arguments that change throughout time, but obviously the Laplace filters currently only latch the start value and ignore future updates to their dynamic arguments.
Given the limitation above I usually find some other (more complicated) way to code a "dynamic filter" such as having multiple parallel filters and some mechanism for muxing between then, but obviously this is computationally-unfriendly and memory-unfriendly.
Thanks,
Scott Morrison
Texas Instruments
-----Original Message-----
From: owner-verilog-ams@eda.org [mailto:owner-verilog-ams@eda.org] On Behalf Of Paul Floyd
Sent: Tuesday, February 08, 2011 3:54 AM
To: verilog-ams@eda.org
Subject: Vector arguments
Hi
Section 4.5.1 says
"4.5.1 Vector or array arguments to analog operators
Certain analog operators require arrays or vectors to be passed as
arguments: Laplace filters, Z-transform filters,
and noise_table(). An array can either be passed as an array_identifier
(array parameter) or an
array assignment pattern using a constant_optional_arrayinit (Laplace
filters, Z-transform filters) or a
constant_arrayinit (noise_table())."
Then 4.5.14 says
"If a dynamic expression is passed as an argument which expects a
constant expression, the value of the
dynamic expression at the start of the analysis defaults to the constant
value of the argument. Any further
change in value of that expression is ignored during the iterative
analysis."
This seems to be a conflict. The first says that Laplace/Zi can only
take an array parameter or a constant_optional_array_init. The second
says that a dynamic expressions are allowed.
In 9.20, $table_model can take a "table_model_array". The example given
uses a vector variable. [Does this mean that the table can change during
simulation?]
My view is that all three of these cases should be consistent (well,
almost). Dynamic vectors should be allowed, with changes after the start
of the analysis ignored. I said almost because Laplace/Zi don't have a
filename option, and I see no need for one either.
While I'm on the subject of Table 4-20 and section 4.5.14, in version
2.2 of the LRM, the equivalent of Table 4-20 included monitored event
statements (timer, above, cross). These have been removed in version
2.3[.1] of the LRM (fair enough, they are in Chapter 5). The BNF syntax
gives the monitored events "constant_expression_or_null" arguments. I
can't see anywhere that it's stated that these arguments can be
variables but treated as constants using their first values. I imagine
that there was no intent to change this rule.
Honestly my last word on Table 4-20. The laplace_xy Constant expression
arguments are given as "poles, abstol, zero". "zeros, poles, abstol"
would be more consistent with the zi_xy entry.
Regards
Paul Floyd
-- Dr Paul Floyd Mentor Graphics Corporation -- This message has been scanned for viruses and dangerous content by MailScanner, and is believed to be clean. -- This message has been scanned for viruses and dangerous content by MailScanner, and is believed to be clean.Received on Tue Feb 8 06:27:28 2011
This archive was generated by hypermail 2.1.8 : Tue Feb 08 2011 - 06:27:35 PST