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:
- Double-clickmmultadd.hin the folder view underlab3/srcto bring up the source editor panel.
- Just above the
mmult
function 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)
- Right-click the top-level folder for the project and clickClean Projectin the menu.
- 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.
- 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
AXIFIFO
data mover has been assigned the
M_AXI_GP0
port, while the other two data movers are associated with
S_AXI_ACP
.
![](//www.rushcopely.com/html_docs/xilinx2017_1/sdsoc_doc/topics/images/ug1028_images/lab3_data_mover_selection.png)
- 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.