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

timestamping inputs to the nanosecond

Unsolved
4 posts / 0 new
xav's picture
xav
Junior(0)
timestamping inputs to the nanosecond

Hi,

I don't know much about FPGAs, but from the information I could gather they can be a great answer to my quest; I think especially the MicroZed could be the magic I'm looking for to implement what I need. Could some of you tell me if it's doable ?

Here are my needs: I have a few inputs (about half a dozen) which are square 1Hz signals, more or less stable. For each signal I need to precisely timestamp its rising edge with respect to a very precise master clock (also 1Hz), down to a nanosecond measurement.

Is it possible to do that with a Zynq ?
Does it leave some "free space" on the FPGA to implement other functions ?

Thanks,
Xav

zedman2000's picture
zedman2000
Moderator(2)
Hi there,

Hi there,

The MicroZed product line has Artix fabric, which is more power efficient and lower speed than his faster bigger brother using Kintex fabric. Using Vivado and the Zynq 7020 version as a test, I am able to see that the Clocking Wizard only allows you to configure the internal clocks to 800MHz MAX. I then changed to a 7030 (the fastest PicoZed), which also demonstrated a clock limit of 800MHz. This does not go higher until you start getting into higher speed grades (933Mhz and 1066Mhz).

I would suggest you look at using the FMC Carrier card
http://microzed.org/product/microzed-fmc-carrier
with a custom FMC card similar to this one:
http://www.sevensols.com/index.php?seccion=1400&subseccion=1439

It seems that card will do exactly what you need!

To answer your questions, without doing something with external hardware, I do not think that you are going to get to a nanosecond of accuracy with the Zynq family due to the speed capability of the input pins as well as clock frequency specifications. If you use the above listed card, I feel that there will be plenty of room in the Zynq to do many things and implement many functions. Especially if you look at leveraging the built in hardware accelerators which do not take up any logic except what you need to link those accelerators to any logic that you intend to use. If you use the function directly, there is 0 cost to the fabric of the Zynq!

--Dan

xav's picture
xav
Junior(0)
Hi Dan,

Hi Dan,

thanks for your answer. I have seen some papers where they do time measurement with greater precision than the FPGA's clock by using "carry chains", e.g.: http://pwt.et.put.poznan.pl/PWT_2012/PWT%202012_2242.pdf
Is that possible with the Zynq ?

Xav

zedman2000's picture
zedman2000
Moderator(2)
I cannot comment on how well

I cannot comment on how well this will work, but the document you linked spoke about using what seems to be Spartan 6 to accomplish their goals. The Zynq has Series 7 fabric which is faster. It appears they are using some kind of interpolation. That same structure should be able to be implemented in Zynq.

So, Is it possible to implement this, I think yes. I just cannot comment on how well it will work. Based on the difference in fabric, I would think this will work better on the Series 7 hardware, but I have not used such a technique in the Series 7 fabric. I have used something similar in Spartan 3E, but that was quite some time ago.

There is certainly enough clocks to implement this. Fabric resource-wise, I do not think that you will have issues. I think you will probably have a good amount of resources left over. One advantage to using the MicroZed or PicoZed as platforms, you can start your development using the larger parts, then as you get your design worked out, you can migrate down to the smaller parts for cost reduction / production runs. Yet it gives you the flexibility to use the larger platforms to work out your ideas without the need for optimization during development.

Please post back your results!  I think everyone would be interested in seeing what happened!

--Dan