Procedural Assignments :-
This update values of reg, integer,real or time variables. The value placed on a variable will remain unchanged until another procedural assignment updates the variable with a different value.
The lefthand side of a procedural assignment <lvalue> can be one of the following :
reg, integer,real or time register variable or a memory element
bit select of those variables (eg : addr[0])
part select of those variables (eg : addr[31:16])
concatenation of any of the above