Re: [sv-ac] P1800-2009 : 16.9.5 AND operation // start time ambiguity

From: ben cohen <hdlcohen_at_.....>
Date: Thu May 07 2009 - 10:17:02 PDT
John, Great explanation! Thanks.
New recommendation:
 I propose that we change that
 from: The two operands of and are sequences. The requirement for the match
of the and operation is that both the
operands shall match. The operand sequences start at the same time. When one
of the operand sequences
matches, it waits for the other to match. The end time of the composite
sequence is the end time of the
operand sequence that completes last.
 TO:     The two operands of and are sequences. The requirement for the
match of the and operation is that both the
operands shall match.  The evaluation attempts of the operand sequences
start at the same time. When one of the operand sequences matches, it waits
for the other to match. The end time of the composite sequence is the end
time of the
operand sequence that completes last.

Rationale:
I don't believe I am the only one here that misunderstood the meaning of
"same time" to mean the "same cycle" .  Looking at analogies, the sequence
ANDing is like a horse race where each horse is a sequence. In a race, they
"start at the same time" when the gates open, but the horse may finish the
race at different time.  This analogy is not bad, when you consider that
each horse (the sequence) runs at a different pace (clock), and in itself
can be multiclocked (runs at different pace during the race).  A great race
was the Kentucky Derby 2009 (search for it at youtube) where Mine That
Bird<http://www.youtube.com/watch?v=U5FX9guurlg>
*, a 50/1 longshot came in from dead last to win the race. Start time was
same for all the horses .. or was it really the "same time"? *

Since the LRM does not have a dictionary of terms, changing the sentence to
something you suggested clarifies things.
** BTW, I still don't have grants to create a Mantis, so John or Dmitry,
could you please do it for me?
Thanks,
Ben

On Thu, May 7, 2009 at 6:01 AM, Havlicek John-R8AAAU <
john.havlicek@freescale.com> wrote:

>  Hi Ben:
>
> I believe that the text of the LRM is correct provided we interpret
> "sequences start at the same time" to mean "the evaluation attempts to match
> the sequences start at the same time".   With this interpretation, the
> statement is correct both for singly-clocked and multiply-clocked sequences.
>
> Multiply-clocked sequences are not discussed in 16.9, and your proposed
> change will introduce variance from that convention.
>
> You ask about the relationship between <same time> and <same cycle>.  <same
> time> means in the same simulation time step.
>
> In a singly-clocked sequence, it is possible to show that the attempts to
> match the various subsequences will always start at alignment points to the
> governing clock event.  Thus, in this situation, <same time> and <same
> cycle> mean the same thing.
>
> In the multiply-clocked setting, the evaluation attempt for a sequence need
> not start at an alignment point for a leading clock of that sequence, and if
> the sequence has multiple leading clocks, then the evaluation will branch to
> look for alignments with these various clocks.
>
> These details of the multiply-clocked behavior are not discussed until
> 16.14.
>
> I think that if you want to bring the generality of the multiply-clocked
> behavior into 16.9, then the entire section needs to be overhauled, not just
> a single paragraph.
>
> Best regards,
>
> John H.
>
>  ------------------------------
> *From:* owner-sv-ac@eda.org [mailto:owner-sv-ac@eda.org] *On Behalf Of *ben
> cohen
> *Sent:* Thursday, May 07, 2009 12:56 AM
> *To:* sv-ac@eda.org
> *Subject:* [sv-ac] P1800-2009 : 16.9.5 AND operation // start time
> ambiguity
>
> page 335: LRM: The two operands of and are sequences. The requirement for
> the match of the and operation is that both the operands shall match. The
> operand sequences start at the same time. When one of the operand
> sequences
> matches, it waits for the other to match. The end time of the composite
> sequence is the end time of the
> operand sequence that completes last.
>
> I have an issue with the definition of   "sequences start at the same
> time"  because it implies a start at the same cycle.  Is <same time> ==
> <same cycle>?
> If the 2 sequences have different clocks, then they would not necessarily
> start at the same time, if you define the same time as the same cycle.  For
> example:
>    @(posedge clk0) s0 |=> *(@(posedge clk1) s1) and (@(posedge clk2) s2);
> *
>

> [Ben Cohen] Note: we can skip the example if you feel that it is redundant.
> Am also open to variation if sentence is not clear.
> Ben
>
>
> --
> This message has been scanned for viruses and
> dangerous content by *MailScanner* <http://www.mailscanner.info/>, 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 Thu May 7 10:18:49 2009

This archive was generated by hypermail 2.1.8 : Thu May 07 2009 - 10:20:06 PDT