In the 2015.1 release, SDK has the ability to connect, download and debug multiple devices connected via multiple cables.
This Answer Record discusses this feature in a simple multi device system using multiple cables.
The Hardware referenced in this demo is as follows:
The Bitstream is generated, and Exported to SDK resulting in two HDF files.
The following steps will show how to connect, download and debug multiple devices in SDK.
Step 1: Launch SDK
SDK can be launched from Vivado, or in standalone mode.
If exported from Vivado, the SDK will detect the HDF file, and create a Hardware Platform based on this HDF file.
However, users can launch SDK in standalone, and then create a workspace and create the Hardware Platform using the HDF as an Input file, and then build from there.
It is the second flow that is outlined below.
Step 2: Create Hardware Platform Specification Projects
Once the workspace is created, the Hardware Platform for each device needs to be created.
To do this select File -> New -> Project -> Xilinx -> Hardware Platform Specification
Click Next to continue.
Browse to the HDF file that was exported from SDK and Select Finish to continue:
Repeat this for the MicroBlaze design.
You will then have two Hardware Platform Specification Projects:
Step 3: Create Application projects
In this demo, Hello World applications will be created for each target hardware Platform specification.
To do this, go to File -> New -> Application Project:
Under the Target Hardware, select the Hardware Platform for the MicroBlaze system that was created in Step 2.
Name the Project, and allow the tools to create the BSP.
Select Next to continue:
Select the Hello World Template.
Select Finish to continue:
Repeat this for the other Hardware Platform Specification.
In the flow below, the Hello World application and BSP were created for both CPU on the Zynq (ZC702) device.
This will look like the following:
Note: For ease of use, each Hello World print statement has been updated to reflect the processor it is being executed on.
Step 4: Connect Hardware
The two devices (Kintex-7, and Zynq) can be seen connected to the PC via a USB hub.
Here two different cables are used: Digilent and a Platform USB.
The USB UART for both boards is also connected as this will be used for the Hello World applications.
Step 5: Configure Hardware via SDK
Programming the device in SDK 2015.1 is similar to how this was achieved in previous versions.
However, the user now has the ability to target multiple cables.
To program the Kintex device, go to Xilinx Tools -> Program FPGA.
Select the "MicroBlaze System" Hardware Platform Specification.
You can use SDK System Debugger to debug all devices connected across all of the debug cables.
To set up a Debug Configuration, go to Debug -> Debug Configurations:
In the GUI, double click on the C/C++ application (System Debugger).
Name the debug config.
Set the Debug Type as Standalone Application Debug.
Choose the Hardware Platform Specification from the Hardware platform drop-down.
Press Select on the FPGA Device.
You can then untick the Auto Detect, and choose the device that you want to debug:
Next, open the Application tab.
Highlight the processor and tick the Download Application box.
Make sure that the Project name and Application fields are populated correctly.
Select Apply to continue:
You can repeat this for all devices detected over all cables connected.