I am currently looking for a way to make a zero crossing detector (i.e. a detector that generates a TTL signal each time an input sine or square signal crosses the zero axis). The signals that I want to process have a very large bandwidth (from 0 to 100 MHz), so I need the generated TTL signals to correspond with a good precision to the real zero crossing points. I found a website showing ZC detectors based on XOR gates or comparators, but I was told that for high frequencies (above several MHz) some of the components are too slow and do not give reliable results.

Does someone have an idea on the way to make it?

Another challenge is that I would like also to be able to count (or to make a signal that is proportional to) the elapsed time between two successive zero crosses. This gives the time duration (i.e. a frequency measurement)for each frequency cycle. I do not know if there exists a circuit that is able to do that for such high frequencies.

Thanks a lot for your help.