Sorry, you need to enable JavaScript to visit this website.

AXI GPIO too slow

Unsolved
4 posts / 0 new
Erazz's picture
Erazz
Junior(0)
AXI GPIO too slow

Hi all,
 
I have a question regarding the AXI GPIO. Right now I have simple Block-Design with a ZYNQ and an AXI GPIO. The AXI GPIO is connected to one of the PMods and I am just toggling the Pins.
 
So far so good. Now the toggle frequency seems quite low. I set the FCLK_CLK0 to 50, 100 and 250 MHz and the frequency at which I am able to toggle the pmod pins is 1.1 MHz, 2.2 MHz and 3.8 MHz. Is it possible to get higher frequencies using the AXI GPIO? Did i forget something? For my project I need about 10 MHz.
 
I am using the ZedBoard Rev C1. Hope you guys can help me.
 
Thanks,
Hendrik

JFoster's picture
JFoster
Moderator(55)
Hello Hendrix,

Hello Hendrix,

What operating system are you using? Barmetal or Linux? Instead of just toggling the Pins, you should use a SPI block that has the PS tell it to do it in Fabric(Programmable Logic). This will help you avoid losing clock cycles.

I would suggest you go through our ZYNQ Hardware Tutorials for familiarization with Zynq Hardware Designs.

http://zedboard.com/course/developing-zynq%C2%AE-7000-all-programmable-s...

Also take a look at the MicroZed chronicles that cover SPI, Issues 81-84

http://zedboard.org/content/microzed-chronicles

--Josh

Erazz's picture
Erazz
Junior(0)
Hi Josh,

Hi Josh,
 
Thanks for the reply.
 
I am using PetaLinux and the build in UIO framework to access my memory-mapped device implemented in Zynq’s programmable logic fabric.
 
My main goal is to send a command string from my PC to a custom ZYNQ board via Ethernet and set the direction and value of 64 Pins based on my command string. It works but it is too slow. Latency is really important.
 
For testing purposes I wrote both a simple baremetal and a Linux application to toggle a few gpios and saw no difference between the two. The max frequency I achieved was 3.8 MHz, which is not enough.
 
I went through all the Hardware Tutorials and Workshops already and I am not sure if SPI is the solution to my problem.
 
Thanks,
Hendrik
 

JFoster's picture
JFoster
Moderator(55)
Hello Hendrik,

Hello Hendrik,

Have you tried using a SPI Controller? If you need assistance with setting it up you can refer to the MicroZed IIOT Kit reference design we have. It should help with your performance due to performing your task in the Fabric versus you losing clock cycles on the PS side.

http://zedboard.com/support/design/13591/116

--Josh