Cómo hacerlo: Programar dispositivos lógicos (CPLD)

Los dispositivos lógicos programables complejos (CPLD) contienen los componentes básicos de cientos de circuitos integrados lógicos de la serie 7400. Los circuitos completos pueden proyectarse en una computadora y luego cargarse en un CPLD para su implementación inmediata. Un microcontrolador conectado a un CPLD se asemeja a un microcontrolador emparejado con una placa de circuito reprogramable y una tienda de electrónica completamente equipada.

Al principio, no estábamos seguros del atractivo y la aplicación generalizados de los CPLD en proyectos de pasatiempos, pero estábamos convencidos. Un dispositivo lógico personalizado puede eliminar días de lectura de hojas de datos, encontrar la combinación de circuitos integrados lógicos ideal y luego esperar a que lleguen los chips. Las placas de circuito son más sencillas con los CPLD porque un solo chip con ubicación de pines programable puede reemplazar cientos de circuitos integrados lógicos individuales. Los errores de circuito se pueden corregir cargando un nuevo diseño, en lugar de grabar y llenar una nueva placa de circuito. Los CPLD son rápidos, con tiempos de reacción a partir de 100 MHz. A pesar de su extrema versatilidad, los CPLD son una tecnología madura con chips desde $ 1.

Tenemos una placa de desarrollo de autoprograma en el hogar para que pueda comenzar. No se preocupe, esta placa tiene una interfaz de puerto serie para trabajar con CPLD y no requiere un programador JTAG separado (generalmente puerto paralelo).

Introducción a las CPLD


Cuándo usar CPLD

Considere usar CPLD cuando un diseño requiera más de un CI lógico de la serie 7400. CPLD será más barato, más rápido y se puede programar con su configuración ideal para PCB más simples.

Utilice CPLD en diseños difíciles que puedan requerir varias repeticiones. Es más fácil diseñar un nuevo circuito en software y cargarlo en el CPLD que diseñar, registrar y llenar una nueva placa de circuito.

Para máxima velocidad y respuesta inmediata, seleccione CPLD. La diferencia de velocidad es asombrosa; Los CPLD comienzan en 100 MHz, mientras que los microcontroladores responden a interrupciones a unos pocos MHz. Los proyectos de CPLD forman circuitos que reaccionan a un estímulo externo, las reacciones ocurren casi de inmediato. Un microcontrolador implementa código para responder a eventos, incluso las rutinas disruptivas tienen una latencia relativamente alta.

CPLD frente a FPGA

Los FPGA son más conocidos que los CPLD, pero tienen muchas características. Esta analogía no es perfecta, pero nos gusta: donde los FPGA son un núcleo de procesador reprogramable, un CPLD es una placa o placa de circuito reprogramable. Los FPGA reemplazan a los microcontroladores, la memoria y otros componentes. Los CPLD absorben circuitos integrados lógicos y funcionan bien con un microcontrolador.

Fabricantes

Altera y Xilinx, los mayores fabricantes de CPLD, son más conocidos por sus FPGA. Lattice Semiconductor es otro gran fabricante de CPLD con menos seguidores en la comunidad. Atmel fabrica versiones compatibles con pines de los antiguos CPLD estándar de la industria.

Si planea trabajar a 5 voltios, sus opciones son limitadas. Los CPLD Xilinx XC9500 todavía están disponibles como existencias nuevas y antiguas, pero cuestan cuatro veces más que los equivalentes más nuevos de 3.3 voltios. La serie ATF1502 de Atmel funciona a 5 voltios, pero no ofrece un entorno de desarrollo gratuito.

A 3,3 voltios hay más opciones, pero los nuevos CPLD cada vez tienen más un núcleo con 2,5 voltios, 1,8 voltios o menos. Las series Altera MAXII y Xilinx XC9500XL son probablemente las CPLD de 3,3 voltios más populares. Xilinx también produce el CPLD CoolrunnerII, pero solo viene en un paquete TQFP y requiere un suministro separado de 1.8 voltios para el núcleo.

Paquetes

La mayoría de los fabricantes ofrecen uno o dos CPLD en un paquete PLCC 44 amigable para los aficionados, aunque este está empezando a desaparecer. PLCC es un chip con una superficie del tamaño de SOIC con pines en los cuatro lados. Los zócalos PLCC44 suelen estar disponibles en versiones perforadas y SMD. Desafortunadamente, las familias de CPLD más nuevas están comenzando a deshacerse del paquete PLCC y están ofreciendo solo chips TQFP de 44 pines y más grandes, como el CoolrunnerII de Xilinx.

Entornos de desarrollo

La mayoría de los fabricantes ofrecen un entorno de desarrollo gratuito que admite la entrada de proyectos a través de esquemas simples, como Verilog o VHDL. Muchos no admitirán los últimos FPGA en la versión gratuita, pero solo necesitamos las partes de CPLD. Altera tiene Quartus, Xilinx tiene ISE y Lattice tiene ispLever. Atmel tiene un ProChip Designer para la serie ATF15xx, pero solo ofrecen una licencia de prueba de 6 meses, que en realidad no nos darían.

Desarrolladores

La placa de desarrollo que presentamos no necesita un programador JTAG separado, porque el microcontrolador PIC ya está programando el CPLD. Si quieres un desarrollador externo, los más baratos son los desarrolladores de puertos paralelos: Parallel Cable III para Xilinx y BytleBlaster para Altera. Los esquemas y clones económicos están disponibles en SparkFun. El OpenOCD es un programador USB JTAG de propósito general que funcionará con muchos CPLD, FPGA y ARM.

Nuestra eleccion

Finalmente nos decidimos por la serie Xilinx XC9500XL porque tenía un kit de desarrollo económico que podíamos usar para probar nuestro desarrollador JTAG antes de llevar a cabo un proyecto completo.

El DO-CPLD-DK de Digilent incluye un XC9572XL, CoolrunnerII y un programador de puerto paralelo. Well Horizons tiene algunos modelos antiguos que no son de ROHS por $ 40, pero debido al manejo imprudente de las variables en sus scripts de procesamiento de tarjetas de crédito, no pudimos cumplir con un pedido en línea. Intentamos hacerlo por teléfono, pero se negaron a realizar un pedido tan pequeño, incluso durante un mal funcionamiento en línea. Al final, resultó más barato pagar el precio completo en Digikey (No. 122-1512-ND) después de incluir los excesivos costos de envío de New Horizon. Normalmente no mencionaríamos esto, pero con solo dos lugares para comprar la tabla, probablemente valga la pena mencionar nuestra experiencia.

Placa de desarrollo CPLD

Haga clic aquí para obtener una imagen esquemática de tamaño completo (PNG). El circuito y la PCB están diseñados con la versión gratuita de Cadsoft Eagle. Todos los archivos de este proyecto se incluyen en el archivo del proyecto vinculado al final del artículo.

Circuito

El microcontrolador PIC 24FJ64GA002 (IC1) proporciona la interfaz de usuario y programación para el CPLD. Usamos este PIC de $ 4 en muchos proyectos porque la opción de pin periférico hace que el enrutamiento de la placa sea realmente fácil. Consulte nuestra introducción al PIC24F para obtener más detalles. El PIC tiene que comunicarse con un puerto serie de computadora, por lo que agregamos un receptor de radio MAX3232 RS232 barato. La interfaz serial debe funcionar con un adaptador USB-> serial.

Nuestra selección de CPLD (IC3), Xilinx XC9572XL (PDF), está vinculada entre el PIC y varios otros componentes. Podemos crear una variedad infinita de circuitos entre el PIC y otros chips utilizando la lógica reprogramable dentro del CPLD. El PIC programará el CPLD con el código enviado desde el puerto serie de una computadora, pero aún llevamos los pines JTAG a un encabezado para facilitar la depuración externa.

Un oscilador digital programable DS1085 (IC4) genera frecuencias de reloj entre 8KHz y 133MHz, con incrementos de 10KHz. Esto es muy similar al DS1077 que discutimos anteriormente, pero incluso tiene pasos entre todas las frecuencias. El DS1085 requiere un suministro de 5 voltios (VR2). La interfaz I2C también funciona a 5 voltios, por lo que la conectamos a pines PIC tolerantes a 5 voltios. En su lugar, es posible utilizar el 1085L de 3,3 voltios a 66 MHz y retirar el suministro de 5 voltios.

Usamos un regulador de voltaje SOT223 barato de 3.3 voltios (VR1) para alimentar la mayor parte del circuito. El suministro de 5 voltios (VR2) se puede descartar si usa un oscilador de 3.3 voltios 1085L más lento.

Los CPLD se utilizan a menudo como un controlador de memoria, por lo que incluimos 32K de SRAM (IC5) en la placa de desarrollo. Un perno de 3.3 voltios con entradas tolerantes de 5 voltios conecta las entradas de memoria a una amplia gama de voltajes externos (IC6). Las inserciones de agarre son bajas con una red de resistencias de 1Mohm (RN1). Discutiremos esta sección extensamente en un próximo artículo.

tarjeta de circuito impreso

El tablero es como un dibujo de una cara. Hemos hecho varios compromisos para que podamos crear un prototipo de este PCB muy experimental. Presentamos la placa "tal cual" para otros discos duros que quieran grabar esta placa en casa. Si está enviando la PCB a una casa de placas, intente corregir estos problemas antes de producir una placa de dos caras "verdadera".

Un pin de alimentación del CPLD carece de un condensador completamente suelto; no había forma de poner un condensador en esa área. Un condensador de desconexión CPLD y el condensador de desconexión SRAM son piezas de orificio pasante. El uso de estas piezas de orificio pasante eliminó algunos cables de salto.

Los cables de salto en la parte posterior de la placa están optimizados para la producción unilateral, en lugar de las buenas prácticas de diseño. Fingimos una placa de dos caras soldando el bus de energía detrás. Un verdadero diseño de placa de dos lados debe dirigir el bus de potencia para evitar cruzar las rutas de señal e incluir los condensadores de salida que faltan.

Usamos un chip PLCC de montaje en superficie, pero una versión de orificio pasante es sin duda una mejor idea. Sin embargo, la versión SMD sería fácil de jugar, pero resultó ser una pesadilla. Realmente queríamos que el CPLD estuviera al frente de la junta para la presentación más genial posible. Una placa de dos caras adecuada con orificios pasantes revestidos puede tener un casquillo de orificio pasante en la parte delantera, pero esto no era posible en nuestra placa prototipo de una cara.

Lista de

Haga clic aquí para ver un diagrama de ubicación de tamaño completo (PNG).

ParteValor
IC1PIC25FJ64GA002 (SOIC)
IC2MAX3232CSE (SOIC-N)
IC3XC9572XL-10PCG44C (PLCC)
-PLCC44-ingo, SMD
IC4DS1085 o DS1085L (SOIC)
IC532Kx8, 3.3v, SRAM (SOJ)
IC674LVT573D (SOIC)
VR1Regulador de 3.3v, LD1117S33 (SOT223)
VR2Regulador 5v, LD1117S50 (SOT223)
C1-11,13-17Condensadores de cambio de 0.1uF (0805)
C12Condensador de 0.01uF (0805)
C15.16Condensadores de amortiguación de 0.1uF (orificio pasante)
C18Condensador de tantalio 10uF (A)
R1,2Resistencia de 390ohm (0805)
R3-5Resistencia de 2000 ohmios (0805)
RN1Red de resistencias de 1Mohm (9 pines)
LED1,2LED (0805)
X1Conector de puerto serie hembra db9 * no probado
J1Toma de corriente de 2,1 mm
ICSP, JTAG, SV1Título de pin de 0,1 ″, ángulo recto
S1Interruptor de pantalla táctil (DTSM-6)

Firmware

El firmware está escrito en C utilizando la versión de prueba gratuita del compilador PIC C30. Aprenda todo sobre cómo trabajar con este PIC en nuestra introducción a la serie PIC 24F. El firmware se inserta en el archivo del proyecto al final del artículo.

Queríamos una forma súper fácil de interactuar con el hardware en la placa sin ciclos de prueba interminables del programa de compilación. Creamos una versión personalizada del firmware Bus Pirate, que proporciona una interfaz de terminal ASCII simple para el chip de reloj DS1085 (I2C), la interfaz de programación CPLD (JTAG) y una interfaz de 3 cables (SPI) para el CPLD. Eche un vistazo al tutorial de Bus Pirate para conocer los antecedentes de la sintaxis simple utilizada con el firmware.

El firmware original de Bus Pirate se ocupa de varios protocolos que comparten los mismos pines. Para la versión CPLD, cambiamos las tareas de los pines para que coincidan con los enlaces en la placa de desarrollo. También hemos eliminado los módulos y las opciones no utilizados.

Ejemplos de LED parpadeantes de CPLD

Hemos preparado varios proyectos en el entorno de desarrollo ISE de Xilinx. Los esquemas, archivos de ubicación de pines y proyectos compilados (XSVF) se incluyen en el proyecto ar archiveivo vinculado al final del artículo. Una explicación completa de ISE va más allá del alcance de este artículo; Encontramos los archivos de ayuda lo suficientemente útiles para hacer estos ejemplos.


La primera proyección simplemente ilumina el LED conectado al pin 8 del CPLD.

Prepare el archivo XSVF

XSVF es un formato de programación JTAG comprimido, como lo describe Xilinx en esta nota de aplicación (PDF). XSVF no se limita a programar dispositivos Xilinx y puede estar listo para cualquier chip que proporcione un archivo de definición BSDL JTAG común.

Abra la herramienta de programación iMPACT desde el panel de proyectos de ISE Design Suite a continuación Configurar dispositivo de destino-> iMPACT.

  • Seleccione la opción para crear un archivo de escaneo de bordey establezca el tipo en XSVF.
  • Asigne un nombre de archivo a la salida XSVF y luego agregue una imagen CPLD compilada (ex1.jed) cuando se le pida que agregue un dispositivo.
  • Debería ver una cadena JTAG que contiene un dispositivo.
  • Haga clic en el dispositivo y seleccione un programa; iMPACT grabará las secuencias del programa en un archivo XSVF.

    Con un archivo XSVF en la mano, es hora de abrir un terminal y programar el CPLD. Nos gusta Earth Term y Hercules en Windows. usted debe habilite el control de flujo XON / XOFF en el cliente mediante la interfaz JTAG. La configuración predeterminada del lado de la computadora para el terminal de desarrollo es 115200bps, 8N1.

    HiZ> m <–Seleccionar modo

    1. hola
    2. I2C
    3. JTAG
    4. RAW3WIRE
    MODO> 3 <–JTAG

    900 MODARO
    602 JTAG LISTO
    JTAG> (2) <- Probar una cadena de macro JTAG
    xxx CADENA INICIAL JTAG
    xxx JTAGSM: RESET
    xxx JTAGSM: RESET-> IDLE
    xxx JTAGSM: IDLE-> Registro de instrucciones (UNA PIEZA RECHAZADA PARA TMS)
    xxx JTAGSM: IR-> IDLE
    xxx JTAGSM: IDLE-> Registro de datos
    xxx JTAGSM: DR-> IDLE
    xxx JTAGSM: RESET
    xxx JTAGSM: RESET-> IDLE
    xxx JTAGSM: IDLE-> Registro de datos
    xxx INFORME DE LA CADENA JTAG:
    0x01 APARATO (J)
    # 0x01: 0xC9 0x02 0x06 0x9A <–XC9572XL respuestas

    xxx JTAGSM: DR-> IDLE
    JTAG>

    En el terminal ingresamos al menú de modo (m), y seleccionamos JTAG (3). Macro 2 explora la cadena JTAG, en nuestro caso esto es solo el CPLD. El informe de la cadena nos dice que el chip está conectado y responde. Lea más sobre la interfaz JTAG.

    Ahora podemos lanzar el programa XSVF, macro (3) y cargar el archivo XSVF desde la terminal. en modo binario. El primer ejemplo solo ilumina el LED en el pin 8. Si el LED se enciende, podemos comprobar que la programación se ha realizado correctamente. Si su LED no se enciende, no se desespere; a veces, el programador JTAG se pega y al restablecer una macro (1) se iniciará el chip.

    LED a pleno brillo.

    74LS32 / 4071 A cancela, mitad intermitente (/ 2)

    Un componente importante de la placa de desarrollo CPLD es el sintetizador de frecuencia 1085 (L) conectado al pin 7 del CPLD. El siguiente ejemplo utiliza una puerta A lógica, como 74LS32 o 4071 IC, para hacer parpadear el LED siempre que la señal del reloj sea alta. Incluso con la velocidad de reloj más lenta, el parpadeo será demasiado rápido para verlo, pero deberíamos obtener un buen efecto de oscurecimiento PWM en comparación con el primer ejemplo.

    JTAG> m <–Seleccionar modo

    1. hola
    2. I2C
    3. JTAG
    4. RAW3WIRE
    MODO> 2 <–I2C interfaz a DS1085

    900 MODARO
    202 I2C NEGRO
    I2C> (1) <–Macro de búsqueda de direcciones

    xxx Buscando espacio de direcciones I2C de 7 bits.
    Dispositivos encontrados en:
    0xB0 0xB1 <–Busque la dirección DS1085

    I2C>

    Programe el CPLD como antes y luego cambie al modo I2C para acceder al reloj DS1085. Podríamos buscar la dirección del dispositivo en la hoja de datos, pero ahorramos unos segundos al iniciar la búsqueda de macros de direcciones; el informe nos dice las respuestas del chip a 0xb0 (escritura) y 0xb1 (lectura).

    I2C> {0xb0 0x02 0b00011111 0b10000000}<–Prescaler máximo

    ESTADO 210 I2C
    220 I2C ESCRIBIR: 0xB0 ENTRAR: SÍ
    220 I2C ESCRIBIR: 0x02 ENTRAR: SÍ
    220 I2C ESCRIBIR: 0x1F ENTRAR: SÍ
    220 I2C ESCRITURA: 0x80 CONSIGUE ACK: SÍ
    CONDICIÓN DE PARADA 240 I2C
    I2C> {0xb0 1 0b11111111 0b11000000}<–Divisor máximo

    ESTADO 210 I2C
    220 I2C ESCRIBIR: 0xB0 ENTRAR: SÍ
    220 I2C ESCRIBIR: 0x01 ENTRAR: SÍ
    220 I2C ESCRIBIR: 0xFF REALIZADO: SÍ
    220 I2C ESCRIBIR: 0xC0 ENTRAR: SI
    CONDICIÓN DE PARO 240 I2C
    I2C>

    El DS1085 es casi exactamente como el DS1077 que discutimos anteriormente, pero tiene un oscilador controlado por DAC para pasos uniformes entre todas las frecuencias. Programamos el reloj a la frecuencia más lenta usando los comandos anteriores. El LED se atenúa por el efecto de modulación de ancho de pulso de la señal de reloj.

    LED a la mitad de brillo.

    74F269 Calculadora síncrona de 16 bits, parpadea lentamente (/65535)

    Recientemente programamos el CPLD con una puerta lógica A similar a 74LS32. Ahora reprogramaremos el chip con 16 bits como dos 74F269 en cascada. A $ 1,15 cada uno, dos iconos 74F269 son más caros que el CPLD XC9572XL. Un contador de 16 bits rueda una vez por cada 65535 tics, por lo que un LED adjunto al último bit parpadeará una vez por cada 65535/2 ticks.

    Ahora podemos ver la parte interesante de los CPLD. El CPLD es como una placa programable; acabamos de lanzar el 74LS32 e insertamos el 74F269, sin comprar piezas, leer hojas de datos, grabar, cablear, etc. Un microcontrolador conectado a un CPLD puede restablecer su propio circuito para corregir errores, agregar funciones o reorientarlo para aplicaciones completamente diferentes.

    Subimos el nuevo diseño como antes, pero ahora el reloj está dividido por 65535 y el LED se enciende aproximadamente una vez por segundo.

    Conduciéndolo

    La próxima vez veremos chips lógicos discretos de la serie 7400 e implementaremos muchos de ellos en el CPLD para hacer un analizador lógico y un rastreador de bus de alta velocidad.

    Descargar: bitclone.v1.zip

    • jproach dice:

      ay, gran artículo 🙂

    • Ilial dice:

      La lógica de proyección para CPLD y FPGA es muy similar.
      Consulte las guías de laboratorio de UC Berkeley EECS150 (http://inst.eecs.berkeley.edu/~cs150/fa08/Calendar.htm) para obtener muchos tutoriales detallados.

      Soldar paquetes TQFP con hierro no es realmente malo. El uso de muchas corrientes hace que el trabajo sea rápido y limpio.

      Los CPLD son FPGA muy pequeños y muy baratos y, sin duda, son una excelente opción para un circuito lógico digital. El rendimiento obtenido mediante la implementación de una ruta de datos específica de la tarea en CPLD y el uso de un procesador como control es increíble.

      Las herramientas tienen una curva de aprendizaje pronunciada, pero de hecho son muy poderosas. Después de aprender a utilizar correctamente la lógica programable, los microcontroladores parecen sobreutilizados y, a menudo, innecesarios para muchos proyectos.

    • vegas dice:

      ¡Maravilloso artículo! Esto parece que sería ideal para las personas que quieren aprender hardware programable, pero más práctico.

    • Jamessnell dice:

      Chicos, esto es asombroso. Recuerdo completamente el proyecto de servidor web que configuró hace unas semanas. ¡Sobresaliente! ¡Por favor continua!

      Me encantaría ver algo que tal vez mejore el espacio inalámbrico o tal vez una cámara de reacción de materia antimateria de bricolaje.

    • chris dice:

      La curva de aprendizaje de los FPGA en particular puede ser extremadamente empinada, pero * hombre *, ¿puedes hacer cosas interesantes con ellos? Tengo una placa FPGA Spartan3 XCS1200 que pude combinar con un clon completo de supercomputadora de 32 procesadores compatible con binarios que encontré documentación de la década de 1980 =)

      Hacer su propio procesador usando lógica programable puede ser una experiencia extremadamente fructífera.

    • Andrés dice:

      Otros bienes comunes que todavía fabrican CPLD incluyen Actel y Cypress. Quicklogic todavía está haciendo algunas cosas híbridas fpga-cpld.

      También debe mencionar los dispositivos PLD / PAL más antiguos y más pequeños. TI todavía los fabrica, Lattice vende algunos y Diodes Inc. parece que han recogido los viejos dispositivos ICT-PEEL.

      MIHO, Usar un CPLD para reemplazar algo como un pestillo de 8 bits o un mux simple generalmente desperdicia dinero.

      Los CPLD realizan excelentes funciones de entrada, como decodificadores y contadores de direcciones rápidos, máquinas de estado pequeñas, tener algunas puertas de respaldo aquí y allá, pero los registros en ellos son relativamente costosos ya que cada uno viene con una carga de lógica al frente.

      Los CPLD de 5V pueden tener un poco de hambre, especialmente los dispositivos realmente viejos como el 22V10 bipolar. No te quemes como lo hice yo 🙂

      Lattice tiene una selección decente de piezas de 5V que adquirieron de AMD hace mucho tiempo.

      Ahora hay algunas cosas híbridas CPLD analógicas / digitales geniales como los chips Cypress PSoc y Lattice POWR.

    • error 404 dice:

      Atmel parece ofrecer herramientas gratuitas: http://www.atmel.com/dyn/products/tools_card.asp?tool_id=2759

      ¿Me estoy perdiendo de algo?

    • razvan784 dice:

      no haga que la gente piense que los fpgas son _sólo_ procesadores reconfigurables. Los fpgas son dispositivos lógicos programables y cplds, solo que mucho más grandes y con una arquitectura interna diferente. dado que las fpgas son mucho más grandes, puede poner uno, dos o veinte "procesadores suaves" en uno. puede poner los procesadores más simples en cpld. también puede implementar cientos de miles de 7400 equivalentes en serie si lo desea.

    • Ian Lesnet dice:

      @ eraro404

      Gracias por señalarme WinCUPL, lo perdimos la primera vez. ProChip Designer es el IDE de Atmel que admite la entrada esquemática, Verilog, VHDL y se compara con los paquetes ofrecidos por Xilinx, Altera y otros.

      Parece que WinCUPL usa un lenguaje booleano atípico, pero tiene un convertidor Verilog.

    • Pedro dice:

      Acabo de terminar de diseñar con una pieza de cuadrícula ispMACH4. Sus herramientas de proyecto también son gratuitas:

      http://www.latticesemi.com/products/designsoftware/isplever/ispleverclassic/index.cfm?source=sidebar

      Necesita comprar un adaptador de programa <$ 100 para insertar el código en la pieza.

      Hay algunos libros muy buenos sobre el uso de Verilog (y VHDL, pero yo prefiero Verilog) para diseñar FPGA. Una búsqueda en Google debe mostrarlos. Los que están en mi estante son Verilog Quickstart de James Lee (un viejo amigo de la radioafición) y un diseño FPGA con Verilog_ de Ken Coffman.

      No olvide consultar también el sitio web del fabricante para obtener sus documentos. Tienen excelentes tutoriales y listas de los consejos y trucos que necesita saber al trabajar con cada parte (cómo configurar salidas, controlar relojes claros y globales y todo eso).

      Comience con algo simple, como una máquina de estado para controlar algunos LED y continúe desde allí. Descubrí que la trampa más difícil era escribir código que se parecía a C, pero tenía reglas muy diferentes sobre cómo se ejecutaba, ¡todo al mismo tiempo! Es útil pensar en los bloques de código que escribe no como código, sino como bloques físicos en un circuito, en lo que se convertirán.

      ¡No te pierdas el simulador integrado! Es un poco confuso configurarlo, pero una vez que crea un archivo de estímulo, se convierte en una herramienta muy útil para verificar si sus cambios están haciendo lo que desea.

    • enigita_tom dice:

      ¡Excelente artículo!

      Pero vamos, no eres un trapo de periódico no técnico. Es MHz, no mhz. "M" grande para mega y "m" pequeña para mili. 'H' en mayúscula porque es el apellido de alguien. Sencillo.

    • CVMagic dice:

      @embedded_tom: lol, odio señalar que en su respuesta todo su punto es discutido por los filtros forzando todas las letras mayúsculas y minúsculas.

    • estera dice:

      no hay mayúsculas para ti ...

    • deoryp dice:

      ¡Excelente artículo!

      @CVMagic, no es un filtro, es solo una fuente en minúsculas. copie / pegue el comentario embedded_tom para verlo. también puede copiar y pegar el artículo para ver el formato original.

    • draeath dice:

      Sí, POR FAVOR obtenga este .css incluye reparación. ¿Por qué el odio capital?

    • draeath dice:

      Específico:
      http://s3.wordpress.com/wp-content/themes/vip/la-tecnologiacom/style.css?m=1221857817b

      "Transformación de texto: minúsculas;" aparece dos veces. Mátalo, y todas las pantallas en mayúsculas (sí, en mayúsculas se guardan ... simplemente no se muestran. Si uso Firebug para eliminar esas líneas, ¡el sitio se ve NORMAL!)

    • Dave dice:

      Excelente artículo.

    • hacha dice:

      solo quería agregar algo:

      una de las grandes (útiles) diferencias entre FPGA y CPLD es que CPLD aparece tan pronto como se enciende la alimentación; no es necesario que se les cargue algo de corriente antes de que puedan iniciarse.

    • Mark Carlson dice:

      ¡increíble gracias!

    • J. Peterson dice:

      De hecho, una vez que se inicia, usar Verilog es mucho más fácil y rápido que dibujar esquemas. Es asombroso lo poderoso que es; una CPU de ocho bits (por ejemplo, 6502) ejecuta solo unas pocas páginas de código. Puedes ver ejemplos en opencores.org

      Mi propio proyecto CPLD está aquí:

      http://tinyurl.com/2cemu3

      De acuerdo, podría usar algunos registros de cambios en lugar de un CPLD de $ 20. Pero usar el CPLD fue mucho más interesante, y poder “arreglar” el proyecto por un tiempo resultó invaluable.

    • ATP dice:

      santa mierda, me rompiste el cerebro. Estaba completamente listo y podía aprender sobre estas cosas, pero este bocado era MUY grande. Supongo que tendré que hacer bocados más pequeños. Sin embargo, es un gran artículo en profundidad. Realmente aprecio el laborioso detalle ya que está más acorde con mi estilo de aprendizaje. Ahora bien, si alguien pudiera explicarme cómo / por qué funcionan estas cosas, sería un maestro.

      Pronto entraré en esta frontera desconocida, lo sé.

    • aoeu dice:

      sobre las minúsculas, todo aquí está en minúsculas, vea el CSS:

      * {
      transformación de texto: minúsculas;
      }

      como no me daría cuenta. las únicas dos letras mayúsculas en esta página están en "comentario de publicación". Guau, es similar a este estudio psicológico en el que un hombre le pide direcciones a un extraño desprevenido, lo reemplaza con otra persona y el extraño no se da cuenta.

    • desintoxicación dice:

      Esto es demasiado dulce. Cualquiera que busque en la lógica digital o incluso en la programación de Crestron debería obtener uno de estos. Los procesadores con cresta son básicamente versiones grandes de estos

    • Taquión dice:

      Esta sería una excelente manera de ejecutar una red neuronal a toda velocidad sin tener que construirla físicamente.

    • y8 dice:

      Gracias. BIEN BIEN

    • Alan dice:

      Interesante lectura. Gracias Ian.

    • helicóptero dice:

      No sé. Anteriormente, había mirado los FPGA y los cpld de manera tan terrible como este artículo, pero a lo largo de los años he llegado a la conclusión de que son bastante inútiles para los proyectos de producción finales. añaden costos de facturación de materiales, consumen mucha energía y, con los nuevos PIC que implementan la selección de pines periféricos, la redirección de pines programable por software ya no es un problema. Si puede diseñar su proyecto para usar solo un microcontrolador, puede presionar permanentemente el proyecto cpld / fpga en la cabeza con menor consumo de energía y menor costo.

      la única vez que consideraría fpga / cpld es si necesitaría algo para interactuar con velocidades máximas y donde el costo, el consumo de energía y el espacio en la placa ya no sean un problema. sin embargo, a medida que los microcontroladores continúan acelerando e integrando periféricos de interfaz de mayor velocidad, incluso esa razón puede volverse cuestionable en ocasiones.

    • gran hombre dice:

      pirata,

      Los fpgas y los cplds no se utilizan comúnmente para la producción final. se utilizan más comúnmente para el desarrollo y demás, hasta que se decide un diseño lógico final, luego se ordena un gran pedido de circuitos lógicos personalizados. El nombre de fpga incluso sugiere esto (matriz de puerta programable en campo).

    • Levent BAL dice:

      Hola

      Tengo xilinx XC7532XL cpld. Envié un programa a mi cpld, luego no pude eliminar este programa de mi cpld. ¿Sabes de qué puedo deshacerme de él?

      Recibí este mensaje de error similar "limpie el dispositivo de protección"

      Debe eliminar un modo por su cuenta. No sé cómo configurar mi cpld para esta situación.

    • aaa dice:

      La mayoría de los proveedores de PLD ofrecen herramientas gratuitas para sus familias económicas CPLD y FPGA. Las familias de CPLD más recientes de Lattice y Altera son más similares a las mini-FPGA con mucha más lógica que las familias de CPLD anteriores.

    • puertas de jardín dice:

      No suelo comentar en blogs, pero tu publicación fue de gran ayuda. Gracias por un gran tema, definitivamente marcaré su sitio como favorito y lo revisaré nuevamente. Hola, Amy xXx.

    • Josh dice:

      ¿El reloj del sistema solo tiene un pin de E / S de propósito general en el CPLD?

    • tedy_b dice:

      Entonces, estás muy callado

    • tedy_b dice:

      Gracias muy tonto

    • ebidk dice:

      Buen articulo 🙂

      Tendré que verlo jugar con esto.

      También quiero hacer FPGA, pero hasta ahora ha sido demasiado caro para mí entrar solo para jugar.

      Parece que CPLD es lo suficientemente relevante como para darme una idea si quiero gastar el dinero en FPGA y también a un precio bastante bajo.

    • Tomás dice:

      solo quería mencionar que Altium envía software fpga de nivel de entrada que incluye una licencia de 1 año para su software fpga por alrededor de $ 400, lo que podría valer la pena considerar porque su software es excelente.

    • mohd dice:

      necesito la lista de ejemplos comerciales para cpld y fpga

      Gracias

    • JohnT dice:

      Este enlace: http://blog.mahalo.com/la-tecnologia/howto/bitclone.v1.zip
      No funciona. ¿Alguien sabe dónde puedo descargar bitclone.v1.zip?
      Gracias

    • Steve dice:

      Sí, ese enlace tampoco me funciona, ¿alguien tiene un enlace que funcione? ¿O pueden crear uno para aquellos de nosotros que nos lo hemos perdido y queremos construir uno de estos?

      Gracias

      Steve

    • Desarrollador Jtag dice:

      Gran descripción general de los CPLD. Sin embargo, odio los estándares medios. La interfaz JTAG está estandarizada pero el conector no. Tengo más de siete cables JTAG diferentes. Por supuesto, cada dispositivo tiene su propio programa 🙂

    • bravo2zero_electronics dice:

      No ejecuté mi programa para iniciar el XC9572, ya sea que un hilo construya su circuito lógico usando el software ISE. Me interesaría ver algunas fotos de este software antes de gastar unos dólares en comprarlo.

    • friv dice:

      Muy bien, me gusta mucho esto.

    • JB dice:

      Como puedo conseguir:

      Cómo hacerlo: Programar dispositivos lógicos (CPLD)

      ¿Ya te conociste? Si no, ¿cómo puedo usarlo?

      tablero con todos sus documentos?

      Por favor avise.

      Gracias
      JB

    • Friv dice:

      Interesante. Me pregunto si puedo aplicar esto a mi próximo experimento.

    • Armando Leopoldo Keller dice:

      La conexión al firmware está fuera de línea, alguien arregle la conexión.
      Gracias
      Armando

    • Aron Fehér dice:

      Un nuevo enlace de firmware sería realmente bueno porque no funciona.
      Gracias por el consejo, Aron

      • kxm dice:

        Estoy de acuerdo. Nuevo enlace por favor:]

    • hariprasad dice:

      inspirado para trabajar en un proyecto en CPLDs ... es interesante

    • friv 10 dice:

      Artículo informativo, me encantó. Gracias mas

    • Noel Carriquí dice:

      Si desea utilizar un software CPLD de código gratuito y barato, consulte el mío aquí:

      https://www.tindie.com/products/area0x33/areacpld/

      o puede construirlo usted mismo, de manera fácil y práctica para el aprendizaje y algunos proyectos.

    • John Bohling dice:

      Esta es un gran artículo (cuarto en los resultados de Google para "cpld" por cierto, como lo encontré) y me gustaría construir la placa, pero la descarga de "bitclone.v1.zip" al final del artículo ya no está disponible . ¿Se puede actualizar el enlace de descarga?

Manuel Gómez
Manuel Gómez

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *