13.4.12 Bit Manipulation
The 32-bit DMA Controller can perform real-time bit manipulation on the 32-bit data word being moved from the memory-mapped source to the destination location. The bit manipulation is made up of invert, clear and set functions, connected with their associated mask register, and daisy-chained together. Note that each DMA channel is equipped with a one-bit manipulation logic block, and bit manipulation is applied to the DMABUF[31:0] bits during the write cycle, when the data are being stored to the destination location, once the bandwidth has been allocated to the requesting DMA channel.
Each mask register bit (see DMAxINV, DMAxCLR and DMAxSET) is responsible for enabling its bit manipulation function onto the
corresponding data bit, where logic ‘0
’ maintains the original bit
value of the input data. The data coming out of the bit manipulation logic block can be
expressed as:
{[DMABUF[n] XOR DMAINVx[n]]
AND ~DMACLRx[n]}
OR DMASETx[n]