¿Debo usar una salida FPGA para un reloj MCU?

4

Estamos diseñando una placa que fue diseñada hace años, el objetivo principal de la actualización es la obsolescencia de la pieza. La placa tiene varios PIC uC en él, así como un FPGA. Cada uno de los PIC necesita un reloj y el sistema tiene un oscilador CTS de 20MHz para este propósito. ¿Hay alguna razón por la que no debamos usar el FPGA para generar estas señales de reloj? El FPGA está reemplazando otra lógica digital en la placa, pero no estoy seguro de si hay problemas con los relojes en particular.

Además del hecho de que los uC tendrían que surgir después de que el FPGA haya terminado de reiniciarse, ¿existen otras razones para no reducir el recuento de piezas de esta manera? (Y no, no puedo usar el FPGA para reemplazar los PIC).

    
pregunta Hucker

1 respuesta

7

Puede conducir los relojes desde el FPGA si desea reducir el recuento de piezas.

En general, hay dos desventajas que se me ocurren:

  1. Jitter del reloj : los pines de E / S del FPGA agregarán jitter al reloj. Esto es básicamente donde los bordes del reloj no están exactamente en el lugar correcto y como resultado la frecuencia varía en una pequeña cantidad ciclo a ciclo (la frecuencia promedio no se modifica). Sin embargo, a menos que esté realizando alguna operación ADC / DAC / temporización súper crítica que requiera una precisión de picosegundo, dudo que la inquietud sea una preocupación. En un reloj MCU de 20MHz no puedo ver que esto podría causar un problema.

  2. Requisitos de los pines de E / S : terminará requiriendo que se utilicen más pines de E / S de su FPGA para la distribución del reloj. Si tiene suficientes pines de repuesto, está bien, pero asegúrese de probar que su FPGA puede enviar una señal de reloj de todos los pines que desee usar. Algunos FPGA tienen requisitos estrictos sobre qué pines se pueden usar para la salida de la señal del reloj debido a las restricciones de enrutamiento del reloj. Además, si coloca las salidas de su reloj en lados opuestos del FPGA, comenzará a aumentar el uso de la red del reloj global ya que el reloj tiene que llegar a ambos lados del chip. La forma más fácil de averiguar si esto es un problema es compilar el diseño antes de enviar el tablero para su fabricación.

Aparte de eso, hay ventajas al hacerlo:

  1. Cantidad de piezas : necesita menos buffers de distribución de reloj u osciladores en su tablero. A veces, puede conectar en cadena los relojes en las MCU si pueden hacer que el reloj vuelva a salir, pero si no, tendrá que tener fuentes de reloj separadas para cada una, lo que aumentaría el número de piezas. Usar el FPGA como la distribución elimina la necesidad de partes discretas para hacer esto.

  2. Control de frecuencia : si desea cambiar la frecuencia del reloj MCU, puede hacer los ajustes dentro del FPGA (por ejemplo, PLL para multiplicar / dividir la frecuencia). Eso podría ser útil en un tablero de propósito general donde quizás desee probar diferentes diseños. También permitiría que diferentes MCU se ejecuten en diferentes frecuencias desde un solo oscilador.

Posiblemente hay más, también, pero eso es lo que puedo pensar sin pensarlo.

Si usa el FPGA para esto, entonces, como mencioné anteriormente, asegúrese de revisar el diseño con mucho cuidado. Asegúrese de que los estándares de E / S para el FPGA cumplan con los requisitos de las MCU (y que tenga el voltaje VCCIO correcto para los bancos que controlan las señales de reloj). También asegúrese de probar el firmware FPGA antes de comprometerse a fabricar. Como mínimo, realice una compilación de prueba para asegurarse de que el diseño se pueda ajustar en el FPGA (tanto en recursos de reloj como en restricciones de pines) y cumpla con los requisitos de tiempo de los diseños.

    
respondido por el Tom Carpenter

Lea otras preguntas en las etiquetas