PRACH Extraction Without Using Internal Scheduler - 2.0 English

RFSoC DFE PRACH LogiCORE IP Product Guide (PG391)

Document ID
PG391
Release Date
2024-05-30
Version
2.0 English

If the "Remove Internal Scheduling" option is selected at core generation, the DFE PRACH core will not include any hardware to perform PRACH capture scheduling. This mode of operation is referred to as "Always On". Once the RCID channel has been triggered in this mode, it will generate a continuous stream of output samples at the programmed output sample rate until it is disabled.

With this option enabled, when adding a new channel, the core will behave as illustrated in the following figure.

Figure 1. Adding a New Channel

The core is configured using the API. This is used to set up the Component Carriers and the RACH channels. This determines which Component Carrier each RACH channel extracts data from, which demodulation frequency each RACH channel uses, and the decimation that is applied to each RACH channel.

As with previous versions of the core, the new configuration is loaded into the core through the application of the RACH Update trigger. An immediate or single-shot trigger should be used when applying the RACH update.

Once the RACH update has been applied, the new RACH channel(s) are started by applying the Frame Init trigger. When not using the internal scheduler, the Frame Init trigger should be configured as a single-shot trigger. It is used to indicate where the start of the CC sequence occurs. The Frame Init trigger must always be sent on the cycle preceding the start of the CC sequence.

Once the RACH sees the Frame Init trigger it will begin to output samples for the new RACH channel on m_axis_dout_. There will be a delay between the Frame Init Trigger and the first sample, which is dependent upon the input Component Carrier sample rate and the decimation rate that is applied to the channel. The spacing between channels is also determined by the input Component Carrier sample rate and the decimation rate.

The RACH channel will continue to produce output samples until the channel is disabled via the API and register interface. There will be no m_axis_dout_tlast signal until the channel is disabled. The process of disabling a channel is shown in the following figure.

Figure 2. Disabling a Channel

Disabling a channel is also achieved using the API. Registers are updated to remove the channel which is being terminated and these are written to the core.

As before, the new configuration is loaded in the core by applying a RACH Update Trigger. The channel will remain running until the Frame Init is applied. Once the Frame Init is sent, the core will mark the next sample from the RACH channel which is being disabled with TLAST. Each antenna from the ending RCID will be marked TLAST. Once the TLAST has been issued, the channel will be disabled and no more valid samples will be issued.

Adding and removing RACH channels should not impact any RACH channel which is already running.

In the multiband case, a separate Frame Init trigger is applied per band. RCIDs allocated to a given band will start and stop when the Frame Init for that band is triggered.

When not using the internal scheduler, there is no requirement for the Frame Init trigger to mark the boundary of the radio frames. Triggers can be sent at any point within the radio frame, provided that they meet the requirement of occurring on the cycle that precedes the CC sequence.