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

From: Havlicek John-R8AAAU <john.havlicek_at_.....>
Date: Thu May 07 2009 - 06:01:43 PDT
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);




I propose that we change that
 from: The operand sequences start at the same time
 TO:    Each of the operand sequences start at the first clocking event
of the respective sequence. Thus, in the following example, sequence s1
starts at the first clocking event of clk1, and sequence s2 starts at
the first clocking event of clk2.  


@(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 06:27:35 2009

This archive was generated by hypermail 2.1.8 : Thu May 07 2009 - 06:29:50 PDT