![](http://datasheet.mmic.net.cn/390000/TSB42AA4I_datasheet_16839080/TSB42AA4I_53.png)
41
4 Internal Functions
4.1
Data Buffers
4.1.1
Byte Stacking and Endianness
All access to and from the internal transmit and receive FIFOs is 32 bits wide. Since the HSDI is only 8 bits
(or one byte) wide, a byte stack/unstack operation must be performed at the HSDI data port. The order in
which bytes are stacked/unstacked determines the endianness. This
endianness
is programmable. (note
that the endianess setting does not affect the stacking of individual bits into the first byte buffer for the serial
mode. This stacking is fixed and always expects to receive the bits in order
Selecting big endian would put the first byte received into the most significant bit location of the stacking
buffer, and each consecutive byte into successively lower significant byte locations. Selecting little endian
would put the first byte received into the least significant byte location and each consecutive byte into
successively higher significant byte locations.
The endianess of the byte stacking operation can be programmed to either
little endian
or
big endian
(default) independently for each port.
4.1.2
Buffer Overflow/Underflow Status
The
GPIO
signals can be used for applications where the HSDI host needs to burst data into a ceLynx
transmit buffer and will need a look ahead indicator of the buffer’s content status. This allows for a more
efficient memory transfer from the applications memory space to the transmit FIFO since the host controller
could start and stop memory transfers on appropriate boundaries. The full and empty levels of each buffer
are programmable via CFRs by the host controller to allow the user customization when the controller is
notified of a pending full or empty status. Since these signals are application dependent, they are routed
to multifunction pins (
GPIO
) on the device. The buffers also have programmable watermarks, which can
cause interrupts to the external CPU.
4.1.3
Data Buffer Setup
The data buffer can be programmed in up to eight different partitions. Because of this, the registers are
usually described once, but have eight different instances to control the eight different buffers. For example,
the DB(N)CFG0 register is the description for HSDI buffer settings. The actual settings for buffer 0 are
programmed in register 0x15C. The settings for buffer 1 are programmed in register 0x174.
The data buffers have default settings for data type and direction. The transmit data path has default values
for header registers which match the buffer defaults.
If the buffer defaults are changed, the header registers must be reprogrammed to reflect the change.