Initializing a multidimensional associative array

In reply to tomrohit:

Hi Dave,

In continuation to the previous post, i tried using always @* arry[“a”] = penable_0;
My question this time is related to how assertions will sample this arry value.

penable_0 is driven on posedge clk in DUT.
I have an assertion module which is sampling arry[string] values and that too on same clk.

property xyz;
@(posedge clk)
arry[“a”] |-> (arry_1[“v”] == arry_1[“w”]); //arry_1 is driven the same way as arry[“a”]
endproperty

My understanding was, arry_1 values will be sampled in preponed region and DUT will drive penable_0 etc. on posedge clk which will happen in NBA region.
But i see that my assertion is picking the new value of arry_1[“v”] and [“w”].
I am using Cadence IES simulator.
If i change always @* to always @(posedge clk) arry[“a”] = penable_0;, it works ok.

Do you feel that it is expected? Or, there is something missing in my understanding.