Frecuencia máxima para una señal de onda cuadrada basada en FPGA

2

Tengo un problema de comprensión de cuál es la frecuencia máxima posible para una señal de onda cuadrada que se puede generar.

Actualmente estoy experimentando con un tablero FPGA (Red Pitaya), que tiene un Xilinx Zynq FPGA de 125 MHz. Cuando conecto la señal del reloj a través de un contador binario y un segmento (IP de Xilinx) para el bit # 0 y a un pin de salida, mido aproximadamente la frecuencia media (62,5 Mhz).

Aquí está el diagrama de bloques de Xilinx Vivado
(32bit Binary Counter en modo UP, 1 bit Slice Din From + Din Down To son ambos 0):

Me hubiera esperado ver exactamente la frecuencia de reloj en el puerto de salida.

¿Puede alguien explicarme por qué la frecuencia se redujo a la mitad y cuál es la frecuencia máxima de onda cuadrada que puede crear un FPGA?

    
pregunta user9564464

3 respuestas

3

No puede generar una frecuencia más alta que el reloj interno. Si tiene acceso a un Phase Locked Loop o PLL, es posible que pueda hacerlo.

Por lo general, el reloj externo se alimenta a un PLL y el reloj interno se genera a partir de eso.

Si su reloj interno es de 125Mhz y usa un contador regular (contando solo con el flanco ascendente), el conteo más rápido que verá será a la mitad de 125Mhz o 62.5Mhz.

Se pueden construir contadores que funcionan en borde ascendente y descendente para contar a 125Mhz

    
respondido por el laptop2d
3

Si no saca el reloj con un flip flop DDR, entonces la frecuencia máxima que esperaría ver es \ $ f_ {clk} / 2 \ $. La razón de esto es que la salida solo puede cambiar una vez por cada ciclo de reloj completo (un flanco ascendente y un flanco descendente). Además, esto es lo que esperaría ver en un contador binario de ejecución libre ... el bit 0 (el LSB) oscilará en \ $ f_ {clk} / 2 \ $, el bit 1 en \ $ f_ {clk} / 4 \ $, etc. Si desea una salida de frecuencia más alta, entonces necesita hacer dos cosas: usar un reloj más rápido y usar los registros de salida DDR. He conducido con éxito salidas a 250 MHz y 500 MHz utilizando registros de salida DDR.

    
respondido por el alex.forencich
2

Todos los FPGA de Xininx (de la serie 3,4,5,6,7, etc.) ofrecen amplios bloques de gestión de reloj digital (DCM) que obviamente incluyen PLL / DPLL. En ofertas recientes, estos bloques se denominan MMCM - Administrador de reloj de modo mixto. Hay varios bloques en cada FPGA, lo que permite muchos dominios de reloj en un diseño. El Zynq / Artix FPGAs / SoC puede tener relojes internos de hasta 800 MHz internamente, hasta 5 MHz, todos fácilmente derivados de casi cualquier reloj externo.

La capacidad de salida depende de la selección del tipo de búfer de salida, dependiendo del tipo de búfer y la selección de modo / fuerza. Creo que 200-300-400 MHz de onda cuadrada es fácilmente alcanzable, al menos pueden hacerlo para interfaces DDR.

    
respondido por el Ale..chenski

Lea otras preguntas en las etiquetas