Esta es la primera vez que oigo hablar de tus cosas de "time to digital converter". Probablemente sea porque nunca he intentado buscar una parte independiente como esta antes, lo cual se debe a que casi todos los microcontroladores tienen esta capacidad incorporada.
Muchos micros tienen la capacidad de capturar el valor de un temporizador de funcionamiento libre en el borde de una entrada digital. Eso parece ser lo que quieres. Necesita una resolución de 50 ns, por lo que el temporizador debe aumentar a una velocidad de 20 MHz como mínimo. Hay un montón de micros que pueden hacer eso. Algunos de los dsPIC, por ejemplo, pueden ejecutarse a una velocidad de instrucción de 40 MHz, que es también la velocidad en la que se puede incrementar el temporizador. Eso te daría el doble de la resolución que necesitas.
No está claro si desea medir el ancho de un pulso o el tiempo entre dos eventos separados. También importa cuál es el tiempo mínimo posible entre la captura de inicio y final. Dependiendo de la respuesta, puede hacer esto con un solo módulo de captura o puede necesitar dos para cada pulso. Si el tiempo mínimo es lo suficientemente largo, entonces el firmware puede tomar el valor de captura del primer evento y reconfigurar el hardware de captura para el segundo evento. Si el tiempo es demasiado corto, necesita un hardware de captura separado para cada borde, ejecutándose de manera óptima desde el mismo temporizador.
Eche un vistazo al módulo "Captura de entrada" de dsPICs. Uno o dos de estos deben hacer lo que quieras. Es posible que no pueda manejar las 6 señales en un solo micro, pero los micros son baratos, por lo tanto, use una para cada señal si es necesario. Eso también facilita la comunicación del resultado a una ubicación central, ya que puede implementar cualquier protocolo que desee.
Para obtener recomendaciones más específicas, necesitamos saber cuál es el tiempo mínimo entre los bordes, cómo / si las 6 señales deben sincronizarse, ¿tienen una hora de inicio común, etc.?