A very common question I see in newsgroups is the classical issue in an assertion where a delay or a repeat count is based on a sampled value of a variable. In 1800'2012 using the value of a variable directly in an assertion is illegal; for example: int n=6; ap_illegal: assert property(@(posedge clock) x ##1 a |-> ##n b); ap_illegal2: assert property(@(posedge clock) a |-> b[*1:n]); Of course, the general answer to this question is to use local variables. Thus, for example property p1; int v; x ##1 (a, v=n) |-> (1, v=v-1'b1)[*1:$] ## 1 v==0 ##0 b; endproperty ap_legal: assert property(@(posedge clock) p1); *Thus, the question is:* Can we (or should we) , in the next 1800, allow the use of the sampled value of a variable for clock delays or repetition count? The value of the variable will be its content in the cycle it is read. Thus, for x ##1 a |-> ##n bthe value for "n" will be the one in the cycle after the 1st successful attempt and a==1. . Ben Cohen -- This message has been scanned for viruses and dangerous content by MailScanner, and is believed to be clean.Received on Fri Aug 22 12:55:21 2014
This archive was generated by hypermail 2.1.8 : Fri Aug 22 2014 - 12:55:38 PDT