cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Highlighted
Anonymous
Not applicable
2,485 Views

tkeep signal in AXI DMA and tstrb [3:0] in Custom AXI Stream IP

Hi, 

I am packaging a custom AXI Stream IP which I need to connect to AXI DMA through AXI4-Stream Data FIFO. I notice that there is a tkeep [3:0] in S_AXIS_S2MM and M_AXIS_MM2S ports of AXI DMA. However in the custom AXI Stream IP there is tstrb [3:0] instead of tkeep [3:0]. I am wondering what is the difference between these two signals. Is that Ok to connect tstrb [3:0] to tkeep [3:0] ? The other signals (tdata, tready, tvalid, and tlast) are the same in AXI DMA and also in Custom AXI Stream IP. 

0 Kudos
4 Replies
Highlighted
Scholar
Scholar
2,447 Views
Registered: ‎02-01-2013

TKEEP and TSTRB aren't the same signal. Their importance depends on the context of their use. If you're simply looking to move all the bytes between two IP modules, just connect the AXIS ports together. The tool should not connect the signals together, and will resolve the missing connections based on AXIS spec rules:

2018-12-19_12-53-44.jpg

-Joe G.

 

Highlighted
Anonymous
Not applicable
2,402 Views

Yes, when I connect the AXI master port to AXI slave port, the tool does not connect tkeep signal and tstrb signals. Should I connect tkeep to 1 in AXI streaming ?  

0 Kudos
Highlighted
Scholar
Scholar
2,377 Views
Registered: ‎02-01-2013

I assume you're asking if you should drive TKEEP to 1, inside your AXIS Master...?

You could do that--if your intent is to qualify every byte as relevant. Or you can simply ignore TKEEP, and let tool assume that TKEEP = 1 for all bytes. See the first Default Rule, above.

Once again, the distinction between TSTRB and TKEEP depends on your context. TKEEP is more controlling, as a (logical) byte valid. TSTRB is subordinate, as a (positional/timing) byte valid. It's possible that whoever originally crafted your IP may have misunderstood the proper use of these qualifiers--and TKEEP should have been used instead of TSTRB. Regardless, if you don't understand them, it's better to let the tool resolve them for you.

-Joe G.

 

Highlighted
Anonymous
Not applicable
2,359 Views

Hi, I am having a custom AXI Stream whose M_AXIS is connected to S_AXIS S2MM of AXI DMA. The signals TSTRB M_AXIS and TKEEP in S_AXIS S2MM are not connected by the tool. 

In this application all the bytes from custom AXI Stream are valid and there is no need of data alignment/positioning. In this case should I safely ignore these both signals and leave them un-connected by assuming that the default value of S_AXIS S2MM_TKEEP is 1 ?  

0 Kudos