Additional Program Flows - Additional Program Flows - 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 figure in Stimulus Generation and Logging illustrates the program flow of the example design software. If modifying the supplied software, further program flows can be considered.

Adding One or More CCIDs or RCIDs

When adding one or more CCIDs or RCIDs to a running core using a single band, use the following sequence.

Figure 1. Adding CCIDs or RCIDs

The figure assumes the software and RFSoC DFE PRACH core are active and running.

  1. The software confirms that the core is active and running by reading the operational status. It this returns 1, the core is operational.
  2. When inserting new RCIDs and CCIDs, the software must be aware of the existing CC configuration and RC configuration. To do this, the software interrogates the core using XDfePrach_GetCurrentCCCfg and XDfePrach_GetCurrentRCCfg to read the current configurations the core is using. However, if the software has preserved an internal copy of the CC configuration and the RC configuration, it skips this stage.
  3. After the current CC and RC configurations are available, the software can add any new CCIDs or any new RCIDs to the configuration using XDfePrach_AddCCtoCCCfg and XDfePrach_AddRCtoRCCfg. New RCIDs can have new or existing CCIDs as their "source" CCID.
  4. After the CC and RC configurations are updated, they must be written to the core. The software sets the trigger configuration for the RACH Update and for the Frame Init. The RACH Update is configured as a single-shot trigger. The Frame Init is a Continuous Trigger. These triggers can be preserved from previous triggering activity, so this step can be optional.
  5. XDfePrach_SetNextCfg writes all of the registers for the CCID and RCID configurations. It then enables the triggers. The new configuration is activated when the following conditions are met:
    • Triggering conditions for the RACH Update are met
    • Triggering conditions for the Frame Init are met
  6. XDfePrach_SetTriggersCfg only needs to be called one time to configure the triggers in the API. It must be called before the first trigger enabling function XDfePrach_Activate. If it has been called previously, the Trigger configuration remains preserved in the API. Subsequent calls are optional and only required after any change is made to the Trigger configuration. If the subsequent optional call is required it should occur at the time indicated in the figure (before XDfePrach_SetNextCfg).

Removing One or More CCIDs or RCIDs

When removing one or more CCIDs or RCIDs from a running core, use the following sequence.

Figure 2. Removing CCIDs or RCIDs

This procedure is similar to adding a CCID or RCID. Differences between the two procedures are listed below:

  • RCIDs are removed before CCIDs. This is to ensure that any CCID that is removed is not listed as a "source" CCID for an active RCID. If removing a CCID, confirm that all of its RCIDs have also been removed.
  • Function calls to XDfePrach_AddCCtoCCCfg and XDfePrach_AddRCtoRCCfg are now calls to XDfePrach_RemoveCCfromCCCfg and XDfePrach_RemoveRCfromRCCfg. Removal is based on RCID and CCID number.
  • After updating the CCID and RCID configuration, set the RACH Update and Frame Init triggers. Use the XDfePrach_SetNextCfg to transfer the CCID and RCID register contents and enable the triggers in the core.
  • XDfePrach_SetTriggersCfg is optional in this flow and only required if a change has been made to the Trigger Configuration.

As with addition, removal is achieved when the triggering conditions for the RACH Update are met and then the triggering conditions for the Frame Init are met.