UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

cancel
Showing results for 
Search instead for 
Did you mean: 
Adventurer
Adventurer
717 Views
Registered: ‎11-24-2017

AXI DataMover control interface

Jump to solution

Hello guys,

 

In my design, I'm using AXI DataMover v5.1 IP core (PG022 from April 2017) to convert data from AXI4-Stream to AXI4-Memory Mapped format (S2MM). Consequently, I'm using S2MM part only of AXI DataMover IP core.

My goal is to alternatively store AXI4-Stream data in two different areas of BRAM memory. For that reason, through AXI4-Stream control interface (m_axis_s2mm_cmd_*) I continuously send the following commands:

 

m_axis_s2mm_cmd_tdata <= {4'b0, 4'b0, 32'h0, 1'b0, 1'b0, 6'b0, 1'b1, 23'h14}; 
// RSVD, TAG,  SADDR, DRR,  EOF,  DSA,  Type, BT

 

and

 

m_axis_s2mm_cmd_tdata <= {4'b0, 4'b0, 32'h400, 1'b0, 1'b0, 6'b0, 1'b1, 23'h14};
// RSVD, TAG,  SADDR, DRR,  EOF,  DSA, Type, BTT

With those commands, I try to specify the amount of data I want to send (e.g. 23'h14 in above commands) as well as the destination in BRAM memory area (e.g. 32'h0 and 32'h400 in above commands).

Control commands are sent one after another, continuously. As soon as s_axis_s2mm_cmd_tready signal allows me to pass the next command, I pass it. At the same time, I have AXI4-Stream data connected with s_axis_s2mm_* interface sending data in packets of 23'14 (20) Bytes

Should I wait for some kind of flag/confirmation from AXI DataMover IP before I send next AXI4-Stream command or it is OK to send the command I do? The approach I use seems to work on the simulation level.

 

Thanks in advance for your time and effort.

Sincerely,

Bojan.

 

0 Kudos
1 Solution

Accepted Solutions
Scholar jg_bds
Scholar
692 Views
Registered: ‎02-01-2013

Re: AXI DataMover control interface

Jump to solution

 

I notice that you're not providing CACHE and USER fields in your command.  The USER field is (probably) not important, but the CACHE might be: assuming the tool presumes a CACHE value of 4'h0, that translates to a MEMTYPE of "Non-bufferable".  That's not a type that's best used in a high-throughput pipeline. If possible, I'd use "Bufferable" (4'h1).

Otherwise, your interface seems fine. The DM IP will assert back-pressure by de-asserting the TREADY signal until it's able to accommodate another command word. It's better to make sure the command word is available even when it's not needed, rather than have it unavailable when it's needed.

The only downside is losing track of the number of outstanding commands that were issued, when you want to change things around. That's, of course, nothing a good reset couldn't fix. (So make sure you can properly reset the DM IP.)

-Joe G.

 

View solution in original post

5 Replies
Scholar jg_bds
Scholar
693 Views
Registered: ‎02-01-2013

Re: AXI DataMover control interface

Jump to solution

 

I notice that you're not providing CACHE and USER fields in your command.  The USER field is (probably) not important, but the CACHE might be: assuming the tool presumes a CACHE value of 4'h0, that translates to a MEMTYPE of "Non-bufferable".  That's not a type that's best used in a high-throughput pipeline. If possible, I'd use "Bufferable" (4'h1).

Otherwise, your interface seems fine. The DM IP will assert back-pressure by de-asserting the TREADY signal until it's able to accommodate another command word. It's better to make sure the command word is available even when it's not needed, rather than have it unavailable when it's needed.

The only downside is losing track of the number of outstanding commands that were issued, when you want to change things around. That's, of course, nothing a good reset couldn't fix. (So make sure you can properly reset the DM IP.)

-Joe G.

 

View solution in original post

Adventurer
Adventurer
660 Views
Registered: ‎11-24-2017

Re: AXI DataMover control interface

Jump to solution

Hello @jg_bds,

Thanks for your feedback. Concerning CACHE and USER fields in my command, I don't have them because I did not check Enable xCACHE xUSER  during customization of DM IP core. I did not check that field because I was not aware of CACHE and USER meaning. PG022 does not explain in details the meaning of those two fields .

I need DM IP for high-throughput pipeline so I'm interested in optimizing the things. Is your suggestion to check Enable xCACHE xUSER field, set 4'h0 for xUSER and 4'h1 for xCACHE ?

Where can I read more about the meaning of xCACHE xUSER fields?

Thanks once again for your great support.

Sincerely,

Bojan.

0 Kudos
Scholar jg_bds
Scholar
631 Views
Registered: ‎02-01-2013

Re: AXI DataMover control interface

Jump to solution

 

You likely can continue to ignore the USER signals, if they're not mentioned in the IP user guide.

The CACHE signals are covered in moderate detail in the AXI-4 Protocol spec.

-Joe G.

 

0 Kudos
Adventurer
Adventurer
625 Views
Registered: ‎11-24-2017

Re: AXI DataMover control interface

Jump to solution

OK, thank you very much, @jg_bds

0 Kudos
Scholar jg_bds
Scholar
617 Views
Registered: ‎02-01-2013

Re: AXI DataMover control interface

Jump to solution

My bad... I updated my B.C (before coffee) reply. We're not talking AXI stream on that side of the AXI DM IP.

0 Kudos