Assigning values to variables within for loop

Hi,
I’m currently writing some assertions for some clocks within a design. In an attempt to reduce the amount of code required I was grouping all of the clocks of the same frequency together in arrays and then using a single assertion with a for loop to cover them all. However, I am getting the following error : “On sequence match, assignments to non-local variables and passing non-local variables as actuals to inout/out arguments of a subroutine are not supported”. The problem is the start120[i] = $time bit of the code, but I don’t know why it is giving me this error, is the array start120 local to the loop? Any help would be much appreciated!

//check that the period of the 120kHz clocks is 8.333us
generate
   for(genvar i = 0; i < 13; i++)
   begin : check_120kHz_period
   time start120[];
      assert property (@(posedge clocks_120kHz[i]) disable iff(!clock_enables_120kHz[i])(1, start120[i] = $time)
      |=> ((($time - start120[i]) >= 8.3us) || ($time - start120[i] <= 8.4us))); //will need to adjust tolerance TBD
   end
endgenerate

“local” in this case means local to the property. You just need to declare a simple time variable local to the property. And you may want to use realtime.