Over the last few months, I have continued to experiment with my Zynq-7000 board. My board has been running well and is very stable. The specific Zynq chip I used was the XC7Z020-1CLG484I. I was curious if stepping up to a faster Zynq would be noticeable, especially given poor performance in Wayland/Weston.
The Z-7020 includes a dual-core ARM Cortex-A9. My board is built around a 484-pin BGA package of the Z-7020. For my initial build, I had used the -1 speed chip. The -2 and -3 speed chips should be options for drop-in replacements.
Zynq Device | Temp Grade Options* | Max Frequency |
XC7Z020-1CLG484I (my original build) | C/E/I | 667MHz |
XC7Z020-2CLG484[E/I] | E/I | 766MHz |
XC7Z020-3CLG484E (my upgrade) | E/I | 866MHz |
*C = Commercial (Tj= 0°C to +85°C), E = Extended (Tj= 0°C to +100°C), I = Industrial (Tj= –40°C to +100°C)
With the Z-7020 upgrade, I ended up using potentially faster (MHz) DDR3L RAM, but later realized it won't make a difference due to limitations of the Zynq.
Micron DDR Device | Specification |
MT41K256M16TW-125:P | 1600 MT/s, 1.25ns @ CL = 11 (DDR3-1600) Max frequency of 800 MHz. |
MT41K256M16TW-107:P (my original build*) | 1866 MT/s, 1.07ns @ CL = 13 (DDR3-1866) Max frequency of 933 MHz. |
MT41K256M16TW-093:P (my upgrade) | 2133 MT/s, 938ps @ CL = 14 (DDR3-2133) Max frequency of 1066 MHz. |
*While I used -107 in my first build, the timings in Vivado were set for -125.
Going from a Z-7020 -1 to a -3 is a 30% increase in maximum frequency. Will the change be noticeable?
Step One: Populate a new PCB with the -3 part. As part of this, I used the -093 DDR3L. I also used better tantalum capacitors (larger in capacity with lower ESR).
I then updated the Vivado block design to specify the -3 part, update the processor clock from 667 MHz to 866 MHz, and slightly adjusted the DDR configuration. The DDR memory clock was already set to its maximum of 534 MHz; this limitation means that the DDR selection from the table above doesn't seem to matter, as I can't even run an 800 MHz memory clock. Bummer!
As I was generating the block design in Vivado (running on Ubuntu), it required more than 40GB of RAM. My workstation has 32GB of RAM, and unfortunately, only had an 8GB swapfile setup. So... Vivado caused Ubuntu to crash. :( I added an additional swapfile of 64GB, and Vivado completed fine. Vivado RAM usage peaked around 45MB.
I updated PetaLinux with the latest hardware out of Vivado and did some cursory benchmarking using sysbench (which I added to my PetaLinux image). The results are pretty much as expected, given a clock increase from 667 MHz to 866 MHz.
Initial testing in Wayland/Weston may be a bit better, but not good enough to consider it usable.
Comments