cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
akshay_iyngr95
Participant
Participant
5,721 Views
Registered: ‎02-19-2018

convert AXI Stream to AXI memory mapped

Jump to solution

Hi,

I need to convert AXI stream data to AXI4 . Which IP is suitable for this?

I tried using AXI memory to stream mapper IP but later got to know that it must be used in pairs.

Which IP can I use?

 

 

 

Thanks and regards,

Akshay M

0 Kudos
1 Solution

Accepted Solutions
u4223374
Advisor
Advisor
5,955 Views
Registered: ‎04-26-2015

@akshay_iyngr95 You're going to have to figure out some way of assigning addresses; doing automatic memory management is a vastly more complex task and requires a full CPU and operating system. For a simple project, just using fixed addresses (assigned during synthesis) is likely to be acceptable.

 

I'd normally use AXI Lite and a MicroBlaze or Zynq controlling all the DMA blocks. However, if you don't want to use AXI Lite, there's the AXI DataMover IP core which does much the same task using an AXI Stream for control.

 

View solution in original post

0 Kudos
10 Replies
u4223374
Advisor
Advisor
5,692 Views
Registered: ‎04-26-2015

This is exactly what the DMA block is for (or the VDMA, if you're working with images).

0 Kudos
akshay_iyngr95
Participant
Participant
5,673 Views
Registered: ‎02-19-2018

Hi, @u4223374

I'm sending stream data and it has to be converted to axi4 .

How can I get address for data in axi4? will it take automatically or should I provide some address manually through any other block? 

and should I compulsorily use the axi_lite in my design?

 

 

Thanks and regards,

Akshay M

0 Kudos
u4223374
Advisor
Advisor
5,956 Views
Registered: ‎04-26-2015

@akshay_iyngr95 You're going to have to figure out some way of assigning addresses; doing automatic memory management is a vastly more complex task and requires a full CPU and operating system. For a simple project, just using fixed addresses (assigned during synthesis) is likely to be acceptable.

 

I'd normally use AXI Lite and a MicroBlaze or Zynq controlling all the DMA blocks. However, if you don't want to use AXI Lite, there's the AXI DataMover IP core which does much the same task using an AXI Stream for control.

 

View solution in original post

0 Kudos
akshay_iyngr95
Participant
Participant
5,648 Views
Registered: ‎02-19-2018

Hi, @u4223374

 

Thank you

0 Kudos
p.hayk
Observer
Observer
5,606 Views
Registered: ‎11-21-2013

Hello,

 

Is it possible to use AXI DMA IP for this purpose?

 

Thanks

 

0 Kudos
satguy
Explorer
Explorer
5,600 Views
Registered: ‎04-19-2018
I guess it can be used. You might use the read channel only, to save some area.
0 Kudos
p.hayk
Observer
Observer
5,564 Views
Registered: ‎11-21-2013

Thanks!

To be honest I am new in AXI, can you please provide some help, reference documents please

0 Kudos
chathuranga1931
Observer
Observer
5,554 Views
Registered: ‎10-19-2017
Hello p.hayk,

I'm also new to AXI, but hope this will be little help.

To convert stream data into memory mapped data you can use, AXI DMA. And the dma can transfer the streamed data to DDR, or to a block ram as you wish.

What you have to do is connect your stream master into AXI_DMA, S_AXIS_S2MM interface and the other end connect the M_AXI_S2MM to your memory side (Like for DDR you have to connect ZYNQ HP port or for block ram you can directly connect to block ram slave interface. you may have to use AXI_Interconnect to connect AXI Master and Slave interfaces)

There are examples for AXI_DMA <Install location>\SDK\2016.4\data\embeddedsw\XilinxProcessorIPLib folder. You can use simple_poll example.

This will be a good start point for you, I hope.

Thank you.
0 Kudos
gilles007
Visitor
Visitor
2,551 Views
Registered: ‎12-11-2018

Hello

I am trying to read an image bare metal from SDK/Vitis (later on PetaLinux) to process this through a custom IP-core created in HLS. The HLS IP-core exists of blur & threshold:

#pragma HLS dataflow
hls::AXIvideo2Mat(video_in, img_1);

hls::GaussianBlur<5,5>(img_1, img_2, 0, 0);
hls::Threshold(img_2 ,img_3 , 200,255,HLS_THRESH_BINARY);

hls::Mat2AXIvideo(img_3, video_out);

Transforming an Image into an Mat2AxiStream through the testBench is fairly easy and everything works as intended when simulating. My only question is how to do this with a VDMA (or is DMA enough ?) and with/without OpenCV libs, is there any good examples with a full workflow from HLS-Vivado-Vitis on this ? I have searched most of the forums already.

 

Thank you

Gilles

0 Kudos
dgisselq
Scholar
Scholar
2,530 Views
Registered: ‎05-21-2015

@gilles007,

This is really off topic for the question currently at hand.  Let me recommend you consider reposting under the HLS forum to get the most attention to your issue.

Dan

0 Kudos