In the configuration of Zynq clock there are different types of clocks: input clock 33.3333 MHz Processor clock 666.6666 MHz DDR Clock 533.3333 MHz PL clock 250 MHz. What is the difference between them?


That means exactly what you wrote: if you need to supply some external clock to the chip, you use input clock; the processor clock is used to run processor; the DDR clock is used to communicate with external DDR memory, and the PL clock can be used to supply the programmable logic on the chip. Check this UG585 user guide chapter 25.

EDIT: (a response to your comment)

It is not enough to describe the speed of your design in terms of the clock frequency. You know that your design already has three different clocks, and each unit indeed runs at its own frequency, however, it does not mean that the unit with the higher frequency is faster. For example, your processor will be running at the 667MHz, but let's say it executes a function that takes say 1000 processor clock cycles when run instruction by instruction. This will take about total time 1.5us to return. Now, if you implemented this same function on hardware (to perform parallel) and optimized it (latency) to return in 100 PL clock cycles @250MHZ, this would take about 0.4us. So, even with the slower clock you sill get >3x speed. So, the slower clock does not necessarily mean slower performance (if this is your concern).

Your statement the maximum frequency of my design will be no more than 250 MHz is not entirely true (again the maximum clock frequency in the whole system is 667MHz), however, you can claim that your hardware block, or the entire PL runs at 250MHz clock. And this statement is not sufficient to know how fast is your design.

  • \$\begingroup\$ Thanks a lot. This will introduce another questions: Does that mean If I have code running only on the CPU without any PL or DDR. I can run it with 667MHz? And If I have a code running on the CPU and exchanges the data with DDR, I can run it with maximum of 534 MHZ? And If I have a code running on the CPU and exchanges the data with some accelerators in PL, then the maximum frequency of my design will be no more than 250 MHz? \$\endgroup\$ – Bonny Sep 22 '16 at 6:23
  • \$\begingroup\$ I am not asking about the total time of execution which is the number of clocks times the frequency. I am asking if we exchange the data between the PS and PL systems which have different frequencies. The slower system will slow down the faster one to his frequency. True? \$\endgroup\$ – Bonny Sep 23 '16 at 14:24
  • \$\begingroup\$ yes, that's true (but your processor will still be running at 667), but the data transfer will be at 250 and it may be even slower depending on the communication protocol between your PS and PL. I was just not sure why this (frquency) matters much to you. There are many other aspects that influence the data exchange between the PS and PL. So, I would say that frequency would matter when your data exchange was the bottleneck in the system. \$\endgroup\$ – Nazar Sep 23 '16 at 14:44

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.