Visibility into the internal operation of the VCP version 2 (i.e., the state metric accumulation, traceback memory) is available to the CPU via a pause command. However, since the pause command is not synchronized with the internal VCP version 2 state machine but is rather sent from the CPU at a random moment in time, this feature is of limited use.
The pause command on the VCP version 2 is augmented to provide visibility into VCP modules operation on a sliding window basis. Instead of using the normal start command which tells the VCPs to perform a complete decode of one frame (including input/output transfers via EDMA controller), halt at beginning of traceback and resume until next traceback commands are used, and the internal VCP memories can be inspected at various points in the decoding process. The procedure for using this command is as follows:
- VCP modules configuration and branch metrics are prepared
- A halt at the beginning of the traceback command is sent
- The VCP modules generates necessary interrupts to the EDMA to transfer input configuration and to start transferring branch metrics. The VCP1 and VCP2 perform state metric accumulation as branch metrics become available. When it reaches the end of the first sliding window (i.e., the reliability portion and the convergence portion), the VCP halts.
- The CPU polls the VCP1 and VCP2 status registers until the VCP's states changes from running to paused. At that point, the state metrics memory can be inspected, as well as the traceback memory. To perform an inspection, halt the CPU via a software breakpoint set at an appropriate point in the code, for instance. Then, the memory can be inspected visually via the debugger GUI, or, alternatively, the CPU can copy the relevant internal VCP memories to another location for later analysis.
- The CPU sends the resume until next traceback command to the VCP.
- The VCPs perform the traceback, generate a portion of hard or soft decisions, and continue with state metric accumulation until the end of the next sliding window (i.e., another number of R stages, where R is the reliability length).
- The process continues until the decoding is complete. Alternatively, the decoding process can be run to completion after any sliding window by sending the resume to completion command instead of the resume until next traceback command.
Emulation modes are achieved with the programmable SOFT and FREE bits in the VCP emulation control registers VCP_VCPEMU.
When the CPU is halted during emulation, VCPs can be halted based on the setting of the VCP_VCPEMU[1] SOFT and VCP_VCPEMU[0] FREE bits. The VCPs can be halted at the traceback processing or frames processing boundary.