Dynamic Control Packet v2.0 - 2.0 English

RFSoC DFE PRACH LogiCORE IP Product Guide (PG391)

Document ID
PG391
Release Date
2024-05-30
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 fields of the dynamic configuration packet v2.0 are detailed in the following table.

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 will be of "length" slots. Length == 0 should not be used.
frameStructure 8 The frameStructure, in conjunction 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 the 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 by the FT PRACH.
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 could to dual mod count create a fractional phase increment. The single mod count sets the number of samples which use an increment of FCW. Setting Single mod count to 0 will apply FCW to all increments.
DualModCount 32 The dual mod count sets the number of samples which use an increment of FCW+1. The NCO will apply "single mod count" increments of FCW followed by "dual mod count" of FCW+1.

The decimation field sets the total decimation experienced by the CC samples during the PRACH capture. This value should match the values described in the Table 1 table. If two or more frequency adjacent PRACH channels are extracted, the decimation rate must be scaled down accordingly. Any selected decimation rate must be chosen 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

Bits [7:4] of the frameStructure field in the dynamic control packet are interpreted 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

Bits [3:0] of the frameStructure field in the dynamic control packet are interpreted 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 the method already described for static scheduling, except that some of the arguments passed to XDfePrach_AddRCCfg and XDfePrach_UpdateRCCfg 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;
  • The Frequency member 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 will remain in effect for all dynamically scheduled RACH captures using the corresponding RCID, even if the NCO frequency or DDC decimation rate are changed dynamically.

Frequency

The Dynamic Control Packet allows direct control of the demodulation frequency used in the core. This is achieved 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. They are:

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

Dual Mod count and Single mod count allow fractional phase increments to be specified. If the desired frequency FCWIdeal can be represented as an integer value plus 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.

To convert to this from the legacy DCP, the first step is to calculate the desired frequency. This is given by:

FDesired = (freqdemod * 232 * (SCS/2)) = - (freqoffset * 232 * (SCS/2))

Where the SCSPRACH value forms part of the FrameStructure field in the legacy packet.

Depending upon the mode of operation, it may be desired to add an "offset" to the desired frequency. This is to take account of the fact that the frequencyOffset in the legacy DCP can specify the "center" or "bottom" frequency (see Calculating Frequency Offset). The new DCP should always specify the center of the band that is being demodulated, so any offsetting must be included.

When the desired frequency is known, if can be used 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 it can be applied directly to FCW, and Single Mod Count and Dual Mod Count should be set to 0.

If it is not an integer value, floor (FCW) should be set in field FCW. The values S and T should be calculated from the fractional part and used to set Single Mod Count and Dual Mod Count. For the supported PRACH formats, any non-integer FCWideal will have 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).