En el producto que estoy diseñando, tengo un conector de entrada de 60 líneas y un conector de salida de 32 líneas.
La entrada se puede conectar a diferentes productos externos y luego las líneas se pueden mezclar, por lo que la idea del producto es, más o menos, volver a asignar las líneas de entrada relevantes a las de salida.
Por ejemplo, la línea de salida Number1 se puede conectar a la línea de entrada número 1 o al número 2 u 55. Lo mismo para el número 2. Lo que significa que mi producto es más o menos un multiplexor enorme entre 60 entradas y 32 salidas.
Lo primero que se me ocurrió hacer eso con bastante facilidad y poder cambiar la configuración si es necesario en el futuro, es utilizar un CPLD. Mi problema es que no tengo experiencia con CPLD y no sé qué tipo de característica debo buscar en la hoja de datos.
¿Este tipo de proyecto requeriría muchos recursos en un CPLD?
¿Cuáles son las características que debo buscar para asegurarme de que el CPLD que elija tenga suficiente recurso (flip-flop? gate? macrocell?)?
¿Cómo puedo hacer una estimación aproximada de los recursos necesarios para este tipo de proyecto?
Editar
Para agregar información, en realidad hay dos posibilidades diferentes para el CPLD que surgió de las respuestas anteriores. La primera posibilidad es hacer lo que se requiere de forma estática, lo que significa que una vez que se haya programado el CPLD, la configuración entre la entrada y la salida no cambiará hasta la próxima programación.
La segunda posibilidad es poder cambiar la configuración dinámicamente sin reprogramar el CPLD, por ejemplo, por SPI sería bueno.
Las preguntas que hice antes son para ambas posibilidades.
También mis entradas están sincronizadas entre sí y la frecuencia máxima será de aproximadamente 5MHz, ¿cómo estimo el retraso entre la entrada y la salida y la desincronización debido a las diferentes rutas en el CPLD?