SPRUIE9D May 2017 – May 2024 DRA74P , DRA75P , DRA76P , DRA77P
Software must configure which CPORT a given pixel processing context must process, by setting the CAL_PIX_PROC_i[23:19] CPORT register bit-field to the CPORT ID. The operation to perform is defined by the CAL_PIX_PROC_i[4:1] EXTRACT bit-field.
The data of a CPORT is forwarded without modification when pixel processing is disabled for that CPORT.
The pixel extraction stage receives up to 64 bits per cycle and can output either 64 bits (bypass) or 4 samples (6 ~ 16 bits per sample; 1 sample = 1 pixel for RAW data) per cycle.
Extracted pixels are left padded with 0's to fill 16-bit containers (for example, for RAW10: out[15:10]=0's and out[9:0]=data)
It only processes data tagged as DAT_PIX_FS, DAT_PIX_LS, DAT_PIX, DAT_PIX_FE, and DAT_PIX_LE (see Figure 9-10, CAL Data Pipeline TAGs, for definitions). All other data types are simply forwarded (that is, output = input).
DAT_PIX_FS and DAT_PIX_LS tags reset the pixel extraction state-machine. That ensures proper recovery in case the pixel decoder goes out of sync for some reason (for example, TxBuffer overflow in the transmitter, wrong configuration, bad synchronization between hardware and software).
Four samples do not necessarily align with a complete 64-bit word and several bits remain unused. They are stored locally until enough data is available to extract four additional samples or the end of a line has been reached (that is, TAG = PIX_DAT_LE or PIX_DAT_FE). The last 64-bit word can be padded with 0's, if there is not enough data to generate 4 pixels after all data tagged as PIX_DAT_LE or PIX_DAT_FE has been processed.
The incoming dataflow (from Read DMA) can be stalled to prevent data corruption:
Contexts can be interleaved with 64-bit word granularity (that is, two consecutive words can have different TAGs).
The number of contexts is as defined in the CAL_HL_HWINFO[12:8] PCTX register bit-field
Figure 9-12 shows the internal architecture of the pixel extraction module. It is composed of a 64-bit input buffer plus one 64-bit buffer per context (the number of contexts is as defined in the CAL_HL_HWINFO[12:8] PCTX register bit-field). It has two computation units that extract four pixels per cycle and return the unused bits into the local storage.
The pixel extraction engine does not process the VQ (data validity qualifier). It forwards the VQ when bypass mode is selected and replaces it by VQ=0 (all data valid) when data expansion is performed.