
NXP Semiconductors
PNX15xx/952x Series
Volume 1 of 1
Chapter 21: MPEG-1 and MPEG-2 Variable Length Decoder
PNX15XX_PNX952X_SER_N_4
NXP B.V. 2007. All rights reserved.
Product data sheet
Rev. 4.0 — 03 December 2007
21-652
progress will be aborted.
Soft Reset is controlled by the hardware so that any DMA activity that is in progress
will complete before the soft reset has a complete effect. Software should wait for the
“VLD Command Done” status bit to be set before proceeding with the next command.
Remark: The VLD_INP_CNT is cleared after reset. However, this is not treated as a
DMA_INPUT_DONE condition in the VLD and the CPU
will not be interrupted by the
VLD after reset with a DMA_INPUT_DONE condition. The MPEG video bitstream
buffer should be refilled as needed and the VLD_INP_CNT rewritten with a proper
value before issuing new commands to the VLD after reset.
3.2 VLD MMIO Registers
3.2.1
VLD Status (VLD_MC_STATUS)
The VLD_MC_STATUS register contains current status information which is most
pertinent to the normal operation of an MPEG video decode application. Writing a
logic ‘1’ to any of the status bits other than bit-0 clears the corresponding bit. Writing
a logic ‘0’ has no effect.
Exception: Bit 0 (Command Done) is cleared only by issuing
a new command. Writing a logic ‘1’ to bit zero of the status register will result in
undened behavior of the VLD. Note that several status bits may be asserted
simultaneously.
Table 2 lists the function of each status eld.
Table 1: Software Reset Procedure
Cycle No.
Action
Remarks
i
The CPU issues the ‘Reset the Variable Length Decoder’
command by writing the corresponding command code
into the VLD_COMMAND register.’
i to j
The VLD will complete any DMA transactions that are
already in progress. Any new DMA transactions will be
aborted. The VLD then raises the vld_ready_to_reset
signal.
Any DMA transactions, once started, will not be
aborted in the middle.
k
If (vld_ready_to_reset) then the VLD interrupts the CPU.
Assumes k>j; otherwise it is jth cycle. The full reset
clears all internal buffers, state machines, and
leaves the following registers with the value of 0x0:
VLD_COMMAND
VLD_CTL
VLD_BIT_CNT
VLD_INP_CNT
VLD_MBH_CNT
VLD_RL_CNT
The VLD_STATUS register contains the value
0x0000_0001.