In reply to prashant.kaushik:
As far as I know, end_of_elaboration phase is not mandatory. In that case, all code can be put in single phase. But its just to have abstraction. end_of_elaboration phase is mainly to ensure that your connections are made proper and hierarchial paths are correct after connect_phase.