When optimizing the code to eliminate reset, commenting out the conditions within
the reset declaration does not create the required structures and instead creates
issues. For example, the following figure shows three pipeline stages with asynchronous
reset used for each. If you comment out the code with the reset condition, you attempt
to eliminate the reset condition for two pipeline stages. This action enables the
asynchronous reset, which is the inverted logic of rst.
The optimal way to remove the resets is to create separate sequential logic procedures. Create one procedure for reset conditions and another for non-reset conditions, as shown in the following figure.