Dynamic Control Packet v2.0 - Dynamic Control Packet v2.0 - 2.0 English - PG391

RFSoC DFE PRACH LogiCORE IP Product Guide (PG391)

Document ID
PG391
Release Date
2025-11-26
Version
2.0 English

The following diagram shows the structure of the updated dynamic configuration packet.

Figure 1. Dynamic Configuration Packet (v2.0)

Note: Dynamically-scheduled PRACH captures are one-off events that do not recur.

The following table details the fields of the dynamic configuration packet v2.0.

Table 1. Dynamic Configuration Packet v2.0
Field Name Bits Definition
RCID 4 RACH channel identifier (0-15). Must correspond to an enabled RACH channel.
CCID 4 Component carrier identifier (0-15) from which to extract the RACH channel.
Band 2 Band containing the CCID from which to extract the RACH channel.
Decimation 4 Decimation setting for this PRACH capture.
subFrameID 4 Subframe number for start of capture (0-9).
slotID 4 Slot number for start of capture (0-7 depending on sub-carrier spacing, as described in static scheduling section above).
Length 6 Duration of dynamic capture in slots. The PRACH capture has "length" slots. Do not use Length == 0.
frameStructure 8 The frameStructure, along with the CCID configuration, determines the decimation rate applied to the PRACH capture.

Bits [7:4] determine the target FFT size for the captured output.

Bits [3:0] determine the PRACH sub-carrier spacing (SCS).

Refer to Table 3 and Table 4 for full details.

Note: No longer used by the DFE PRACH core, but might be required for the PRACH FFT processing.
Preamble Control 2 This field can be set when PRACH channels are adjacent in frequency domain. This reduces the total decimation applied to the channel by a factor of 2x, 4x, or 8x.This alters the frequency offset (if used) to calculate the center of adjacent preambles rather than in the middle of a single preamble
Note: No longer used by the DFE PRACH core, but might be required for the PRACH FFT processing.

numSymb

4 numSymb is the number of FFTs required by the dynamic capture. The core captures sufficient samples to drive numSym+1 FFTs, each of the length given by frameStructure[3:0]. The field is diminished so a value of "0" capture 1 FFT, "1" captures 2 etc.
Note: No longer used by the DFE PRACH core, but might be required for the PRACH FFT processing.
cpLength 17 Cyclic prefix length.
Note: No longer used by the DFE PRACH core, but might be required for the PRACH FFT processing.
timeOffset 17 Time offset of PRACH from capture start position.
Note: Not used by the DFE PRACH core, but might be required for the PRACH FFT processing.
FCW 32 Frequency Control Word. This sets the NCO phase increment applied per sample.
SingleModCount 32 Dual Modulus settings allow precise control of the NCO frequency. The ratio of single mod count to dual mod count creates a fractional phase increment. The single mod count sets the number of samples which use an increment of FCW. Setting the single mod count to 0 applies FCW to all increments.
DualModCount 32 The dual mod count sets the number of samples which use an increment of FCW+1. The NCO applies "single mod count" increments of FCW followed by "dual mod count" of FCW+1. DualModCount is ignored if SingleModCount==0.

The decimation field sets the total decimation experienced by the CC samples during the PRACH capture. This value matches the values described in Table 1 table. If two or more frequency adjacent PRACH channels are extracted, scale down the decimation rate accordingly. Select a decimation rate from the values defined in the following table.

Table 2. Decimation Rates
Decimation Selected Decimation Rate
0001 2X
0010 4x
0011 8X
0100 16X
0101 32X
1000 3X
1001 6X
1010 12X
1011 24X
1100 48X
1101 96X
0000 Reserved
0110-0111 Reserved
1110-1111 Reserved

Interpret bits [7:4] of the frameStructure field in the dynamic control packet according to the following table.

Table 3. Bits [7:4] frameStructure Field
frameStructure[7:4] PRACH FFT Size
0000 Reserved (no PRACH FFT processing)
0001...0110 Reserved
0111 128
1000 256
1001 512
1010 1024
1011 2048
1100 4096
1101 1536
1110, 1111 Reserved

Interpret bits [3:0] of the frameStructure field in the dynamic control packet according to the following table:

Table 4. Bits [3:0] frameStructure Field
frameStructure[3:0] PRACH Subcarrier Spacing Δf
0000 15 kHz
0001 30 kHz
0010 60 kHz
0011 120 kHz
0100...1011 Reserved
1100 1.25 kHz
1101 Reserved
1110 5 kHz
1111 7.5 kHz (LTE only)

The RACH channel ID and component carrier ID in the dynamic configuration packet must match valid RCIDs and CCIDs in the current configuration. The procedure for adding CCs and RACH channels when using dynamic scheduling is identical to the method already described for static scheduling. However, some of the arguments passed to XDfePrach_AddRCtoRCCfg and XDfePrach_UpdateRCinRCCfg are ignored when using dynamic scheduling. In particular:

  • The contents of the XDfePrach_Schedule structure are not used.
  • The DecimationRate and SCS members of the XDfePrach_DDCCfg structure are not used at all in dynamic mode. The channel decimation is specified directly in the "Decimation" field of the DCP.
  • The Frequency , FreqSingleModCount, and FreqDualModCount members of the XDfePrach_NCO structure are not used.

These settings are overridden by the values provided in the dynamic configuration packet.

Note: The gain settings for the DDC stages and for the NCO provided when adding or updating the RACH channel remain in effect for all dynamically scheduled RACH captures using the corresponding RCID. These settings do not change even if you change the NCO frequency or DDC decimation rate dynamically.

Frequency

The Dynamic Control Packet allows direct control of the demodulation frequency used in the core. It does so by specifying how the phase accumulates, per sample, for the internal NCO.

The three fields in the new DCP are all concerned with setting the NCO phase accumulator. The NCO Configuration section describes how these three fields combine to create an approximation of a fractional phase accumulation. They are:

FCW
This specifies how much the NCO phase accumulator is incremented by at every sample.
Single Mod Count (S)
This specifies the number of times the phase accumulator is incremented by FCW.
Dual Mod count (T-S)
This specifies how many times the phase accumulator is incremented by FCW+1.

Dual mod count and single mod count allow you to specify fractional phase. If the desired frequency FCWIdeal is represented as an integer value plus a rational fraction (FCW + (T-S)/T), then T samples of FCWIdeal:

T*FCWIdeal = T*FCW + (T - S)==(S) * FCW + (T-S)*(FCW+1)

So the dual mod fields provide a way to specify an FCW with a rational fractional increment, which has zero phase drift over T samples. The new DCP should always specify the center frequency of the band that is being demodulated (corresponding to a single or multiple adjacent RACH channels). In effect the opposite of this value is used to derived FCW.

When the desired frequency is known, use it to calculate FCW:

FCWideal = 232 * fDesired/fsample

Where fsample is the sample rate of the component carrier that the PRACH is being extracted from.

If FCWideal is an integer value, you can apply it directly to FCW. Set single mod mount and dual mod count to 0.

If it is not an integer value, floor (FCWideal) should be set in field FCW. You can calculate the values of S and T from the fractional part and use it to set single mod count and dual mod count. For the supported PRACH formats, any non-integer FCWideal has a fractional part equal to 1/3 (single mod count=2 and dual mod count=1) or 2/3 (single mod count=1 and dual mod count=2).