CDC's Propietario

Circuitos Digitales Configurables



  1. Antecedentes de los CDC's.
  2. El continuo avance de la Microelectrónica a finales de los años 70 dio como resultado los circuitos de muy gran escala de integración [VLSI ("Very Large Scale of Integration")]. Esto permitió el desarrollo de diferentes tipos de circuitos y sistemas electrónicos digitales entre los que cabe citar:

    a) Los circuitos combinacionales programables, en sus dos versiones:
    - Matrices lógicas programables [PLA ("Programmable Logic Array")]
    - Matrices lógicas Y-programables [PAL ("Programmable Array Logic")]
    La combinación de estas matrices con un registro síncrono de entrada y salida en paralelo dio lugar a los secuenciadores lógicos programables [PLS ("Programmable Logic Sequencer")], cuyo esquema básico se representa en la figura 1.

    Figura 1: secuenciadores Logicos Programables

    b) Los circuitos integrados semimedida, que utilizan celdas predefinidas cuya interconexión se programa durante el proceso de fabricación. Las celdas pueden ser de dos grandes tipos:
    - Básicas, como por ejemplo puertas NO-Y, dando lugar a los conjuntos programables de puertas lógicas [PGA ("Programmable Gate Array")], cuya estructura se muestra en la figura 2.

    Figura 2. Arquitectura de los circuitos semimedida del tipo matriz de puertas ("gate array)

    - Bloques funcionales que dan lugar a las celdas estándar ("standard cells"), cuya estructura se muestra en la figura 3.

    Figura 3. Arquitectura de los circuitos semimedida del tipo celdas estándar ("standard cell").

    A pesar de todos los avances indicados, los circuitos integrados descritos no proporcionan una respuesta totalmente satisfactoria a la resolución de algunos problemas prácticos. Esto se debe a que los circuitos que presentan suficiente versatilidad, por ejemplo, modularidad y velocidad para ciertas aplicaciones, resultan muy caros y los circuitos de menor coste no presentan las prestaciones necesarias Por ello, surgió el interés por desarrollar circuitos integrados cuyo "hardware" operativo pudiera ser modificado mediante el estado de unas variables binarias. Estos circuitos, que denominamos configurables, contienen un elevado número de elementos lógicos en su interior, de los cuales sólo se utiliza, en cada aplicación concreta, un porcentaje que en la mayoría de los casos no supera el 60%.

    Los Circuitos Digitales Configurables sólo han sido posibles al alcanzarse la muy gran escala de integración (VLSI) y la ultra gran escala de integración [ULSI ("Ultra Large Scale of Integration") ]. Su desarrollo ha sido vertiginoso y ha dado lugar a circuitos muy diferentes entre sí. En estos últimos años se han realizado algunos intentos para metodizar su estudio y realizar una clasificación de los Circuitos Digitales Configurables.

    El desarrollo de los Circuitos Digitales Configurables se realizó, por parte de diversos fabricantes de circuitos integrados, siguiendo dos grandes tendencias:
    a) A partir de las matrices lógicas programables PLA y PAL añadiéndoles recursos lógicos cuya función fuese modificable mediante el estado de unas variables binarias.

    b) A partir de las estructuras utilizadas en la síntesis de circuitos integrados semimedida, haciendo programables los bloques funcionales y modificables por el usuario las interconexiones entre ellos, mediante el estado de unas variables binarias.

  3. Definición y Clasificación de los CDC's.
  4. Los CDC’s son circuito estándar (Standard off the shelf) cuya función “hardware” es programable por el usuario.

    Figura 4: Clasificación de los CDC según el tipo de organización.

    Circuitos digitales configurables con recursos de interconexión concentrados: precede de las matrices lógicas programables y por ello recibe el nombre de matricial. Los circuitos incluidos en ellos se denominan dispositivos lógicos programables (DPL) se le conoce con el acrónimo PLD (Programmable Logia Devices).
    Los DLP básicos están formados por una matriz PAL realimentada a través de un circuito lógico denominado macrocelda.

    Figura 5: Esquema de un DPL básico.

    Figura 6:Esquema de una macrocelda.

    Los DPL complejos son conocidos como CPLD (Complex Programmable Logic Device), son el resulta de distribuir los recursos de interconexión para aumentar la flexibilidad,se considera como circuitos digitales configurables de interconexión semiconcentrados o semidistribuidos.

    Figura 7: Esquema de bloques de DPL complejos (CDPL).

    Circuitos digitales configurables con recursos de interconexión distribuidos:son circuitos digitales configurables de puertas y se les conoce con el nombre de FPGA (Field Programmables Gate Arrays).

    Tipo Terraza:


    Tipo Cuadricula:
    Tipo mar de puertas: a)Estructura de puertas b) Estructura de capas.
  5. Características generales de los circuitos digitales configurables.

    • Configurabilidad:

      • El hardware completo del circuito se suministra de fábrica, pero el usuario modifica la forma de utilizarlo, lo que permite definir su funcionalidad.

      • La función del circuito se puede modificar mediante la utilización de solamente una parte de sus elementos y/o la modificación de las interconexiones entre ellos.

      • Es un concepto distinto al de circuito programable (memoria, microprocesador).

    • Recursos de Interconexión. Posee un conjunto de líneas de interconexión y conexiones programables internas al circuito.

    • Granularidad. Concentración de recursos lógicos. La granularidad es elevada si hay gran número de bloques lógicos de reducida complejidad.

    • Diponibilidad: estandar (“Standard off the shelf”).

    • Reconfiguracion en el sistema (“field programmability”), en algunas tecnologías.

    • Alta capacidad de integración: hasta 10.000.000 puertas o más.

    • Coste unitario medio, que depende de la complejidad del CDC y del número de unidades.


    Ventajas de los CDCs:

    • Combinan ventajas de los dos métodos tradicionales de solución de problemas tecnológicos:

      • Del método “software”:

        • Costo Reducido.

        • Posibilidad de reutilización.

      • Del método “Hardware”:

        • Mejores prestaciones.

    • Estos circuitos permiten definir su función para realizar cualquier sistema digital, desde el más sencillo al más complejo, mediante un único circuito integrado.

    • Poseen la gran ventaja de poder ser programados por el propio usuario.

  6. Planificacion del diseño con CDC.
  7. Para la elección de CDC que se adapte a la aplicación hay que tomar en cuenta:

    • Comparación del numero de terminales de E/S del encasulado del CDC elegido con lo que se necesita en el sistema digital a implementar.
    • Comparar el número de biestables del CDC con los que se necesita en el sistema digital a implementar.

      Para aplicación con PDLs:
      • Comparar el número básico de los productos de las macroceldas y el numero máximo de señales que pueden intervenir en un producto con la estructura del sistema digital que se necesita.
      • Tener en cuenta que le retardo de propagación entre señales de entrada y salida suele ser fijo y conocido antes de la implementación, siempre que no se utilicen realimentaciones ni características especiales de compartición de productos, etc.

      Para aplicación con FPGAs:

      • Comparar el número de señales de E/S de los bloques lógicos y la complejidad de estos, con la estructura del sistema digital.
      • Comprobar la cargabilidad de la salida (fant out) de las líneas de interconexión de la FPGA, así como el número de líneas que permiten realizar señales de elevada cargabilidad de salida, y compararlo con las necesidades de este tipo de señales que tiene el sistema digital que se va a diseñar.
      • Comprobar, después del posicionamiento, el número medio de terminales de cada bloque lógico que utiliza el sistema digital diseñado, es un factor que afecta a la rutabilidad.
      • Destacar que el retardo de propagación entre una señal de entrada y una señal de salida relacionada, no es fijo y no puede ser conocido antes de la implementación, salvo su valor mínimo.

    • Se recomienda adecuar la estructura del sistema digital diseñado a la arquitectura concreta del CDC elegido, antes de realizar la implementación.
    • Valorar las ventajas e inconvenientes de explotar las características específicas de un CDC. El diseño utilizara menos recursos y será mas rápido pero también mas difícilmente trasladable a otra familia de CDCs o a otra tecnología (migración).


  8. Fases de la realización de sistemas digitales mediante CDC's.

    Etapas de la realización de un sistema digital mediante PLDs y FPGAs


      Formas de descripción del diseño:

      Tipos de diseño:
      a) Estructural
      b) De comportamiento.
      c) Fisica
      d) Mixta.

      a) Descripción estructural: Consiste en realizar la interconexión de los diferentes componentes que forman el sistema digital.

      • Herramientas:

        • Programas de diseño esquemático, con bibliotecas especificas para CDCs.

        • Lenguajes de descripción “hardware”(HDLs).


      Descripción estructural de un contador sincrono de 4 bits realizada mediante un editor de esquemáticos.

      b) Descripción de comportamiento: Consiste en expresar el funcionamiento del sistema digital.
      · Herramientas:
      o Editores de herramientas de sintensis de HDLs, que permiten describir tablas de verdad, ecuaciones lógicas, grafos de estado, fliujos de datos y algoritmos.
      o Programas de diseño grafico, que permiten la representación de grafos de estado y algoritmos
      · Ejemplo: Descripción de comportamiento en VHDL de un contador sincrono de 4 bits. Herramienta StateCAD [XILINX]


      c) Descripción Física: consiste en la generación de los datos necesarios para la programación del circuito configurable (generalmente de forma automática).
      También se puede entender como la definición a bajo nivel de los bloques lógicos e interconexiones
      · Herramientas:
      o Editores simbólicos o gráficos.


      d) Descripción mixta: Es la combinación de todas las descripciones y se utiliza tomando en cuenta lo siguiente:
      Descripción de comportamiento para la mayoria de los circuitos, descripción estructural para diagramas de más alto nivel (“Top”) y descripción fisica utilizada poco para .los Plus.

      Compilación y/o síntesis del diseño
      Minimización lógica: Descripciones de comportamiento (tablas de verdad, ecuaciones lógicas, etc.). Se utilizan algoritmos que reducen la expresión.
      Síntesis: solo para descripción en HDL. Es la compilación del fichero para obtener ecuaciones optimizadas del modulo.
      Generación de lista de conexiones (“Netlist”). La lista de conexiones es una descripción textual que detalla los componentes de un sistema digital y las interconexiones entre ellos (descripción estructural). En general son ficheros muy extensos.
      Optimización de la lista de conexiones: elimina circuitos no utilizados y redundantes.
      Comprobación de errores: Detecta errores de tipo eléctrico, conexiones inadecuadas, “fan out” excesivo, etc.

      Implementación del diseño:
      Asignación de recursos (“Fitting”): asigna un elemento físico del circuito a cada elemento lógico del sistema digital diseñado y al final se obtiene una nueva lista de conexiones del proceso y un informe de usuario.
      Retroanotacion (“Back-Annotation”): genera una lista de conexiones actualizadas, que incluye los retardos obtenidos en el proceso de implementación, y un informe de usuario.
      Generación de un patrón de programación: obtiene el fichero necesario para la configuración del circuito.

      Programación del circuito configurable.
      Se configura el circuito para realizar la función deseada, mediante un equipo de programación adecuado a la tecnología del mismo.

      Verificación del diseño.
      Simulación Funcional: permite comprobar la funcionalidad del circuito(nivel lógico) asignando retardos nulos o unidad a los distintos componentes del circuito. Es necesario disponer de vectores de estimulo para las señales de entrada, que pueden ser generados automáticamente.
      Simulación Temporal: permite comprobar el correcto funcionamiento del circuito, utilizando los retardos obtenidos en la fase de implementación. Su exactitud depende de la bondad de los modelos de los distintos componentes.
      La simulación temporal nos permite comprobar el correcto funcionamiento de un sistema digital a una determinada frecuencia de reloj, así como los retardos globales del sistema.
      Análisis de retados: se utiliza cuando es necesario analizar en detalle la velocidad del proceso de un sistema digital o sus retardos internos. Este análisis se realiza mediante:
      i. Informes de retardos posteriores a la implementación.
      ii. Programas analizadores de retardos (“Timing Analyzer)


  9. Aplicacion de los CDC's.

  • Son aplicables a sistemas digitales de uso general especialmente los circuitos de acoplamiento (“random glue logia”) (PLDs y FPGAs).

  • Realización de prototipos de ASICs (FPGAs)..

  • Circuito reconfigurables (FPGAs)..
Ámbitos de aplicación de los CDC’s (cortesía de altera)

No hay comentarios: