In reply to tomrohit:
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.
arry["a"] |-> (arry_1["v"] == arry_1["w"]); //arry_1 is driven the same way as arry["a"]
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.