______
A _____| |________
______
B ______| |_______
Which edge arrives first?
I have two digital pulses that arrive at almost the same time, and I need to determine which pulse arrived first. I need to resolve to ~500ps, i.e. the pulses may arrive 500ps apart and I still need to be able to resolve which one came first. The pulses are the exact same width, they are wide (~10us) relative to the edge timing, and the period of the pulses is about 20ms.
Most of what I've come up with (anything flip-flop-based) doesn't work due to prop delays.
Since what I ultimately want to do is align the pulses, i.e. reduce the delta to 0, I thought about XORing the two pulses (theoretically producing an even shorter pulse the width of the delta) and then minimizing the width of the XOR'd pulse by adjusting the delay of one of the channels. Unfortunately most of the pulse is eaten alive by the rise/fall times of most logic (even PECL is questionable), so it's hard to get a large enough signal to process (peak detect with a diode, R and C and minimize the resulting voltage).
Any other ideas? I'm going to start looking at PLLs next, though I'd rather not if there's something simpler...