I open a new bug - 1678 for local variables name clashes: ------------------------------------------------------------- A naive interpretation of substitution may lead to local variables name clashing. Here is an example of name clashing. sequence r1(lv); logic [7:0] lv1; (a, lv1 = 0) ##1 (!a, lv1 = lv1 +lv)[*0:$] ##1 a ##0 (1, lv = lv1); endsequence sequence r2; logic [7:0] lv1; (b, lv1 = c) ##1 r1(lv1) ##1 (lv1 == d); endsequence A naive substitution will result in the following: sequence r2; logic [7:0] lv1; logic [7:0] lv1; (b, lv1 = c) ##1 (a, lv1 = 0) ##1 (!a, lv1 = lv1 +lv1)[*0:$] ##1 a ##0 (1, lv1 = lv1) ##1 (lv1 == d); endsequence what we really want is to rename lv1 in r1 to a unique name before the substitution occurs. Then we get sequence r2; logic [7:0] lv1; logic [7:0] unique_lv1; (b, lv1 = c) ##1 (a, unique_lv1 = 0) ##1 (!a, unique_lv1 = unique_lv1 +lv1)[*0:$] ##1 a ##0 (1, lv1 = unique_lv1) ##1 (lv1 == d); endsequenceReceived on Wed Nov 15 08:55:23 2006
This archive was generated by hypermail 2.1.8 : Wed Nov 15 2006 - 08:55:31 PST