Usually, when designing a convolutional encoder for a transmitter, some sort of termination mechanism is applied to drive the encoder back to its zero-state after a message was transmitted. This is often done by appending a tail sequence to the transmitted message, e.g. a certain number (n) of zeros in case of a convolutional encoder without feedback. This way it takes n clock cylces to return the encoder to the all zero sate.
On the other hand, e.g. when implementing a convolutional encoder in HDL, this reset to the zero state could also be achieved by simply resetting all (shift)registers of the encoder. That way the zero state could be reached after only one clock cycle.
In the literature I never saw anyone mention the second method and was wondering what is the reason for terminating a convolutional encoder with a tail sequence instead of simply resetting the state registers?
EDIT: If the convolutional encoder contains feedback, additional circuitry is required to calculate an adequate termination tail to drive the encoder back to zero(a system of linear equations must be solved). So why would anyone trade the 'simple' reset solution for a solution consuming more hardware and time?
(My specific case concerns LDPC convolutional codes, which can have deep encoder memory, so the time required for terminating the code is not negligible.)