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