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