¿Es este un buen uso de un CPLD?

4

Estoy intentando generar algunas formas de onda que se desplazan de fase desde una señal de entrada.

La señal de entrada es de alrededor de 4.4 MHz y es una onda cuadrada con un 50% de servicio. Necesito un cambio de fase de 0 grados y 90 grados de esta forma de onda, y cada onda debe tener un ciclo de trabajo del 50%. También es posible que necesite cambiar ambas ondas 180 grados, es decir, 180 y 270 grados. (Esto es para el video PAL.)

Mi idea fue utilizar un PLL para aumentar la frecuencia a 17,6 MHz. Entonces, un contador de décadas y dos puertas OR generarían las ondas de 0 y 90 grados. Un inversor restablece el contador de modo que se desborda a 4. Se necesitaría un chip XOR para el cambio de 180 grados. El PLL sería un dispositivo de tipo 4046 y también necesitaría un contador de división por 4.

Probé esto en un simulador de circuito:

Genial...elconceptofunciona.Sinembargo,estoybastantelimitadoporelespaciodelajunta,yelcosto.NecesitaríacincochipsmáselchipPLLparahaceresto.NuncaheprogramadounCPLDantes,perosuenacomolaaplicaciónperfectaparauno.¿PodríahacerunatareabásicacomoestautilizandounCPLDdegamabajacomo this ? ¿O serían insuficientes 32 macrocélulas? ¿Hay una estimación aproximada de cuántas macrocélulas se necesitarían por compuerta básica y cuántas se necesitarían para un dispositivo complejo, como un contador?

    
pregunta Thomas O

3 respuestas

3

Esto solo trata la segunda parte de su pregunta, cómo saber qué tamaño de CPLD necesita para un diseño:

Por lo general, la cantidad de lógica que puede encajar en un CPLD está limitada por el número de flip-flops (u otros latches) o el número de I / O en su diseño. En general, se obtiene un flip-flop por macrocélula y algo menos de un pin de E / S por macrocélula. El diseño básico permite una E / S por macrocélula, pero a menudo algunas de las E / S en la matriz no están unidas debido al número limitado de pines en un paquete determinado.

Entonces, para tu diseño, tienes 14 chanclas para tus dos contadores y estás bien. Normalmente, no recomendaría el uso de lógica programable para el comparador de fase en su diseño, pero a 17.5 MHz y si no es muy específico sobre cómo hacer coincidir exactamente la fase de entrada y salida, debería poder salirse con la suya. Todavía necesitará un VCO externo y un circuito de filtro. Por lo tanto, con un CPLD de 32 macroceldas, no debería tener problemas para ajustar los elementos digitales de este diseño, quedando algo de espacio para otra lógica de pegamento que pueda necesitar.

Dicho esto, en general, un diseño para un CPLD tan pequeño es tan simple que puede programarlo en aproximadamente una hora y usar la herramienta de diseño del proveedor para asegurarse de que se ajuste antes de seguir adelante. Todos los proveedores de CPLD que conozco ofrecen versiones gratuitas de sus herramientas de diseño que cubren casi todos los tamaños de CPLD.

Finalmente, aunque la estimación de 1 flip-flop por macrocélula es precisa para los CPLD clásicos como el que está vinculado, algunos proveedores (Altera & Lattice vienen a la mente) han realizado una importante excursión arquitectónica en sus nuevas familias de CPLD. Estos dispositivos son más parecidos a mini-FPGA que a los CPLD clásicos, y no estoy seguro de que calculen sus tamaños "macrocelulares equivalentes" de acuerdo con esta fórmula. Es probable que los nuevos dispositivos tengan más flip-flops por dispositivo, pero no permiten un abanico de entradas muy amplio a la lógica de cada celda.

En cuanto a la otra parte de su pregunta, ¿es este un buen uso para un CPLD? Esa es una pregunta más difícil. No veo ninguna razón para no usar uno, pero tal vez alguien encuentre una forma inteligente de construir este circuito a un menor costo / menor espacio en la placa / menor potencia, o lo que sea.

    
respondido por el The Photon
2

Sugeriría que un enfoque más simple podría ser simplemente usar un circuito de retardo, en lugar de un PLL. Por ejemplo, la alimentación de la señal a través de un circuito RC y un comparador cuya entrada se establece en medio riel puede generar un retraso de fase de poco más de 0 a casi 90 grados; el uso de dos resistencias y dos condensadores puede empujar el retardo más allá de 90 grados. Modifique la resistencia y la tapa y debería poder obtener un retraso de casi 90 grados.

    
respondido por el supercat
0

Alternativamente, use un FPGA pequeño y el administrador del reloj dentro de él, muchos de los cuales pueden proporcionar el ciclo de trabajo de los cuatro relojes de cuadrante corregido. Por ejemplo, consulte la figura 2-2 en la guía de usuario de sincronización de Xilinx para Spartan-6 .

Puede ser un poco de desperdicio si no puedes encontrar un uso para la lógica real en su interior

(Sin embargo, acabo de revisar la hoja de datos e, irritante para usted, solo funciona a 5MHz. ¡Dejaré esta respuesta arriba en caso de que sea de interés para futuros espectadores que operen en frecuencias más altas!)

    
respondido por el Martin Thompson

Lea otras preguntas en las etiquetas