+ Post New Thread
Results 1 to 5 of 5
  1. #1
    Full Member level 3
    Points: 1,444, Level: 8

    Join Date
    Jul 2013
    Posts
    164
    Helped
    1 / 1
    Points
    1,444
    Level
    8

    How to avoid using clock trees in Zynq FPGAs?

    Dear all,

    I am designing some ring oscillators implemented in a Zynq 7000 FPGA and I have designed a period counter in order to measure the frequency of each ring oscillator. The clock signal of period counter is the output signal of the ring oscillator. My period counter is a synchronous counter that means all of its D flip-flops change state at the rising edge of the clock signal.

    My teacher said you HAVE TO come up with an Asynchronous period counter than a synchronous one since the number of clock trees in FPGA is limited and if you put for example 100 ring oscillators each individually connected to a period counter, you will see the problem of lack of the number of clock trees. First of all, is it correct??

    He also says, you have to force Vivado (I use 2017.1 version) NOT TO USE clock trees in your design and you have to change your period counter to an asynchronous one designed with T flip-flops. Is it possible to avoid using clock trees in design by a command or constraint in Vivado? Can you please let me know how?

    Also, my current period meter works very nice but I have no idea how to change it to an asynchronous by T flip-flops??!! Can anybody help me with those issues, please?

    kind replies and help are in advance appreciated.

    Regards,

    •   Alt15th June 2017, 00:35

      advertising

        
       

  2. #2
    Super Moderator
    Points: 26,240, Level: 39
    ads-ee's Avatar
    Join Date
    Sep 2013
    Location
    USA
    Posts
    5,956
    Helped
    1462 / 1462
    Points
    26,240
    Level
    39

    Re: How to avoid using clock trees in Zynq FPGAs?

    Quote Originally Posted by msdarvishi View Post
    My teacher said you HAVE TO come up with an Asynchronous period counter than a synchronous one since the number of clock trees in FPGA is limited and if you put for example 100 ring oscillators each individually connected to a period counter, you will see the problem of lack of the number of clock trees. First of all, is it correct??
    there are only so many regional and global clocks in each clock region of the device (not going to look it up for you in the zynq documentation).

    Quote Originally Posted by msdarvishi View Post
    He also says, you have to force Vivado (I use 2017.1 version) NOT TO USE clock trees in your design and you have to change your period counter to an asynchronous one designed with T flip-flops. Is it possible to avoid using clock trees in design by a command or constraint in Vivado? Can you please let me know how?
    probably use the -bufg 0 in the synthesis options. Tells the tool there are no bufg's available.

    Quote Originally Posted by msdarvishi
    Also, my current period meter works very nice but I have no idea how to change it to an asynchronous by T flip-flops??!! Can anybody help me with those issues, please?
    pretty easy to find with a search...try that next time...https://www.cs.umd.edu/class/sum2003...eq/asynch.html



    •   Alt15th June 2017, 04:00

      advertising

        
       

  3. #3
    Advanced Member level 2
    Points: 4,052, Level: 15

    Join Date
    Feb 2015
    Posts
    672
    Helped
    203 / 203
    Points
    4,052
    Level
    15

    Re: How to avoid using clock trees in Zynq FPGAs?

    The FPGA has limited clocking resources. For example, a limit of 32 global clock buffers. It looks like the Zynq allows 12 BUFG and 4 BUFR connections per clock region. This limits the number of clocking resources to 32 + 4*Regions total clocks used.

    That said, you might be able to increase this limit by some amount. The FPGA also has BUFIO -- these can clock IO resources like the ISERDES. This clock is intended to be routed to a BUFR for use beyond the IO. If the ring oscialltors are slow in comparison to the system clock, you may be able to infer the number of cycles the ring oscillator has performed using the ISERDES module and a LUT to form a johnson counter. This could increase the total number by 4*Banks.



    •   Alt15th June 2017, 04:56

      advertising

        
       

  4. #4
    Advanced Member level 3
    Points: 3,653, Level: 14

    Join Date
    Apr 2016
    Posts
    763
    Helped
    142 / 142
    Points
    3,653
    Level
    14

    Re: How to avoid using clock trees in Zynq FPGAs?

    How is the use of a clock tree meaningful for this experiment? I am lost.
    Really, I am not Sam.



  5. #5
    Super Moderator
    Points: 26,240, Level: 39
    ads-ee's Avatar
    Join Date
    Sep 2013
    Location
    USA
    Posts
    5,956
    Helped
    1462 / 1462
    Points
    26,240
    Level
    39

    Re: How to avoid using clock trees in Zynq FPGAs?

    Quote Originally Posted by ThisIsNotSam View Post
    How is the use of a clock tree meaningful for this experiment? I am lost.
    Seems the OP is planning on having >100 ring oscillators in the Zynq and wants to put counters on all of them and is running out of clock domains (in the clock regions) in the FPGA.

    Sometimes I don't get what the point of some of these university "designs" are.



--[[ ]]--