Controlling Data Mover Selection

In this exercise you add data mover pragmas to the source code from lab3 to specify the type of data mover used to transfer each array between hardware and software. Then you build the project and view the generated report (data_motion.html) to see the effect of these pragmas. Remember to prevent generation of bit stream and boot files, so that your build does not synthesize the hardware.

To add data mover pragmas to specify the type of data mover used for each array:

  1. Double-clickmmultadd.hin the folder view underlab3/srcto bring up the source editor panel.
  2. Just above themmultfunction declaration, insert the following line to specify a different data mover for each of the arrays and save the file.
    #pragma SDS data data_mover(A:AXIDMA_SG, B:AXIDMA_SIMPLE, C:AXIFIFO)
  3. Right-click the top-level folder for the project and clickClean Projectin the menu.
  4. Right-click the top-level folder for the project and clickBuild Projectin the menu.
    Important:The build process can take approximately 5 to 10 minutes to complete.
  5. When the build completes, in the Project Explorer view, double-click to openData Motion Reportfrom the Reports tab.
    The right-most column (Connection) shows the data mover assigned to each input/output array of the matrix multiplier.
    Note:The Pragmas column lists the pragmas that were used. Also, the AXIFIFOdata mover has been assigned the M_AXI_GP0port, while the other two data movers are associated with S_AXI_ACP.

  6. Remove the pragma#pragma SDS data data_mover(A:AXIDMA_SG, B:AXIDMA_SIMPLE, C:AXIFIFO)that you entered in step 2 and save the file.