I think there is an error in editing as Shalom points out... This is what it actually should be (in my opinion). Case 1: maxdelay is not specified. Changes to td are ignored and initial value of td used through simulation (td is constant) Case 2: maxdelay is specified. In this case timedelay, td can vary and it can vary between 0 < td < maxdelay. Also, in this case maxdelay value cannot vary. I don't think the LRM restricts the maxdelay as constant in terms of syntax which it should and that would make it easy to describe the semantics. Maxdelay should always be a constant if specified. What probably the LRM intended on saying is, if any expression is used to specify maxdelay (since the syntax doesn't restrict it to a constant expression), the changes to this value wont be honoured and the initial value will be taken. But making maxdelay constant would resolve this issue. Cheers, Sri -----Original Message----- From: owner-verilog-ams@eda.org [mailto:owner-verilog-ams@eda.org] On Behalf Of Bresticker Shalom-R50386 Sent: Friday, 4 March 2005 1:26 AM To: Geoffrey.Coram Cc: VerilogAMS Reflector Subject: Re: absdelay and changing td In some old documentation I have, it says, "The optional maxdelay argument is both a flag and the maximum allowed delay. If maxdelay is absent, the delay td is held constant at the value from the module's first evaluation. Attempts to change it during an analysis are ignored... If maxdelay is present, then the delay td is allowed to vary between zero and maxdelay." So it sounds like an error in the LRM. I would speculate an error in editing a change to the text. Shalom "Geoffrey.Coram" wrote: > A user here was trying to use the absdelay() function > and I am now trying to make sense of what the AMS LRM > has to say about absdelay() in Section 4.4.8: > > absdelay() implements the absolute transport delay for > continuous waveforms (use the transition operator to > delay discrete-valued waveforms). The general form is > absdelay( input, td [, maxdelay ] ) > input is delayed by the amount td. In all cases td shall > be a positive number. If the optional maxdelay is specified, > then td can vary; but it shall be an error if it becomes > larger than maxdelay. If maxdelay is not specified, changes > to td shall be ignored. If maxdelay is specified, changes to > td are ignored and the initial value of maxdelay is used. > > Please focus on the last two sentences. It appears to me that changes > to "td" are *always* ignored (except that if td > maxdelay, you get an > error). > > Can someone please explain the intent? Why not have "td" > be a constant expression and dispense with "maxdelay"? > > "the initial value of maxdelay" is odd wording, also, since maxdelay > is required to be a constant expression. > > -Geoffrey -- Shalom Bresticker Shalom.Bresticker @freescale.com Design & Verification Methodology Tel: +972 9 9522268 Freescale Semiconductor Israel, Ltd. Fax: +972 9 9522890 POB 2208, Herzlia 46120, ISRAEL Cell: +972 50 5441478 [ ]Freescale Internal Use Only [ ]Freescale Confidential ProprietaryReceived on Thu Mar 3 16:25:48 2005
This archive was generated by hypermail 2.1.8 : Thu Mar 03 2005 - 16:25:50 PST