Thank you for all your replies. This has helped me enormously :-)
Based on this post I did some searching and PietervanderStar suggested the best approach to resetting your FPGA.
I have written a blog post on what I have found:
http://geobyjmhembeddedengineer.blogspot.co.uk/2014/06/reseting-my-nios-ii.html But the most helpful reference is the Altera - Recommended Design Practices found:
http://www.altera.co.uk/literature/hb/qts/qts_qii51006.pdf A summary is as follows:
The asynchronous reset is the simplest to implement and is probably the most common type of reset used in an FPGA design. The advantage of this kind of reset is it does not need to insert any extra logic in the data path and therefore will not inadvertently increase the logic layers between d-types in an RTL stage. This means that asynchronous reset will not impact on the data arrival time to a register input. The other big advantage of an asynchronous reset is that the reset will take effect immediately i.e. it is not dependent on the clock.
But there is a very big disadvantage to using asynchronous resets! You cannot guarantee that the resets for all the d-types will be released in the same clock cycle. This create the small possibility of you design not coming out of reset in the way that was predicted. This could cause an intermittent fault that is tricky to track down.
However there is a down side to synchronous resets. Your design will be more complex and you create the risk of adding additional gate delays to accommodate the reset signal. This will produce a negative impact on the d-types set-up slack time.
This design avoids the potential problems associated with synchronous reset and purely asynchronous reset. The reset is applied asynchronously and immediately. It also does not create the additional logic we have seen with the synchronous design. However the one big advantage is that when the reset is released, it is synchronous to the clock. This mean that all the registers will be reset in the same clock cycle. You can also use static timing analysis to prove your timings.
Thanks again for all your help
geobyjmh