Re: Vector arguments

From: Dave Miller <David.L.Miller@freescale.com>
Date: Tue Feb 08 2011 - 07:46:11 PST

Hi Paul

On 02/08/2011 03:54 AM, Paul Floyd wrote:
> 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.

Yes this is confusing. The intent of 4.5.14 is that vector parameters are
rather restrictive, it is useful to allow a vector variable that gets
initialised during the initial_step, and then that initialised vector variable
is used in the filter. We just want to make it clear that changes to that
vector variable after t=0 are ignored. We can word and present all three of
these cases better.

>
> 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?]

I don't believe the intention is to allow the inputs to the table_model to
change, we certainly don't re-read the file if that was given as an input. So
yes, this should be explicitly stated.

>
> 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.

As it stands today, the expr_tol and time_tol must be constant expressions
(literals or parameters). Whether we intended this to change from 2.2 in this
way or if it was just overlooked, I will have to go back and check the
changebars I had for this change.

I guess my question is, why does the time_tol and expr_tol of the
cross/above/time need to be constant? Why couldn't those values be variables,
i.e. maybe you want to start to relax tolerances as the simulation progresses?
When they are not specified, the default tolerance that the simulator uses may
not necessarily be constant, it may be some function of the minimum step size
which can vary over time.

Cheers...
Dave

>
> 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

-- 
==============================================
-- It's a beautiful day
-- Don't let it get away
--
-- David Miller
-- Design Technology (Austin)
-- Freescale Semiconductor
-- Ph : 512 996-7377 Fax: x7755
==============================================
-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.
Received on Tue Feb 8 07:47:40 2011

This archive was generated by hypermail 2.1.8 : Tue Feb 08 2011 - 07:47:45 PST