Additional Program Flows - 2.0 English

RFSoC DFE PRACH LogiCORE IP Product Guide (PG391)

Document ID
Release Date
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 may be considered.

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

Figure 1. Adding CCIDs or RCIDs

The figure assumes the software and RFSoC DFE PRACH core are active and running. The first thing the software does is confirm this by reading the operational status. It this returns 1, the core is operational.

When inserting new RCIDs and CCIDs, the software has to be aware of the existing CC configuration and RC configuration. In the figure, this is achieved by interrogating the core using XDfePrach_GetCurrentCCCfg and XDfePrach_GetCurrentRCCfg to read the current configurations the core is using. However, if the software preserves an internal copy of the CC configuration and the RC configuration, this stage can be omitted.

Once 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.

Having updated the CC and RC configurations, they must be written to the core. The software should set the trigger configuration for the RACH Update and the for the Frame Init. The RACH Update should be configured as a single-shot trigger and the Frame Init should be a Continuous Trigger. These triggers may be preserved from previous triggering activity, so this step may be optional.

XDfePrach_SetNextCfg will write all of the registers for the CCID and RCID configurations. It will then enable the triggers. The new configuration will be activated when the triggering conditions for the RACH Update are met and then the triggering conditions for the Frame Init are met.

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

Figure 2. Removing CCIDs or RCIDs

This follows a similar procedure as for adding a CCID or RCID. The major difference is that RCIDs should be 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, it should be confirmed that all of its RCIDs have been removed also.

Also, the 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.

Again, having updated the CCID and RCID configuration, the RACH Update and Frame Init triggers should be set and the XDfePrach_SetNextCfg used to transfer the CCID and RCID register contents and enable the triggers in the core.

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.