# Vivado HLS overlay problem

**URL:** <https://discuss.pynq.io/t/vivado-hls-overlay-problem/1630>\
**Category:** Support\
**Created:** [August 12, 2020, 5:23am UTC](https://discuss.pynq.io/t/vivado-hls-overlay-problem/1630 "2020-08-12T05:23:14Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![TingShen\_Kuo](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.pynq.io/tingshen_kuo/32/914_2.png) [@TingShen\_Kuo](https://discuss.pynq.io/u/TingShen_Kuo)\
**Post date:** [August 12, 2020, 5:23am UTC](https://discuss.pynq.io/t/vivado-hls-overlay-problem/1630/1 "2020-08-12T05:23:14Z")

</div>

Hi, i am now a beginner of Vivado HLS and i am going to create a acceleration of matrix multiplication.  
I am going to use Vivado HLS to create a custom pynq overlay on ultra96 v2 board.  
But i am now starting from doing simple acceleration of array adding to make myself familiar to hardware knowledge.  
Hope someone can give some advice!!  
 ![image](https://us1.discourse-cdn.com/flex019/uploads/pynq1/original/2X/7/7a59631c7e01cb6fc082aeda90b45c53f851f021.png)  
The input array is A[50] and B[50] , C[50] is the output i want to return.  
The question are as belows:  
(1) How can i return the C[50] so that i can see the result with python in jupyter notebook in pynq board?  
(2) Is there any other port such as m\_axilite or something else instead of axis?  
Thanks for helping! Hope you have a nice day!  
Tim

---

<div class="post-metadata">

**Author:** ![marioruiz](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.pynq.io/marioruiz/32/2177_2.png) [@marioruiz](https://discuss.pynq.io/u/marioruiz)\
**Post date:** [August 13, 2020, 8:20am UTC](https://discuss.pynq.io/t/vivado-hls-overlay-problem/1630/2 "2020-08-13T08:20:43Z")

</div>

Hi @TingShen_Kuo,

You can find some basic examples [here](https://pynq.readthedocs.io/en/v2.5.1/overlay_design_methodology/overlay_tutorial.html)

1. You can use AXI4-Stream and a DMA to move data from/to the PS. Or you can use AXI4 and connect to the GP or HP ports of the PS.
2. Yes, in the previous link there is an example with AXI4-Lite, but if you are after performance AXI4-Lite is not the way to go.

If instead of applying axis pragma you apply `s_axilite` Vivado-HLS should generate the logic. However, I will recommend to use `ap_ctrl_hs` so you can start your kernel after moving matrix A and B and polling when the kernel is done.

Mario

---

<div class="post-metadata">

**Author:** ![TingShen\_Kuo](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.pynq.io/tingshen_kuo/32/914_2.png) [@TingShen\_Kuo](https://discuss.pynq.io/u/TingShen_Kuo)\
**Post date:** [August 13, 2020, 4:47pm UTC](https://discuss.pynq.io/t/vivado-hls-overlay-problem/1630/3 "2020-08-13T16:47:50Z")

</div>

Thanks Mario! I will keep working on it.  
Have a nice day.  
Tim
