cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Highlighted
Participant
Participant
1,497 Views
Registered: ‎05-16-2018

FFT IP Core - ZCU102 UltraScale

Jump to solution

I have successfully ran the FFT example design provided in this answer record (https://www.xilinx.com/support/answers/58582.html) on the Zynq 7 series.

I am now trying to make it work on the ZCU102 Ultrascale board.

I changed the target part of the project inside of Vivado and then updated the IPs, but one of the ip blocks, called "edge detect" is not available for the ultrascale family, for whatever reason. So, I had to remove it from the block design and attach a constant set to "1" to the "config_tvalid" port of the FFT block.

Whenever I run the application, it hangs at the DMA transfers for some bigger lengths of the FFT. I made sure the set the DMA buffer to the maximum (26 bits).

The weird thing is that, if I take out the run-time configurability of the FFT block, the DMA doesn't get stuck, so I really think it has to do with the deletion of the "edge detect" ip.

Is there a replacement for it? Should the FFT block work with a constant 1 at the "config_tvalid" port? Do you think there is something else that I'm missing in my design?

 

Thanks.

Tags (3)
0 Kudos
1 Solution

Accepted Solutions
Highlighted
Xilinx Employee
Xilinx Employee
1,477 Views
Registered: ‎08-02-2011

The edge detect is needed because you only want to assert tvalid once to commit a change to the configuration of the FFT. Not surprised it doesn't work with tvalid tied high.

 

The edge_detect block is just a little custom IP. You could click the 'edit in packager' button and go add the newer devices that have been added to Vivado since that design was posted.

 

Or a quicker hack i've used before is to tweak the component.xml file. Look for the supportedFamilies tag:

<xilinx:supportedFamilies>
<xilinx:family xilinx:lifeCycle="Beta">artix7</xilinx:family>
<xilinx:family xilinx:lifeCycle="Beta">qzynq</xilinx:family>
<xilinx:family xilinx:lifeCycle="Beta">zynquplus</xilinx:family><xilinx:family xilinx:lifeCycle="Beta">azynq</xilinx:family>
<xilinx:family xilinx:lifeCycle="Beta">zynq</xilinx:family>
</xilinx:supportedFamilies>
www.xilinx.com

View solution in original post

3 Replies
Highlighted
Xilinx Employee
Xilinx Employee
1,478 Views
Registered: ‎08-02-2011

The edge detect is needed because you only want to assert tvalid once to commit a change to the configuration of the FFT. Not surprised it doesn't work with tvalid tied high.

 

The edge_detect block is just a little custom IP. You could click the 'edit in packager' button and go add the newer devices that have been added to Vivado since that design was posted.

 

Or a quicker hack i've used before is to tweak the component.xml file. Look for the supportedFamilies tag:

<xilinx:supportedFamilies>
<xilinx:family xilinx:lifeCycle="Beta">artix7</xilinx:family>
<xilinx:family xilinx:lifeCycle="Beta">qzynq</xilinx:family>
<xilinx:family xilinx:lifeCycle="Beta">zynquplus</xilinx:family><xilinx:family xilinx:lifeCycle="Beta">azynq</xilinx:family>
<xilinx:family xilinx:lifeCycle="Beta">zynq</xilinx:family>
</xilinx:supportedFamilies>
www.xilinx.com

View solution in original post

Highlighted
Participant
Participant
1,463 Views
Registered: ‎05-16-2018

Thanks bwiec,

 

That worked!

0 Kudos
Highlighted
Observer
Observer
486 Views
Registered: ‎12-26-2018

At the end of your dma-fft loopback,Did your RX buffer equal your TX buffer?

 

I dont understand why the TX buffer would equal the RX buffer if the data is being FFT'd.

 

 

I'm also trying to do the example on a zcu102 on linux. I've tried the udmabuf driver to make the dma transaction from the arm but the end result the RX buffer is not equal to the TX buffer.

0 Kudos