Multi-Sourcing Configurations
Enabling multi-sourcing for a device file will allow you to specify multiple possible configurations for the test devices using that file. We call these 'Sources'. Tests for these devices can specify a source to use or iterate through all possible sources until a matching component is found. When first enabling multi-sourcing for a device file, sources will be automatically generated for all existing device configurations which means previously configured devices will continue to use the same set of configuration values as before.
Configure Multi-sourcing Dialog
The 'Configure Multi-Sourcing' dialog is where we define and allocate sources for a test device file. It can be accessed from the Categorise Device screen by either configuring categorised test devices or when assigning uncategorised test devices by clicking the Configure Multi-Sourcing button in the Configure Test Device Dialog.

In the 'Device Sources' panel you can add, remove and duplicate sources and assign which devices are able to use each source. When a source is selected, the 'Edit Sources' panel will display the configuration values which have been set for that source. If undefined, sources will use the device file's default configuration values.
The Revert to Single-Sourced button becomes enabled if each device has precisely one source enabled. Clicking the button will convert the device file back to being single-sourced in case the board file needs to be compatible with older versions of XJDeveloper.
XJEase functions
In order to use multiple sources when testing, you must use the new XJEase functions for getting and setting a device's current configuration source. GET_DEVICE_SOURCE_LIST() returns a list of names of sources enabled for the device currently being tested. SET_DEVICE_SOURCE(sourceName) sets the configuration values of the current test devices to those of the given source. The XJEase test function below shows how you can combine these XJEase functions in practice to iterate through the current sources for a device, continuing the test once a match is found and printing out the selected source's name in the test output.
string[] sourceList := GET_DEVICE_SOURCE_LIST(); FOR i := 0 TO WIDTHOF(sourceList) -1 SET_DEVICE_SOURCE(sourceList[i]); PRINT("\nUsing Source: ", sourceList[i], "\n"); // Verify values read are correct IF (ConfigurationMatchesFittedPart) THEN PRINT("Part match found. Source ", sourceList[i], " selected.\n\n"); RETURN; ELSE PRINT("Does not match expected part"); END; END;

Multi-sourcing variations
The sources enabled for each device can be varied by opening the configure multi-soucing dialog from the variants screen.
You cannot edit a source's configuration values from the variants screen. If you want to change the configuration values you would need to create a new source with the desired values in the root project and then vary the device's enabled sources to include this new source from the variants screen.
A device file cannot be made multi-sourced or converted back to being single-sourced from the variants screen. This must be done via the root project.

XJTAG v4.1.100