¿Cómo funciona el retardo de propagación de CPLD?

2

Mi pregunta es sobre los CPLD en general, pero tome, por ejemplo, esta versión barata de Xilinx .

Entiendo que, a diferencia de un microcontrolador, un CPLD no tiene un reloj; Los bordes externos activan la lógica inmediatamente, sin esperar a que un despachador de interrupciones cree un cambio de contexto y llame a una función.

En la unidad vinculada anteriormente, el "máximo" Tpd se muestra como 10ns. ¿Eso significa que está literalmente en cualquier lugar de 0ns a 10ns en un borde dado, o es más consistente dentro de un conjunto determinado de condiciones ambientales? ¿Qué condiciones afectarían más a ese retraso?

    
pregunta mikepurvis

3 respuestas

5

La especificación de retardo en un CPLD es el retardo de pin a pin máximo (es decir, el peor de los casos). Es decir, el retraso máximo necesario para que un "borde" de la señal se propague desde cualquier pin a cualquier otro pin a través de la lógica interna (combinacional).

Decir que un CPLD no tiene un reloj es erróneo; puede usar un pin como entrada de reloj para alimentar la lógica secuencial. Compararlo con un microcontrolador tampoco es realmente adecuado, ya que los CPLD implementan hardware, no software.

    
respondido por el Alex Hornung
0

La afirmación "A diferencia de un microcontrolador, un CPLD no tiene un reloj" es simplemente falsa. Hablando generalmente, ambos tienen sistemas síncronos así como combinatorios.

Hacer una comparación sobre las interrupciones también es engañoso. Los CPLD no suelen ejecutar el código de máquina, aunque el código de máquina podría implementarse en uno (solía enseñar a una clase a hacer eso). Por lo tanto, un CPLD podría 'causar un cambio de contexto' si se hiciera para ejecutar código de máquina.

Tpd es el retraso de propagación de tiempo (caso más desfavorable). En los PLD es una medida que debe tomarse con una gran pizca de sal. Esto se debe a que su definición depende completamente del fabricante.
Por lo general, significa el tiempo más largo posible, dadas las condiciones ambientales más desfavorables y las tolerancias de fabricación para que una señal viaje desde un pin a través de la ruta más corta posible hacia otro.

En realidad, esto generalmente significa - pin- > input pad- > routing pool- > output pad- > pin.
Dependiendo de la arquitectura de los CPLD, el grupo de enrutamiento puede incluir o no las LUT (tablas de búsqueda) que forman las instalaciones lógicas internas, y si lo hizo es sin duda la ruta más rápida a través de él.

Realmente, Tpd está compuesto de una función completamente inútil para el PLD, ¡un trozo de cable sin funcionalidad lógica!

Si desea obtener una mejor vista de la velocidad de un PLD, debe examinar su manual para el 'Modelo de sincronización', esto tiene más en cuenta la arquitectura interna que se implementará, por ejemplo. un grupo de enrutamiento LUT-flip flop que por lo general constituye la parte interna de cualquier función.

Para responder a su última pregunta, hay dos variables que afectan la velocidad, el voltaje y la temperatura. Los dispositivos de menor voltaje son generalmente más rápidos. Las resistencias internas y, por lo tanto, la corriente disponible para cargar una puerta se ven afectadas por la temperatura. Temperatura más alta = más resistencia = dispositivo más lento.

    
respondido por el Jason Morgan
0

Al principio es una gran pregunta, es una gran incógnita hasta que se simula el diseño.

Añadido: esta respuesta simple es NO. Eso solo se aplica a los retrasos en la proposición de pin a pin para acceder al registro más cercano. Existe una latencia mucho mayor si lees todas las especificaciones sobre el tiempo.

El diseñador debe tener en cuenta las condiciones metaestables y las condiciones de carrera al definir los estados de entrada y salida para que el proceso de macrocélula funcione según se requiera. También es prudente probar el dispositivo usando + / -% reloj y + / -% V para el margen de falla ... es decir, probar a falla o 15% como máximo y verificar que los estados estén sincronizados de manera oportuna para evitar suposiciones en los errores de tiempo.

¿Las herramientas Xilinx no tienen buenos datos de simulación para analizar esto? Pero tiene razón al tener cuidado de que habrá una latencia, una configuración y un tiempo de espera para cada macrocélula. También vale la pena señalar que la compensación entre MC-LP y MC-HS es potencia y latencia.

El reloj de datos en serie es esencial y conocer el margen de fluctuación entre las transiciones de datos y el borde activo del reloj. Esto es lo que convierte la comunicación digital en el mundo analógico.

Segundo agregado: con respecto a la última pregunta "¿Qué condiciones afectarían más a ese retraso?"

Como indiqué que hay dos tipos de celdas macro (MC), las que obviamente son más críticas para el retraso son las de bajo consumo (LP)

Los

MC's que contienen grandes árboles de condicionales booleanos, o árboles más profundos, crearán una latencia más larga. Los contadores de ondulación son conocidos por esta latencia.

El tiempo de configuración es específico de la celda y similar a los chips individuales. Una revisión de estas hojas de datos le dará más detalles.

Generalmente, si el proceso es complejo en lógica booleana & los retardos de los contadores de rizado, entonces es necesario sincronizar el estado en los pestillos. Esto agrega latencia controlada, pero previene las condiciones de carrera y es lo básico de una máquina de estado. Los eventos se pueden procesar en función de entradas combinadas, salidas o estados intermedios. Al sincronizar estos estados en retenes, también conocido como FF's o "registros" de hardware para un procesamiento adicional con más lógica antes del siguiente ciclo de reloj. Consulte la teoría de la máquina de estados finitos y los métodos de diseño para obtener información aquí. **

    
respondido por el Tony EE rocketscientist

Lea otras preguntas en las etiquetas