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: 
Highlighted
Observer maria@tbg
Observer
1,768 Views
Registered: ‎01-31-2017

data format (ILA)

Jump to solution

Hi all

 

We are still puzzling out a "simple" DMA project.

(which I posted already earlier https://forums.xilinx.com/t5/Zynq-All-Programmable-SoC/PS-PL-communication-code-review/td-p/766398

and https://forums.xilinx.com/t5/BRAM-FIFO/polled-simple-DMA-example-with-VHDL-interface/td-p/764830/page/2 )

 

Now I did a comparison on debugging my running VHDL code and the running VHDL code of the example project using ILA. (https://www.xilinx.com/support/answers/57561.html)

The individual signal lines are the same but the data format is weird.

 

1) Could anyone please explain me how to read the data? It is expected to be (decimal) 12 to 43 but the maximum value is 724183336 for example. When read in PS, the actual data is 43. Changing the radix doesn't help. [screenshot attached]

2) The .c code in PS writes u8 data into an u8 ptr but DMA expects u32 (as far as I understood it).

I don't quite get how this is done? (I don't understand that but is line "Value = (Value + 1) & 0xFF" type casting it somehow? [original .c file attached] 

 

Your help is very much appreciated.

 

Thanks, Maria

0 Kudos
1 Solution

Accepted Solutions
Observer maria@tbg
Observer
2,887 Views
Registered: ‎01-31-2017

Re: data format (ILA)

Jump to solution

Solved it.

 

It's four u8 numbers combined into one u32.

s_axis_tdata <= std_logic_vector(index_counter_u8+3) & std_logic_vector(index_counter_u8+2) & std_logic_vector(index_counter_u8+1) & std_logic_vector(index_counter_u8) ;

0 Kudos
3 Replies
Teacher muzaffer
Teacher
1,696 Views
Registered: ‎03-31-2012

Re: data format (ILA)

Jump to solution

maria@tbg you need to zoom on to a valid tvalid/tready transaction to see exactly what data is begin transferred which is difficult to see from the post you made. The transaction happens on the edge of the clock which see the tready & tvalid high for one full cycle. Zoom into that condition and review it and if it still doesn't make sense post here that portion of the waveform.

- Please mark the Answer as "Accept as solution" if information provided is helpful.
Give Kudos to a post which you think is helpful and reply oriented.
0 Kudos
Observer maria@tbg
Observer
1,651 Views
Registered: ‎01-31-2017

Re: data format (ILA)

Jump to solution

muzaffer

 

I did zoom in and now I also attach the screenshot.

As I said, the last value is this weird 724183336 which is supposed to be 43.

 

I've attached a zoom of hex radix and unsigned decimal radix.

I have absolutely no clue which data format that is, I thought it is unsigned decimal.

 

Your help is very much appreciated.

 

Thanks, Maria

zoom_hex_sc.png
zoom_unsigned_decimal_sc.png
0 Kudos
Observer maria@tbg
Observer
2,888 Views
Registered: ‎01-31-2017

Re: data format (ILA)

Jump to solution

Solved it.

 

It's four u8 numbers combined into one u32.

s_axis_tdata <= std_logic_vector(index_counter_u8+3) & std_logic_vector(index_counter_u8+2) & std_logic_vector(index_counter_u8+1) & std_logic_vector(index_counter_u8) ;

0 Kudos