- + Issue 934: (3) Annex C changes that were missed:
[Jon Sanders, 1/22/2001]
(3) Annex C changes that were missed:
null argument change:
In VerilogA 1.0 the following was allowed: {} while in VerilogAMS 2.0 null arguments are defined by ", ,"
(comma-nullarg-comma). Thus {} would be represented as {,}. Null args for things like laplace and z-transforms of no numerator
must be written as either { 1 } or { , }.
Recommendation: This needs to be added to the list of changes and possibly shown in the areas where most likely to occur
such as in the laplace and or z transform sections.
The original 1.0 LRM version had the roots specified as the product of terms like:
(1) (1 - z^(-1)/(r_r + j r_i))
...so the poles and zeros are roots of the polynomial in z(-1), which makes sense given the zi_nd form is a polynomial in
z(-1) -- to get your poles and zeros you just factor the polynomial. But, the 1.4 LRM has:
(2) (1 - z^(-1)*(r_r + j r_i))
...which means that the term goes to zero if z = (r_r + j r_i)), so the roots are of a polynomial in z, the inverse of the
above.
Recommendation: Researching to determine why this change was made. Need to find out reason for change to determine if going
back is even feesible. Need to add this to table also.
Verilog-A defined the argument to $bound_step() to be constant.
Verilog-AMS allows "expression" as an argument to $bound_step() which can be dynamic.
Recommendation: Add this Verilog-A 1.0 typo to the list of changes in Annex C.
The $random changed and should be included I believe.
One may argue that only our implementation will change as others interpreted the Verilog-A LRM to be what is in 2.0. Also, we
will be changing to match up with VerilogXL meaning shortly.
Recommendation:Add note in Annex C.