Why must the reset be applied for the code to be changed?
This is a known issue in the v1.0 of the TPC.
If you do not apply a reset, when attempting to change the turbo code, the sync output and the encoded data will be incorrect after the code change is applied.
If you hit a reset in the middle of processing a code block, you must flush the design with an entire block before the core can be used. If you do not flush the design, the first block out after a reset will be corrupt. However, if you process one code block completely and then perform a reset, you should be able to complete a code switch without having to flush one block.
Refer to (Answer Record 24321) for details of a patch required for the TPC Encoder v1.0.
For a detailed list of LogiCORE Turbo Product Code (TPC) Encoder Release Notes and Known Issues, see (Xilinx Answer 30179).