- Determine if you really need a global reset.
- Avoid asynchronous control signals.
- Keep clock, enable, and reset polarities consistent.
- Do not code a set and reset into the same register element.
- Only synchronize the deassertion of an asynchronous reset when absolutely necessary.