Phase raise and drop used when to terminate simulation.
Generally, simulation time move ahead when all activity for particular time get finished.
If you do not have any delay event in your forever loop it will hang.
//hang
forever begin
// without delay it keep continue repeating on same time stemp
end
//Not hang
forever begin
// some delay event like
// for ex 1ns;
end