This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

BCP - FFTC chain

I am running some simulations on the C6670 using the following configuration in my computer:

CCS  Version: 5.1.0.09000
MCSDK v.2_00_05_17
PDK_C6670_1_0_0_17

I want to obtain the whole LTE DL-SCH processing chain as depicted in the BCP's User's Guide. It is clear that BCP's output and FFTC input must be linked somehow, but I am having some difficulties. After reading the documentation and the code used in the Bcp_example project, I understand that BCP output packet is buffered after calling Bcp_recv in pRxDataBuffer. Am I wrong? Does anybody know how to parse the data pointed by pRxDataBuffer to I-Q pairs to use in the FFT?

Thank you in advance,

Oscar

  • Hi Oscar,

    The BCP MOD (last sub-module in the LTE DL-SCH BCP processing) output data format depends on the mode of operation selected in the configuration header. The supported operation modes and the corresponding output formats are described below (Refer section 4.6.1.2 of the BCP user guide for details).

    1. Soft Modulation Mode
      Stream of 2-dimensional constellation points, each of which is represented by a pair of 16-bit integers; 16-bit for Inphase (real) and 16-bit for the Quadrature (imaginary). Four of these pairs are output at a time in order to fill completely the 128-bit payload. The I/Q order can be reversed via the jack_bit packet header configuration field.
    2. Hard Modulation Mode
      In hard modulation mode, the output data format depends on the selection of compressed or uncompressed output mode. The data consists of only one of the following.
    • Uncompressed: Stream of 2-dimensional constellation points, each of which is represented by a pair of 16-bit integers; 16-bit for Inphase (real) and 16-bit for the Quadrature (imaginary). Four of these pairs are output at a time in order to fill completely the 128-bit payload. This is referred to as MOD output uncompressed mode. The I/Q order can be reversed via the jack_bit packet header configuration field.
    • Compressed: Stream of 2-dimensional constellation points, each of which is represented by an 8-bit integer, which in turn represents the index into a predefined table containing I and Q components of the constellation points. This is referred to as a MOD output compressed mode. Only BPSK, QPSK, 16-QAM and 64-QAM are supported in the compressed mode.
    • Please note that when using Soft modulation mode, a partial interleaving operation is required to be performed either using EDMA or software to complete the channel interleaving as described in section 4.6.1.2.1 of the BCP user guide. Furthermore, the output from BCP (which is per user based), needs to go through Resource Mapping (as per the 3GPP specification) before it can be passed on to the FFTC for IFFT. EDMA can be used to accelerate the Resource mapping operation as indicated in the LTE DL-SCH use case example in the BCP user guide (section 2.3.1).

    Regards
    -Nitin

  • Hi,

    [In the BCP_exampleProject]

    Why is the Bcp_rxProcessDesc function called 24 times for every sent packet? It looks like it is receiveng 24 packets from the BCP of size 2048 (+1 smaller) to finally get one of size 50400. Is this because the total received packet is bigger than the buffer size?

    Thank you.

  • Oscar,

    The BCP MOD sub-module produces only one output packet but since RX_DATA_BUFFER_SIZE (defined in bcp_lte_ul.c) is smaller than the size of the output data, the BCP Packet DMA sends the data in multiple linked descriptors. Starting with the head descriptor, the descriptors are linked using the Next Descriptor Pointer(Word 5 of the host packet descriptor) in each descriptor. The Packet length (Word-0 bits 21:0) in the head descriptor should match the size of the complete output packet in bytes i.e. 50400.

    Please note that this applies even in cases where BCP can actually produce more than one output packet for a single input packet. For example, in LTE-UL (PUSCH), the BCP Rate Dematcher sub-module emits an output packet for each code block in the transport block (one-to-many feature). If the RX_DATA_BUFFER_SIZE is smaller than the output data size, the data for each code-block will come out in multiple linked descriptors.

    Regards
    -Nitin