Vous êtes sur la page 1sur 40

UNIVERSIDAD NACIONAL DE TRUJILLO

"Ao de la Consolidacin Econmica y Social del Per"

FACULTAD DE INGENIERIA Asignatura: Electrnica Digital I.

Tema: Lenguaje VHDL, dispositivos electrnicos CPLD y FPGA. Docente: .

Carrera Profesional: Ing. De Sistemas.

Alumno: Graos Neciosup, Jean Pierre.

2010

UNIVERSIDAD NACIONAL DE TRUJILLO INDICE:

ESCUELA DE INGENIERIA DE SISTEMAS

Pg. VHDL: Lenguaje para Sntesis y Modelado de Circuitos.. 2 Por qu VDHL?, Para que Sirve?................................................................................... 2 VHDL: Orgenes y Evolucin..... 2 Limitaciones.. 2 Conceptos Fundamentales 3 Niveles de Abstraccin. 3 Estilos RTL y Comportamental 4 Formas de escribir un circuito. 4 Secuencia de diseo.. 5 Unidades de diseo en VHDL.. 6 - Paquetes 6 - Entidades y Arquitectura 7 - Puertos, Seales y Variables 8 Tipos de Datos 8 - Dato Integer. 8 - Buses. 9 - Tipos Enumerados.. 9 Asignaciones de Seales Concurrentes.. 10 - Asignacin Simple, mltiple y Condicional. 10 - Asignacin Selectiva 11 Procesos. 11 - La sentencia Process.. 12 - Sentencia If y Case 13

Dispositivo Electrnico CPLD.. 14 Funcionamiento de un CPLD. 14 Matriz de Interconexiones Programables.. 14 Estructura de un CPLD 15 Construccin de un CPLD. 22 Diseo de un CPLD 23 Fabricantes de un CPLD. 26 Tabla de Datos(Look up table) . 27

Dispositivo Electrnico FPGA.. 32 Historia.. 32 Estructura General de las FPGAs. 33 Caractersticas.. 35 Programacin y Aplicaciones. 36 Tecnologa de la memoria de Programacin.. 36 Fabricantes.. 37

Bibliografa. 38

Lenguaje VHDL, dispositivos electrnicos CPLD y FPGA.

Pgina 1

UNIVERSIDAD NACIONAL DE TRUJILLO

ESCUELA DE INGENIERIA DE SISTEMAS

VHDL: Lenguaje para Sntesis y Modelado de Circuitos


VHDL= VHSIC + HDL. VHSIC =VeryHighSpeedIntegratedCircuit (Circuitos Integrados de Muy Alta Velocidad). HDL =HardwareDescriptionLanguage. Lenguaje de Descripcin de Hardware, VHDL es un lenguaje textual de alto nivel que se utiliza para la descripcin del hardware de los sistemas digitales. Las herramientas CAD toman descripciones VHDL para simular, sintetizar y verificar circuitos digitales. Por qu VHDL? Lenguaje estndar. Soporte de las principales compaas proveedoras de herramientas CAD y EDA. Flexibilidad de implementacin en circuitos integrados: cdigo VHDL es portable entre herramientas, aunque normalmente es necesario hacer ajustes segn el dispositivo o la tecnologa. Es un lenguaje popular cuyo nmero de usuarios sigue aumentando. Ventajas Proceso de desarrollo ms confiable y automatizado Reduccin de costo y tiempo de salida al mercado VHDL: Orgenes y evolucin Desarrollado en los comienzos de los 80s como un mtodo para la descripcin de sistemas electrnicos para el Departamento de Defensa de EE.UU. Su sintaxis es similar al lenguaje de programacin Ada. Fue estandarizado en 1987, bajo la norma IEEE 1076. En 1993 sali una revisin con algunas nuevas capacidades, manteniendo la compatibilidad con la norma original. Es utilizado ampliamente en la industria y academia, sin embargo, otros lenguajes como SystemC y SystemVerilog estn ganando mayor atencin y popularidad. Para qu sirve VHDL? Comienzos de los 90s: diseo de ASICs complejos, empleando herramientas de sntesis. Mediados de los 90s: diseo con lgica programable. Se utiliza en la documentacin as como en la simulacin del sistema, y adems se emplea para sintetizar la parte hardware del sistema digital. Actualmente se emplea en el modelamiento de todo el sistema digital (hardware y software.) Las herramientas de sntesis permiten implementar los circuitos sobre ASICs y FPLDs. Limitaciones de VHDL No permite describir sistemas analgicos. Sin embargo, ya se estn desarrollando versiones anlogas y mixtas. Lenguaje VHDL, dispositivos electrnicos CPLD y FPGA.

Pgina 2

UNIVERSIDAD NACIONAL DE TRUJILLO

ESCUELA DE INGENIERIA DE SISTEMAS

No existe un estilo de descripcin normalizado. Para sntesis se requiere ajustar los estilos disponibles a la capacidad de las herramientas CAD. Es posible sintetizar lgica solo de un subconjunto del lenguaje. Las herramientas de sntesis no soportan los mismos subconjuntos, y existen a veces diferencias al mudar de herramientas. Conceptos Fundamentales CONCURRENCIA => Actividades concurrentes son sucesos que ocurren en paralelo. En el hardware los eventos suelen disparar varios procesos al mismo tiempo. Modela la activacin de los bloques de un sistema digital, donde las seales se presentan sobre las entradas de los bloques y producen resultados en las salidas. ESTRUCTURA=> Ordenamiento de bloques en una jerarqua. Cada bloque se puede describir en estilo RTL, comportamental o mixto. SECUENCIA => Las sentencias secuenciales se ejecutan una despus de otra, como en lenguajes de software con un solo microprocesador. TIEMPO => VHDL permite modelar el concepto de tiempo. Simulacin dirigida por eventos. Un evento es producido por un cambio en una seal en un determinado tiempo de simulacin. La respuesta de un modelo a un evento puede provocar nuevos eventos. Niveles de Abstraccin La abstraccin define cuanto detalle debe ser descrito acerca del diseo. Existen cuatro niveles principales de abstraccin: Layout (Trazado): descripcin en el nivel geomtrico o fsico. Especifica la disposicin fsica de los dispositivos en el chip. Puede incluir informacin sobre temporizacin y efectos analgicos. Lgico: Especifica la conexin de puertas lgicas y registros. Informa detalladamente la funcin, arquitectura, tecnologa y temporizacin. Transferencia de Registros (RTL): Define cada registro en el diseo y la lgica entre ellos. Contiene informacin de la arquitectura pero no detalla la tecnologa. No especifica los retardos de tiempo absolutos. Comportamental: Describe la funcin de un diseo sin especificar la arquitectura de registros. Puede requerir informacin de tiempos de retardos. En VHDL se utilizan los estilos RTL y Comportamental.

Lenguaje VHDL, dispositivos electrnicos CPLD y FPGA.

Pgina 3

UNIVERSIDAD NACIONAL DE TRUJILLO

ESCUELA DE INGENIERIA DE SISTEMAS

Estilos RTL y Comportamental La mayora de las herramientas de sntesis requieren que el cdigo se exprese en el nivel RTL. En este nivel el diseador debe especificar la arquitectura de los registros y puertas en el diseo. Camino de datos (datapath) modelado estructuralmente. Las herramientas de sntesis comportamental generan automticamente el circuito en el nivel de puertas y flipflops a partir de la codificacin de un algoritmo. Seccin de control (i.e. mquinas de estados) descrito funcionalmente. La descripcin comportamental se emplea tambin para modelar estmulos y respuestas (testbenchs), documentar partes y detallar las especificaciones del hardware. NOTA: Algunos CADs permiten mezclar descripciones HDL con descripciones esquemticas. Es un lenguaje definido por el IEEE (Institute of Electrical and Electronics Engineers) (ANSI/IEEE 1076-1993) usado por ingenieros para describir circuitos digitales. Otros mtodos para disear circuitos son la captura de esquemas (con herramientas CAD) y los diagramas de bloques, pero stos no son prcticos en diseos complejos. Otros lenguajes para el mismo propsito son Verilog y ABEL. Aunque puede ser usado de forma general para describir cualquier circuito se usa principalmente para programar PLD (Programable Logic Device - Dispositivo Lgico Programable), FPGA (Field Programmable Gate Array), ASIC y similares. Desde aqu se deduce que es un lenguaje para la creacin de arquitecturas de circuitos integrados. Se ha desarrollado de manera satisfactoria la rama digital de diseo, no as la analgica (las siglas no dicen nada sobre si es diseo analgico o digital). Otro lenguaje conocido para esta labor es Verilog HDL: la principal diferencia con el anterior es que Verilog HDL est basado en la estructura de C, mientras que VHDL lo hace con Pascal. Sin embargo, la lectura de VHDL es ms simple debido a su acercamiento al lenguaje ingls. La gran ventaja de este lenguaje es la abstraccin de la realizacin fsica del circuito integrado que se desea disear; esto quiere decir que lo que se debe considerar es el comportamiento final del circuito. Por ejemplo, para realizar un circuito secuencial no se requiere saber cul ser la implementacin ptima con flip-flops, sino slo realizar la implementacin de la transicin entre estados.

Formas de describir un circuito


Dentro del VHDL hay varias formas con las que podemos disear el mismo circuito y es tarea del diseador elegir la ms apropiada.

Funcional: Describimos la forma en que se comporta el circuito. Esta es la forma que ms se parece a los lenguajes de software ya que la descripcin es secuencial. Estas sentencias secuenciales se encuentran dentro de los llamados procesos en VHDL. Los procesos son ejecutados en paralelo entre s, y en paralelo con asignaciones concurrentes de seales y con las instancias a otros componentes.

Lenguaje VHDL, dispositivos electrnicos CPLD y FPGA.

Pgina 4

UNIVERSIDAD NACIONAL DE TRUJILLO


ESCUELA DE INGENIERIA DE SISTEMAS

Flujo de datos: describe asignaciones concurrentes (en paralelo) de seales. Estructural: se describe el circuito con instancias de componentes. Estas instancias forman un diseo de jerarqua superior, al conectar los puertos de estas instancias con las seales internas del circuito, o con puertos del circuito de jerarqua superior. Mixta: combinacin de todas o algunas de las anteriores.

En VHDL tambin existen formas metdicas para el diseo de mquinas de estados, filtros digitales, bancos de pruebas etc. Secuencia de diseo El flujo de diseo de un sistema podra ser:

Divisin del diseo principal en mdulos separados. La modularidad es uno de los conceptos principales de todo diseo. Normalmente se diferencia entre dos metodologas de diseo: top-down y botton-up. La metodologa top-down consiste en que un diseo complejo se divide en diseos ms sencillos que se puedan disear (o describir) ms fcilmente. La metodologa botton-up consiste en construir un diseo complejo a partir de mdulos, ya diseados, ms simples. En la prctica, un diseo usa generalmente ambas metodologas. Entrada de diseos, pueden usarse diversos mtodos tal como VHDL como se vio anteriormente. Simulacin funcional, es decir, comprobaremos que lo escrito en el punto anterior realmente funciona como queremos, si no lo hace tendremos que modificarlo. En este tipo de simulacin se comprueba que el cdigo VHDL o Verilog (u otro tipo de lenguaje HDL) ejecuta correctamente lo que se pretende. Sntesis. En este paso se adapta el diseo anterior (que sabemos que funciona) a un hardware en concreto, ya sea una FPGA o un ASIC. Hay sentencias del lenguaje que no son sintetizables, como por ejemplo divisiones o exponenciaciones con nmeros no constantes. El hecho de que no todas las expresiones en VHDL sean sintetizables es que el VHDL es un lenguaje genrico para modelado de sistemas (no slo para diseo de circuitos digitales), por lo que hay expresiones que no pueden ser transformadas a circuitos digitales. Durante la sntesis se tiene en cuenta la estructura interna del dispositivo, y se definen restricciones, como la asignacin de pins. El sintetizador optimiza las expresiones lgicas con objeto de que ocupen menor rea, o bien son eliminados las expresiones lgicas que no son usadas por el circuito. Simulacin post-sntesis. En este tipo de simulacin se comprueba que el sintetizador ha realizado correctamente la sntesis del circuito, al transformar el cdigo HDL en bloques lgicos conectados entre s. Este paso es necesario ya que, a veces, los sintetizadores producen resultados de sntesis incorrectos, o bien realiza simplificaciones del circuito al optimizarlo. Placement y routing. El proceso de placement consiste en situar los bloques digitales obtenidos en la sntesis de forma ptima, de forma que aquellos bloques que se encuentran muy interconectados entre s se siten prximamente. El proceso de routing consiste en rutar adecuadamente los bloques entre s, intentando minimizar retardos de propagacin para maximizar la frecuencia mxima de funcionamiento del dispositivo.

Lenguaje VHDL, dispositivos electrnicos CPLD y FPGA.

Pgina 5

UNIVERSIDAD NACIONAL DE TRUJILLO

ESCUELA DE INGENIERIA DE SISTEMAS

Back-annotation. Una vez ha sido completado el placement & routing, se extraen los retardos de los bloques y sus interconexiones, con objeto de poder realizar una simulacin temporal (tambin llamada simulacin post-layout). Estos retardos son anotados en un fichero SDF (Standart Delay Format) que asocia a cada bloque o interconexcin un retardo mnimo/tpico/mximo. Simulacin temporal. A pesar de la simulacin anterior puede que el diseo no funcione cuando se programa, una de las causas puede ser por los retardos internos del chip. Con esta simulacin se puede comprobar, y si hay errores se tiene que volver a uno de los anteriores pasos. Programacin en el dispositivo. Se implementa el diseo en el dispositivo final y se comprueba el resultado.

Paquetes En un paquete se colocan definiciones comunes para varias entidades de diseo. Ello facilita el trabajo de equipos. Puede contener declaraciones de: Valores constantes Tipos definidos por el usuario Componentes Un Cuerpo de Paquete es otra unidad de diseo, que incluye subprogramas. En el curso vamos a emplear esta caracterstica del lenguaje para compartir informacin y archivos de diseo.

Lenguaje VHDL, dispositivos electrnicos CPLD y FPGA.

Pgina 6

UNIVERSIDAD NACIONAL DE TRUJILLO Sintaxis VHDL Entidad y Arquitectura Tipos de datos Seales y variables Asignaciones Procesos Sentencia IF ELSE Sentencia CASE Entidades y Arquitecturas

ESCUELA DE INGENIERIA DE SISTEMAS

Entidad => Indica QUE es el diseo. Define la interfaz de un bloque, sin definir su comportamiento. Equivale a un smbolo en un diagrama esquemtico. Arquitectura => Indica COMO trabaja el diseo. Modela el comportamiento o estructura del circuito. Puede contener elementos RTL o comportamentales. Una entidad puede contener varias arquitecturas. Entidad + Arquitecturas = opciones de diseo, diferentes soluciones para un mismo problema.

Lenguaje VHDL, dispositivos electrnicos CPLD y FPGA.

Pgina 7

UNIVERSIDAD NACIONAL DE TRUJILLO

ESCUELA DE INGENIERIA DE SISTEMAS

Tipo de Dato INTEGER Se comporta como un entero en lgebra. El rango es especificado por el usuario o por defecto por el compilador. El usuario puede especificar cualquier subrango: pablo : INTEGER range 0 TO 255; Lenguaje VHDL, dispositivos electrnicos CPLD y FPGA. Pgina 8

UNIVERSIDAD NACIONAL DE TRUJILLO

ESCUELA DE INGENIERIA DE SISTEMAS

vilma : INTEGER range 200 DOWNTO 54; Si el rango no es especificado ser el rango por defecto determinado por el compilador. doctorRajuela : INTEGER; Buses VHDL ofrece tipos vectores para crear buses. Tipos de vectores comunes: BIT_VECTOR, STD_LOGIC_VECTOR Ejemplos SIGNAL pablo: bit_vector (7 downto 0); SIGNAL betty: std_logic_vector (3 downto 0); SIGNAL bambam: std_logic_vector (1 to 3); El MSB queda indicado por el ndice de la izquierda: pablo (7), betty (3) bambam (1) El LSB queda indicado por el ndice de la derecha: pablo (0), betty (0) bambam (3)

Tipos Enumerados Los tipos enumerados son tipos creados por el usuario. Se emplean principalmente para las mquinas de estado. Los tipos se enumeran en una secuencia binaria, comenzando desde cero e incrementndose de uno en uno. Ejemplos: TYPE pas IS (Alemania, Italia, Japn); TYPE luces IS (rojo, verde, mbar, negro);

Lenguaje VHDL, dispositivos electrnicos CPLD y FPGA.

Pgina 9

UNIVERSIDAD NACIONAL DE TRUJILLO

ESCUELA DE INGENIERIA DE SISTEMAS

Asignacin mltiple Cuando ms una seal recibe dos asignaciones de seales separadas, se dice que es manejada por mltiples fuentes. En esos casos, se necesita una Funcin de Resolucin. Si no existe una funcin de resolucin la asignacin mltiple resulta ilegal. El tipo std_ulogic no soporta asignacin mltiple, pero si el tipo std_logic. VHDL para sntesis de MAX+plus II no permite asignaciones mltiples en asignaciones concurrentes.

Asignacin Condicional Lista una serie de expresiones que son asignadas a una seal luego de una evaluacin positiva de una o ms expresiones booleanas. Cada expresin booleana se valida en el orden escrito. Multiplexor 2 a 1: f <= a si s = 0, b si s = 1 ARCHITECTURE mux OF Mux2a1 IS BEGIN f <= a WHEN s = '0' ELSE b; END Mux2a1; Lenguaje VHDL, dispositivos electrnicos CPLD y FPGA.

Pgina 10

UNIVERSIDAD NACIONAL DE TRUJILLO Ejemplo: Codificador con prioridad:

ESCUELA DE INGENIERIA DE SISTEMAS

ENTITY condsigm IS PORT (high, mid, low : IN BIT; q : OUT INTEGER RANGE 0 TO 3); END condsigm; ARCHITECTURE maxpld OF condsigm IS BEGIN q <= 3 WHEN high = '1' ELSE -- prioridad ms alta 2 WHEN mid = '1' ELSE -- media prioridad 1 WHEN low = '1' ELSE -- prioridad ms baja 0; -- no hay seal activa END maxpld;

Procesos Un proceso define sentencias que se ejecutan en la secuencia descrita. Una sentencia Wait o una Lista de Sensibilidad describe las condiciones para ejecutar la sentencia Process (Proceso). Dentro del proceso, las sentencias se ejecutan secuencialmente. Los procesos se comunican entre s concurrentemente mediante seales. En un proceso pueden existir asignacin de variables, de seales, llamadas a procedimientos, sentencias IF, sentencias CASE, y sentencias iterativas. Una arquitectura puede contener ms de un proceso.

Lenguaje VHDL, dispositivos electrnicos CPLD y FPGA.

Pgina 11

UNIVERSIDAD NACIONAL DE TRUJILLO

ESCUELA DE INGENIERIA DE SISTEMAS

Ejemplo: Funcin OR

Lenguaje VHDL, dispositivos electrnicos CPLD y FPGA.

Pgina 12

UNIVERSIDAD NACIONAL DE TRUJILLO

ESCUELA DE INGENIERIA DE SISTEMAS

Sentencias Case Ejecuta sentencias de acuerdo al valor de una expresin. When Others sirve para indicar que sentencias deben ejecutarse si el valor de la expresin no coincide con los casos anteriores.

Lenguaje VHDL, dispositivos electrnicos CPLD y FPGA.

Pgina 13

UNIVERSIDAD NACIONAL DE TRUJILLO

ESCUELA DE INGENIERIA DE SISTEMAS

Dispositivo electrnico CPLD


Funcionamiento de un CPLD Un CPLD (del acrnimo ingls Complex Programmable Logic Device) es un dispositivo electrnico que extiende el concepto de un PLD (del acrnimo ingls Programmable Logic Device) a un mayor nivel de integracin ya que permite implementar sistemas ms eficaces, porque utilizan menos espacio, mejoran la fiabilidad del diseo, y reducen costos. Un CPLD se forma con mltiples bloques lgicos, cada uno similar a un PLD. Los bloques lgicos se comunican entre s utilizando una matriz programable de interconexiones, lo cual hace ms eficiente el uso del silicio, conduciendo a una mejor eficiencia a menor costo. Matriz de Interconexiones Programables La matriz de interconexiones programables (PIM) permiten unir los pines de entrada/salida a las entradas del bloque lgico, o las salidas del bloque lgico a las entradas de otro bloque lgico o inclusive a las entradas del mismo. La mayora de los CPLDs usan una de dos configuraciones para esta matriz: interconexin mediante bloques o interconexin mediante multiplexores.

Lenguaje VHDL, dispositivos electrnicos CPLD y FPGA.

Pgina 14

UNIVERSIDAD NACIONAL DE TRUJILLO

ESCUELA DE INGENIERIA DE SISTEMAS

El primero se basa en una matriz de filas y columnas con una celda programable de conexin en cada interseccin. Al igual que en las GAL esta celda puede ser activada para conectar/desconectar la correspondiente fila y columna. Esta configuracin permite una total interconexin entre las entradas y salidas del dispositivo o bloques lgicos. Sin embargo, estas ventajas provocan que disminuya el rendimiento del dispositivo, adems de aumentar el consumo de energa y el tamao del componente. En la interconexin mediante multiplexores, existe un multiplexor por cada entrada al bloque lgico. Las vas de interconexin programables son conectadas a las entradas de un nmero de multiplexores por cada bloque lgico. Las lneas de seleccin de estos multiplexores son programadas para permitir que sea seleccionada nicamente una va de la matriz de interconexin por cada multiplexor la cual se propagara a hacia el bloque lgico. Cabe mencionar que no todas las vas son conectadas a las entradas de cada multiplexor. La rutabilidad se incrementa usando multiplexores de mayor tamao, permitiendo que cualquier combinacin de seales de la matriz de interconexin pueda ser enlazada hacia cualquier bloque lgico. Sin embargo, el uso de grandes multiplexores incrementa el tamao de dispositivo y reduce su eficiencia. Bloques Lgicos Un bloque lgico es similar a un PLD, cada uno pose un bloque de compuertas AND y OR en forma de suma de productos, una configuracin para la distribucin de estas sumas de productos, y macroceldas. El tamao del bloque lgico es una medida de la capacidad del CPLD, ya que de esto depende el tamao de la funcin booleana que pueda ser implementada dentro del bloque. Los bloques lgicos usualmente tienen de 4 a 20 macroceldas. Macroceldas Estas tambin estn provistas con registros, control de polaridad, y buffers para salidas en alta impedancia. Por lo general un CPLD tiene macroceldas de entrada/salida, macroceldas de entrada y macroceldas internas u ocultas (buried macrocells), en tanto que un 22v10 tiene solamente macroceldas de entrada/salida. Una macrocelda interna es similar a una macrocelda de entrada/salida, slo que esta no puede ser conectada directamente a un pin de salida. La salida de una macrocelda interna va directamente a la matriz de interconexin programable. Celda de Entrada / Salida La funcin de una celda de entrada/salida es permitir el paso de una seal hacia dentro o hacia el exterior del dispositivo. Dependiendo del fabricante y de la arquitectura del CPLD estas celdas pueden o no ser consideradas parte del bloque lgico.

Estructura de un CPLD
Los CPLD son dispositivo lgicos programables con una complejidad entre los dispositivos PLA y FPGA. La caracterstica principal comun entre los CPLD y PAL, es la configuracin de memoria novoltil, y con respecto al dispositivo FPGA, la caracterstica comn de ste ltimo es que posee un desarrollo de compuertas de grande densidades, con la diferencia que los FPGA, tienen mayor densidad que los CPLD. A modo general un CPLD es como si se tuviera varios PLD, tipo PAL, dentro de un slo chip. El tamao ms grande los CPLD permite implementar ecuaciones lgicas o diseos Lenguaje VHDL, dispositivos electrnicos CPLD y FPGA. Pgina 15

UNIVERSIDAD NACIONAL DE TRUJILLO

ESCUELA DE INGENIERIA DE SISTEMAS

mas complicados. la programacin de estos dispositivos es generalmente en lenguajes de descripcin de hardware , por ejemplo, VHDL o Verilog.

Figura # 1: Diagrama de Bloque de un CPLD (por ALTERA)

Figura # 2: Diagrama de Bloque de un CPLD (por XILINX) Lenguaje VHDL, dispositivos electrnicos CPLD y FPGA.

Pgina 16

UNIVERSIDAD NACIONAL DE TRUJILLO

ESCUELA DE INGENIERIA DE SISTEMAS

La estructura principal son los bloques de matriz lgicos (LAB) o bloques de Funcin (Funtion Block), que se comunican en un bus interno con la matriz de Interconexin Programable (PIA) o tambin llamado Fast CONNECT Switch Matrix. Cada bloque es un grupo de 16 macroceldas; tienen entradas y salidas similares a los PLD de baja densidad, con capacidad de programarse. El nmero de pines de entrada y/o salida depender del dispositivo, para el caso de la figura 1, corresponde al modelo MAX7000S, basados en celdas EEPROM, del fabricante ALTERA, de 6 a 16 pines de entrada y salida, estas ltimas se encuentran en el bloque de control de entrada y salida, la cual tambin posee conexin con el PIA, y en la figura 2, el bloque de salida y entrada I/O, poseen un bufer para los dispositivos de entrada y salida. Cada bloque de funcin, para el caso de XILINX modelo de ejemplo "XC9500", esta compuesto de 18 macroceldas independientes. Los bloques funcionales tambin reciben una seal (reloj) de sincronismo global, una seal para habilitar la salida y una seal para habilitar el reset/set. El bloque funcional genera 18 salidas que maneja el FAST CONNECT. estas 18 salidas y su correspondiente seales de habilitacin son gobernadas por el bloque I/O. la lgica dentro de los bloques funcionales es implementada utilizando la representacin de suma de producto .

Figura # 3: Bloque de Funcin Las macroceldas pueden ser configuradas individualmente por una funcin de registro. 5 matriz de compuertas AND, directos al "product terms "(termino de producto), son utilizados como entrada de datos primario (para las compuertas OR y XOR) para implementar funciones combinacionales, o como entradas de control incluyendo el reloj, seales set/reset, y seal de habilitacin de salida. Los registros de las macroceldas pueden ser configurados como FLIP-FLOP tipo D o FLIP-FLOP tipo T. o este puede ser omitido por una operacin combinacinoal. Cada registro soporta operaciones set y reset asincronos. Durante el encendido del dispositivo, todos los registros son inicializados al estado predefinido por el usuario.

Lenguaje VHDL, dispositivos electrnicos CPLD y FPGA.

Pgina 17

UNIVERSIDAD NACIONAL DE TRUJILLO

ESCUELA DE INGENIERIA DE SISTEMAS

Figura # 4: Macrocelda con Bloque de Funcin Las seales de control global son desarrolladas individualmente en cada macrocelda, incluyendo seal de reloj, seal de set/reset, y las seales de habilitacin. La macrocelda registra seales de reloj de cada uno de los tres relojes globales o del trmino producto. La seal GSR, es una seal de Reset/set, de entrada que permite que sea definido por el usuario.

Figura # 5: Reloj de Macrocelda Lenguaje VHDL, dispositivos electrnicos CPLD y FPGA.

Pgina 18

UNIVERSIDAD NACIONAL DE TRUJILLO

ESCUELA DE INGENIERIA DE SISTEMAS

El termino producto, controla que la matriz de las 5 AND sean asignadas a cada macrocelda, un ejemplo pudiera ser que todas las AND sean manejadas por una OR. El inconveniente de esto es que se evidencia el retardo de un trmino producto a otro como se observa en la siguiente figura.

Figura # 6: Lgica de Macrocelda utilizando termino producto

Figura # 7: Lgica de un termino producto

Lenguaje VHDL, dispositivos electrnicos CPLD y FPGA.

Pgina 19

UNIVERSIDAD NACIONAL DE TRUJILLO

ESCUELA DE INGENIERIA DE SISTEMAS

El FAST CONNECT Switch Matriz conecta las seales a la entrada del bloque de funcin; tanto las salidas del bloque I/O como las salidas del bloque de funcin las manejas el Fast Connect Switch Matrix, cualquiera de estas pueden ser seleccionadas, a travs de la programacin del usuario, para poder manejar cada bloque con un retardo uniforme.

Figura # 8: Fast Connect Switch Matrix El Bloque I/O es la interfaz entre la lgica interna y los pines de entrada y salida del dispositivo CPLD. Cada bloque de I/O incluye un bufer de entrada y un manejador de salida; un multiplexor que selecciona la salida habilitada, y tambin incluye una seal de control de tierra para la programacin del usuario. El bufer de entrada es compatible con tensin de 5 V CMOS, 5 V TTL, y seales de voltaje de 3.3 V. El bufer de entrada usa internamente un suministro de potencia de 5 V (Vccint), para asegurarse que el umbral de entrada permanezca constante y no vare con el voltaje Vccio. La seal de salida se habilita de las siguientes formas: una seal puede ser generada por el trmino producto de la macrocelda, cualquiera de las seales globales de OE, o por una seal de tercer estado GTS.

Lenguaje VHDL, dispositivos electrnicos CPLD y FPGA.

Pgina 20

UNIVERSIDAD NACIONAL DE TRUJILLO

ESCUELA DE INGENIERIA DE SISTEMAS

Figura # 9: Bloque I/O Cada salida tiene un control independiente de "Slew Rate" (Mxima variacin del voltaje de salida con respecto al tiempo); este control permite reducir o controlar el ruido en el sistema, con slo modificar el Tslew.

Figura # 10: Slew Rate Lenguaje VHDL, dispositivos electrnicos CPLD y FPGA.

Pgina 21

UNIVERSIDAD NACIONAL DE TRUJILLO

ESCUELA DE INGENIERIA DE SISTEMAS

Estos CPLD poseen circuito con memoria EEPROM; que permiten reescribirse muchas veces, dependiendo del fabricante puede ser hasta 10.000 veces, como es el caso del fabricante XILINX, los modelos de la serie XC9500. Construccin de un CPLD Las vas estn compuesta de 100 porciento metal de aluminio diluido, aqu se identificar como Metal 2, los contactos son 100 porciento metal de aluminio diluido, identificado como Metal 1. Como caractersticas especiales posee tecnologa "FLASH FAST". Las compuertas en el canal N son del orden de 0.45 micra, y el canal P son del orden de 0.5 micra. El dispositivo esta formado por una capa de nitruro de silicio sobre otra capa de dixido de silicio. Posee dos capas de polisilicio. El PLOY 1 fue utilizado exclusivamente en compuertas flotantes, y POLY 2 (polisilicio y silicio de tusteno) fue utilizado para todas las compuertas estndar, en la matrix de lneas de programas y de palabra. La matrix de celdas programables son EEPROM (tecnologa FAST FLASH), el Metal 2, ser utilizado para las lneas de programa y de la palabra de dato. El Metal 1 distribuye la tierra GND y una lnea de un bit. El dielctrico se encuentra entre las capas POLY es de ONO "xidonitruro-xido". el color anaranjado es Nitruro de Silicio, el color azul es Metal 1 y 2, el color amarillo es xido, el color verde es polisilicio, color rojo difusin del canal P y N, y el color gris es el substrato P. Ver figura 19. Si el dispositivo es borrable elctricamente EEPROM, sus conexiones es a base de transistores MOS de puerta flotante, que contiene una puerta adicional embebida en el aislante entre la puerta normal (accesible desde el exterior) y el substrato. Esta puerta extra, sin conexin al exterior y completamente rodeada de material aislante, es la puerta flotante. los transistores MOS, inicialmente no tienen carga en la puerta flotante, de forma que actan como transistores normales: en cada lnea vertical se realiza la operacin lgica Y; es necesario que todas las lneas horizontales estn bajas (a=b=c=d=L) para que las lneas verticales sean altas (x=y=z=H), y basta que una de las entradas sea baja (a=L, por ejemplo) para que su lnea correspondiente sea alta, y por tanto los transistores cuyas puertas estn conectadas a esa lnea de entada pasan a conduccin, y entonces las lneas verticales se hacen L. En otras palabras, los transistores hacen el punto de conexin entre las lneas verticales y horizontales. Para desconectar un punto de conexin (un transistor), en la fase de programacin se aplica una tensin relativamente elevada (15 a 20)V en la puerta del transistor a desconectar; esta tensin hace que, por un proceso fsico conocido como efecto tnel, atraviesen electrones desde el substrato por la fina capa de aislante y queden almacenados en la puerta flotante. En definitiva la introduccin de electrones en la puerta flotante desconecta el transistor del circuito, ya que siempre estar cortado (estado off).

Lenguaje VHDL, dispositivos electrnicos CPLD y FPGA.

Pgina 22

UNIVERSIDAD NACIONAL DE TRUJILLO

ESCUELA DE INGENIERIA DE SISTEMAS

Figura # 11: Construccin de un CPLD

Figura # 12: Lnea de Productos


Diseo de un CPLD Es importante tomar en cuenta la densidad de compuertas que se requiere, y para ello es necesario determinar el nmero de macroceldas que debe poseer el dispositivo; tambin es importante determinar el nmero de entradas y de salida, segn la ecuacin lgica obtenida. los retardos de propagacin entre la seal de entrada y de salida se debe de tomar en cuenta cuando se esta trabajando con altas velocidades de procesamiento. hay Lenguaje VHDL, dispositivos electrnicos CPLD y FPGA.

Pgina 23

UNIVERSIDAD NACIONAL DE TRUJILLO

ESCUELA DE INGENIERIA DE SISTEMAS

sistemas que trabajan con diferentes niveles de tensin por lo que es importante conocerlos tomarlo en cuenta en el dispositivo CPLD. Estos niveles de tensin pueden oscilar entre 1.5 V a 5 V. En la metodologa modernas de diseos digitales, para sistemas de relativa complejidad, en lugar de utilizar descripciones del comportamiento del sistema en forma de tablas (tablas de la verdad, de transicin de estado, etc.) se utilizan lenguajes especficos, los lenguajes de descripcin de hardware o HDL (Hardware Description Language), que pueden describir tanto el comportamiento como la estructura de un sistema. Diseo de un decodificador binario de 2 a 4 1. Se realiza la descripcin del sistema, de forma que el entorno de desarrollo pueda generar una representacin interna del mismo. se puede optar entre una descripcin estructural, con ayuda de un editor grfica de captura de esquemas, o una descripcin del comportamiento con un lenguaje HDL. 2. Se realiza una compilacin funcional, con la que se verifican posibles errores en el diseo (salidas cortocircuitadas, entradas flotantes...) y adems se genera una representacin interna del sistema, con la que puede efectuarse una simulacin funcional del mismo. en esta fase la simulacin es slo funcional y es independiente de la tecnologa de implementacin, que es la que depende de los retardos que se produzcan. 3. En el software (compilador) se especifica la tecnologa de implementacin. Se proyecta el diseo al tipo de celdas lgicas, celdas de entradas y salida, y recursos de conexin del CPLD seleccionado. tras la compilacin se obtiene una representacin interna del sistema implementado y se genera un fichero informativo donde se detalla el porcentaje de ocupacin del dispositivo, las asignaciones de celdas y pines de entrada y salida, y otros. 4. Se hace una simulacin y anlisis temporal. con la informacin detallada de las caractersticas tcnicas de cada uno de sus componentes de la biblioteca de elementos se puede realizar una nueva simulacin ms real y se puede establecer los tiempos de retardos. 5. Una vez compilado y simulado el circuito; se debe configurar fsicamente el CPLD, lo que puede realizarse fsicamente con un programador de PLD o en el propio sistema (ISP). Es preferible utilizar este ltimo para reducir los posibles daos mecnicos en los pines del dispositivo, por lo tanto suelen configurarse los CPLD en la propia tarjeta del sistema final, con una programacin ISP (In-System Programming), esta opcin se utiliza en circuitos borrables elctricamente EEPROM o configurables con celdas SRAM. Comnmente se utiliza el protocolo JTAG (joint Test Action Group). que utiliza cuatro lneas para transferir bit a bit entre el computador y la tarjeta del sistema la informacin de configuracin.

Lenguaje VHDL, dispositivos electrnicos CPLD y FPGA.

Pgina 24

UNIVERSIDAD NACIONAL DE TRUJILLO

ESCUELA DE INGENIERIA DE SISTEMAS

Figura # 13: Descripcin del decodificador: a) estructural; b) funcional

Figura # 14: Esquema de conexin utilizando el programador CPLD

Lenguaje VHDL, dispositivos electrnicos CPLD y FPGA.

Pgina 25

UNIVERSIDAD NACIONAL DE TRUJILLO

ESCUELA DE INGENIERIA DE SISTEMAS

Figura # 15: Esquema de conexin utilizando un cable de descarga Fabricantes de un CPLD

ALTERA: Ha desarrollado tres familias de la categora CPLD. MAX5000, MAX7000 y MAX9000. El MAX5000 representa la tecnologa mas antigua que ofrecen soluciones de costo efectivo; el MAX7000 ofrece altas capacidades lgicas y mayor desempeo en velocidad; el MAX9000 es similar al MAX7000, excepto que el MAX9000 ofrece una mayor capacidad lgica. El MAX7000 contiene bloques de matrix lgicos LAB, matrix de interconexin programable PIA, esta serie fueron desarrollados en tecnologa EPROM y EEPROM, la desventaja de esta serie es que se debe programar fuera del circuito de desarrollo; desde 1996 Altera, desarrollo el modelo MAX7000S, capaz de programarse en lnea, es decir en el mismo circuito. Altera FlashLogic CPLDs, anteriormente conocido como Intel`s FlEXlogic, caracterizado por programarse dentro del sistema y provee bloques SRAM en el dispositivo. La configuracin de compuertas AND-OR, son por celdas SRAM, respaldadas por celdas EPROM o EEPROM. Al realizar un suministro de potencia las celdas SRAM son cargadas con un copia de la memoria EEPROM o EPROM, pero es la celda SRAM la que controla la configuracin del dispositivo. ATMEL: Ofrece el modelo ATF1500A, alto desempeo y alta densidad de compuertas, construido con tecnologa FLASH, con un retardo de 7.5 ns de pin a pin. AMD: Ofrece una familia de CPLD con 5 sub-familias llamadas Mach 1 a Mach 5. Cada dispositivo Macth, contiene bloques con mltiplos PAL; Match 1 Y 2 consiste en el modelo 22V16PALs, Match 3 y 4 consiste en el modelo 34V16PALs y el Match 5 ofrece modelos parecidos a los anteriores pero con mayor desempeo en velocidad. Todos los Match estn basados en tecnologa EEPROM. El rango de capacidades lgicas estn cercas de 2000 a 5000 compuertas. CYPRESS SEMICONDUCTOR: Son similares a los dispositivos AMD y Lattice en muchas maneras; el Cypress CPLD, llamado FLASH370, esta basado en tecnologa FLASH EEPROM, y ofrece un desempeo en el retardo de velocidad de 8.5 a 15 ns de pin a pin, la desventaja es que no es programable en el sistema.

Lenguaje VHDL, dispositivos electrnicos CPLD y FPGA.

Pgina 26

UNIVERSIDAD NACIONAL DE TRUJILLO

ESCUELA DE INGENIERIA DE SISTEMAS

LATTICE SEMICONDUCTOR: Lattice ofrece un completo rango de CPLD; con dos lneas de productos principales: Lattice pLSI que consiste en tres familias de EEPROM de CPLD; y el ispLSI que son los mimos dispositivos pLSI, con la diferencia de los ispLSI son programables en el sistema. Los rangos de capacidades lgicas estn cercas de 1200 a 4000 compuertas y el retardo de pin a pin es de 10 ns. El Lattice de la serie 3000 representa su desarrollo ms grande con 5000 compuertas y un retardo de 10 a 15 ns. XILINX: Ofrecen el modelo XC7000 y el XC9500; hay dos familias principales en el XC7000: la serie 7200 y 7300, el 7200 es un dispositivo moderadamente pequeo con 600 a 1500 compuertas; y con un retardo de pin a pin de 25 ns. El 7300 ofrece 3000 compuertas y lo otro que diferencia al 7200 es que el 7300 incluye dos compuertas OR en cada macroceldas. Finalmente el XC9500 ofrece la programacin dentro del circuito, con una capacidad de 6200 compuertas y un retardo de 5 ns.

Tabla de Datos (Look up Table) Esta arquitectura se basa en la implementacin lgico de bus de interconexin de filas y columnas, estas interconexiones tambin proveen conexin al bloque de matriz lgicos (LAB). El LAB consiste de varios elementos lgicos (LE); segn el modelo pueden ser 10 LE, por cada LAB. Los LE es una pequea unidad lgica que proveen una eficiente implementacin de funciones lgicas del usuario. El Multitrack Interconnect provee una rpida conexin entre los LAB.

Figura # 16: Diagrama de bloque de la arquitectura de tabla de datos

Look-Up Table (LUT), Es un circuito que implementa una funcin de lgica combinacional para almacenar una lista de valores de salida que correspondan a todas las posibles combinaciones de entradas, es decir un nmero de elementos almacenados son usados; para resumir una funcin lgica, almacenando cada funcin como una tabla de la verdad, esto se ilustra en la figura 12.

Lenguaje VHDL, dispositivos electrnicos CPLD y FPGA.

Pgina 27

UNIVERSIDAD NACIONAL DE TRUJILLO

ESCUELA DE INGENIERIA DE SISTEMAS

Figura # 17: Look-Up Table

Tomando como ejemplo la tabla de la verdad de la figura 12, como comparador A1A0=B1B2 , hace que la salida lgica AEQB = 1 lgico. Una matriz de 16 flip-flops (Q0 hasta Q15), contiene data de todas las posibles combinaciones A1A0B1B0, por cada combinacin se necesita un flip-flop. La entrada de cada LUT son decodificada por un decodificador de direcciones, cada salida del decodificador activa una buffer de tres estados, que pasa por un bloque de salida de flip-flop. Cuando se activa un buffer para pasar el contenido del flip-flop, el resto de los buffer permanecen en estado de alta impedancia, de esta manera se bloquea la data de los otros flip-flops. El contenido de los flip-flop son cargados cuando el LUT es programado, con las funciones requeridas. Continuando con el ejemplo de la figura 12, los 16 elementos almacenados en dicha tabla, combinados , para seleccionar una salida combinacional y para interconectar con otras partes del chip, es llamado Elemento Lgico (LE). La funcin del desempeo del elemento lgico es similar a la de macroceldas en los PLD de suma de producto. La estructura de un elemento lgico se muestra en la figura 13.

Figura # 18: Elemento Lgico

Lenguaje VHDL, dispositivos electrnicos CPLD y FPGA.

Pgina 28

UNIVERSIDAD NACIONAL DE TRUJILLO

ESCUELA DE INGENIERIA DE SISTEMAS

El circuito "Cascade Chain", permite al usuario programar la funcin booleana, este circuito puede ser de compuertas AND u OR.

Figura # 19: Operacin en Cascada

Bloque de Matriz Lgico (LAB), consiste en un nmero de elementos lgicos e interconectados localmente; el bloque LAB, esta conectado con el resto del dispositivo por medio de una serie de columnas y filas interconectadas, lo cual para este caso el fabricante ALTERA ha llamado FastTrack Interconnect, tambin se le conoce como Multitrack Interconnect.

Figura # 20: Bloque de Matriz Lgicos

Embedded Array Block (EAB), este bloque es una matriz de 2048 elemento de almacenaje que pueden ser usados eficientemente en la implementacin de funciones lgicas complejas.

Lenguaje VHDL, dispositivos electrnicos CPLD y FPGA.

Pgina 29

UNIVERSIDAD NACIONAL DE TRUJILLO

ESCUELA DE INGENIERIA DE SISTEMAS

El FLEX10K es un dispositivo del fabricante ALTERA, tiene una matriz de 6 filas por 24 columnas de bloque de matriz lgico (LAB), es decir que tendr 144 LAB, que a su ves son 8 x 144LAB= 1152 elementos lgicos, estos elementos tambin tienen 6 EAB; 6X2048 = 12288 bits de almacenaje de EAB, note que un EAB tiene mas capacidad de almacenaje que un LAB combinado. Algunos los dispositivos basados en LUT, son de tecnologa de memoria de acceso aleatorio esttica (SRAM), la ventaja de esta configuracin es que este puede ser fabricado en densidades muy altas de celdas de almacenajes y programar rpidamente, comparado con un dispositivo, (suma de producto, SOP), basado en EEPROM. La desventaja es que las celdas SRAM, son voltiles; es decir que deben reconfigurarse cada vez que se reinicia el sistema.

Figura # 21: Diagrama en bloque de un dispositivo de estructura de datos como es el caso del FLEX10K del fabricante ALTERA El mismo fabricante ALTERA, posee el modelo MAXII, "tabla de datos LUT", tal modelo contiene un bloque de memoria "flash", dentro del dispositivo. La mayora de estos almacenajes de memorias flash, son particionadas como un bloque de programacin o configuracin de memoria flash (CFM); este provee un almacenaje no voltil; la CFM descarga y configura la lgica. Una porcin pequea de la memoria flash es utilizado para la data de usuario, este pequeo bloque de memoria UFM, provee una almacenaje para el usuario de propsito general, en este bloque se provee la conexin del puerto programable para el arreglo lgico de lectura y escritura.

Lenguaje VHDL, dispositivos electrnicos CPLD y FPGA.

Pgina 30

UNIVERSIDAD NACIONAL DE TRUJILLO

ESCUELA DE INGENIERIA DE SISTEMAS

Figura # 22: Diagrama de bloque del modelo MAXII

Figura # 23: Diagrama del bloque de memoria UFM

El bloque UFM, puede ser utilizado como el EEPROM serial, para almacenar informacin no voltil, este bloque se conecta al bloque de arreglo lgico a travs del bus Multitrack interconectado, de esta manera se permite la interface con el bloque de elemento lgico.

Lenguaje VHDL, dispositivos electrnicos CPLD y FPGA.

Pgina 31

UNIVERSIDAD NACIONAL DE TRUJILLO

ESCUELA DE INGENIERIA DE SISTEMAS

Dispositivo electrnico FPGA


FPGA (del ingls Field Programmable Gate Array) es un dispositivo semiconductor que contiene bloques de lgica cuya interconexin y funcionalidad se puede programar. La lgica programable puede reproducir desde funciones tan sencillas como las llevadas a cabo por una puerta lgica o un sistema combinacional hasta complejos sistemas en un chip (w:en:System-on-a-chip). Las FPGAs se utilizan en aplicaciones similares a los ASICs sin embargo son ms lentas, tienen un mayor consumo de potencia y no pueden abarcar sistemas tan complejos como ellos. A pesar de esto, las FPGAs tienen las ventajas de ser reprogramables (lo que aade una enorme flexibilidad al flujo de diseo), sus costes de desarrollo y adquisicin son mucho menores para pequeas cantidades de dispositivos y el tiempo de desarrollo es tambin menor. Ciertos fabricantes cuentan con FPGAs que slo se pueden programar una vez, por lo que sus ventajas e inconvenientes se encuentran a medio camino entre los ASICs y las FPGAs reprogramables. Histricamente las FPGA surgen como una evolucin de los conceptos desarrollados en las PAL y los CPLD. Historia: FPGA vs CPLD Las FPGAs fueron inventadas en el ao 1984 por Ross Freeman y Bernard Vonderschmitt, cofundadores de Xilinx, y surgen como una evolucin de los CPLDs. Tanto los CPLDs como las FPGAs contienen un gran nmero de elementos lgicos programables. Si medimos la densidad de los elementos lgicos programables en puertas lgicas equivalentes (nmero de puertas NAND equivalentes que podramos programar en un dispositivo) podramos decir que en un CPLD hallaramos del orden de decenas de miles de puertas lgicas equivalentes y en una FPGA del orden de cientos de miles hasta millones de ellas. Aparte de las diferencias en densidad entre ambos tipos de dispositivos, la diferencia fundamental entre las FPGAs y los CPLDs es su arquitectura. La arquitectura de los CPLDs es ms rgida y consiste en una o ms sumas de productos programables cuyos resultados van a parar a un nmero reducido de biestables sncronos (tambin denominados flip-flops). La arquitectura de las FPGAs, por otro lado, se basa en un gran nmero de pequeos bloques utilizados para reproducir sencillas operaciones lgicas, que cuentan a su vez con biestables sncronos. La enorme libertad disponible en la interconexin de dichos bloques confiere a las FPGAs una gran flexibilidad. Otra diferencia importante entre FPGAs y CPLDs es que en la mayora de las FPGAs se pueden encontrar funciones de alto nivel (como sumador y multiplicador) embebidas en la propia matriz de interconexiones, as como bloques de memoria.

Lenguaje VHDL, dispositivos electrnicos CPLD y FPGA.

Pgina 32

UNIVERSIDAD NACIONAL DE TRUJILLO

ESCUELA DE INGENIERIA DE SISTEMAS

Arquitectura interna de una FPGA.

Historia
Las FPGA son el resultado de la convergencia de dos tecnologas diferentes, los dispositivos lgicos programables (PLDs [Programmable Logic Devices]) y los circuitos integrados de aplicacin especfica (ASIC [application-specific integrated circuit]). La historia de los PLDs comenz con los primeros dispositivos PROM (Programmable Read-Only Memory) y se les aadi versatilidad con los PAL (Programmable Array Logic) que permitieron un mayor nmero de entradas y la inclusin de registros. Esos dispositivos han continuado creciendo en tamao y potencia. Mientras, los ASIC siempre han sido potentes dispositivos, pero su uso ha requerido tradicionalmente una considerable inversin tanto de tiempo como de dinero. Intentos de reducir esta carga han provenido de la modularizacin de los elementos de los circuitos, como los ASIC basados en celdas, y de la estandarizacin de las mscaras, tal como Ferranti fue pionero con la ULA (Uncommitted Logic Array). El paso final era combinar las dos estrategias con un mecanismo de interconexin que pudiese programarse utilizando fusibles, antifusibles o celdas RAM, como los innovadores dispositivos Xilinx de mediados de los 80. Los circuitos resultantes son similares en capacidad y aplicaciones a los PLDs ms grandes, aunque hay diferencias puntuales que delatan antepasados diferentes. Adems de en computacin reconfigurable, las FPGAs se utilizan en controladores, codificadores/decodificadores y en el prototipado de circuitos VLSI y microprocesadores a medida. El primer fabricante de estos dispositivos fue Xilinx [2] y los dispositivos de Xilinx se mantienen como uno de los ms populares en compaas y grupos de investigacin. Otros vendedores en este mercado son Atmel, Altera, AMD y Motorola. Estructura general de las FPGAs El proceso de diseo de un circuito digital utilizando una matriz logica programable puede descomponerse en dos etapas bsicas: 1. Dividir el circuito en bloques bsicos, asignndolos a los bloque configurables del dispositivo. 2. Conectar los bloques de lgica mediante los conmutadores necesarios.

Lenguaje VHDL, dispositivos electrnicos CPLD y FPGA.

Pgina 33

UNIVERSIDAD NACIONAL DE TRUJILLO

ESCUELA DE INGENIERIA DE SISTEMAS

Para ello el fabricante proporciona las herramientas de diseo adecuadas. Los elementos bsicos constituyentes de una FPGA como las de Xilinx se pueden ver en la figura 2 y son los siguientes: 1. Bloques lgicos, cuya estructura y contenido se denomina arquitectura. Hay muchos tipos de arquitecturas, que varan principalmente en complejidad (desde una simple puerta hasta mdulos mas complejos o estructuras tipo PLD). Suelen incluir biestables para facilitar la implementacin de circuitos secuenciales. Otros mdulos de importancia son los bloques de Entrada/Salida, 2. Recursos de interconexin, cuya estructura y contenido se denomina arquitectura de rutado. 3. Memoria RAM, que se carga durante el RESET para congelar bloques y conectarlos. Entre las numerosas ventajas que proporciona el uso de FPGAs dos destacan principalmente: el bajo coste de prototipado y el corto tiempo de produccin. No todo son ventajas. Entre los inconvenientes de su utilizacin estn su baja velocidad de operacin y baja densidad lgica (poca lgica implementable en un solo chip). Su baja velocidad se debe a los retardos introducidos por los conmutadores y las largas pistas de conexin. Por supuesto, no todas las FPGA son iguales. Dependiendo del fabricante nos podemos encontrar con diferentes soluciones. Las FPGAs que existen en la actualidad en el mercado se pueden clasificar como pertenecientes a cuatro grandes familias, dependiendo de la estructura que adoptan los bloques lgicos que tengan tenidos. Las cuatro estructuras se pueden ver en la _gura 3, sin que aparezcan en la misma los bloques de entrada/salida. 1. Matriz simtrica, como son las de XILINX 2. Basada en canales, ACTEL 3. Mar de puertas, ORCA 4. PLD jerrquica, ALTERA o CPLDs de XILINX. En concreto, para explicar el funcionamiento y la estructura bsica de este tipo de dispositivos programables solo se consideraran las distintas familias de XILINX.

Lenguaje VHDL, dispositivos electrnicos CPLD y FPGA.

Pgina 34

UNIVERSIDAD NACIONAL DE TRUJILLO

ESCUELA DE INGENIERIA DE SISTEMAS

Caractersticas Una jerarqua de interconexiones programables permite a los bloques lgicos de un FPGA ser interconectados segn la necesidad del diseador del sistema, algo parecido a un breadboard(es una placa de uso genrico reutilizable o semi permanente) programable. Estos bloques lgicos e interconexiones pueden ser programados despus del proceso de manufactura por el usuario/diseador, as que el FPGA puede desempear cualquier funcin lgica necesaria. Una tendencia reciente ha sido combinar los bloques lgicos e interconexiones de los FPGA con microprocesadores y perifricos relacionados para formar un Sistema programable en un chip. Ejemplo de tales tecnologas hbridas pueden ser encontradas en los dispositivos Virtex-II PRO y Virtex-4 de Xilinx, los cuales incluyen uno o ms procesadores PowerPC embebidos junto con la lgica del FPGA. El FPSLIC de Atmel es otro dispositivo similar, el cual usa un procesador AVR en combinacin con la arquitectura lgica programable de Atmel. Otra alternativa es hacer uso de ncleos de procesadores implementados haciendo uso de la lgica del FPGA. Esos ncleos incluyen los procesadores MicroBlaze y PicoBlaze de Xlinx, Nios y Nios II de Altera, y los procesadores de cdigo abierto LatticeMicro32 y LatticeMicro8. Muchos FPGA modernos soportan la reconfiguracin parcial del sistema, permitiendo que una parte del diseo sea reprogramada, mientras las dems partes siguen funcionando. Este es el principio de la idea de la computacin reconfigurable, o los sistemas reconfigurables.

Lenguaje VHDL, dispositivos electrnicos CPLD y FPGA.

Pgina 35

UNIVERSIDAD NACIONAL DE TRUJILLO Programacin

ESCUELA DE INGENIERIA DE SISTEMAS

La tarea del programador es definir la funcin lgica que realizar cada uno de los CLB, seleccionar el modo de trabajo de cada IOB e interconectarlos. El diseador cuenta con la ayuda de entornos de desarrollo especializados en el diseo de sistemas a implementarse en un FPGA. Un diseo puede ser capturado ya sea como esquemtico, o haciendo uso de un lenguaje de programacin especial. Estos lenguajes de programacin especiales son conocidos como HDL o Hardware Description Language (lenguajes de descripcin de hardware). Los HDLs ms utilizados son:

VHDL Verilog ABEL

En un intento de reducir la complejidad y el tiempo de desarrollo en fases de prototipaje rpido, y para validar un diseo en HDL, existen varias propuestas y niveles de abstraccin del diseo. Entre otras, National Instruments LabVIEW FPGA propone un acercamiento de programacin grfica de alto nivel. Aplicaciones Cualquier circuito de aplicacin especfica puede ser implementado en un FPGA, siempre y cuando esta disponga de los recursos necesarios. Las aplicaciones donde ms comnmente se utilizan los FPGA incluyen a los DSP (procesamiento digital de seales), radio definido por software, sistemas aeroespaciales y de defensa, prototipos de ASICs, sistemas de imgenes para medicina, sistemas de visin para computadoras, reconocimiento de voz, bioinformtica, emulacin de hardware de computadora, entre otras. Cabe notar que su uso en otras reas es cada vez mayor, sobre todo en aquellas aplicaciones que requieren un alto grado de paralelismo. Existe cdigo fuente disponible (bajo licencia GNU GPL)[1] de sistemas como microprocesadores, microcontroladores, filtros, mdulos de comunicaciones y memorias, entre otros. Estos cdigos se llaman cores. Tecnologa de la memoria de programacin Las FPGAs tambin se pueden diferenciar por utilizar diferentes tecnologas de memoria:

Voltiles: Basadas en RAM. Su programacin se pierde al quitar la alimentacin. Requieren una memoria externa no voltil para configurarlas al arrancar (antes o durante el reset). No Voltiles: Basadas en ROM. Hay de dos tipos, las reprogramables y las no reprogramables.

1. Reprogramables: Basadas en EPROM o flash. stas se pueden borrar y volver a reprogramar aunque con un lmite de unos 10.000 ciclos. 2. No Reprogramables: Basadas en fusibles. Solo se pueden programar una vez, lo que las hace poco recomendables para trabajos en laboratorios.

Lenguaje VHDL, dispositivos electrnicos CPLD y FPGA.

Pgina 36

UNIVERSIDAD NACIONAL DE TRUJILLO Ejemplo de tecnologa USB que incorpora una FPGA:

ESCUELA DE INGENIERIA DE SISTEMAS

Fabricantes A principios de 2007, el mercado de los FPGA se ha colocado en un estado donde hay dos productores de FPGA de propsito general que estn a la cabeza del mismo, y un conjunto de otros competidores quienes se diferencian por ofrecer dispositivos de capacidades nicas.

Xilinx es uno de los dos grandes lderes en la fabricacin de FPGA.

Lenguaje VHDL, dispositivos electrnicos CPLD y FPGA.

Pgina 37

UNIVERSIDAD NACIONAL DE TRUJILLO

ESCUELA DE INGENIERIA DE SISTEMAS

Altera es el otro gran lder.

Lattice Semiconductor lanz al mercado dispositivos FPGA con tecnologa de 90nm. En adicin, Lattice es un proveedor lder en tecnologa no voltil, FPGA basadas en tecnologa Flash, con productos de 90nm y 130nm. Actel tiene FPGAs basados en tecnologa Flash reprogrammable. Tambin ofrece FPGAs que incluyen mezcladores de seales basados en Flash. QuickLogic tiene productos basados en antifusibles (programables una sola vez). Atmel es uno de los fabricantes cuyos productos son reconfigurables (el Xilinx XC62xx fue uno de estos, pero no estn siendo fabricados actualmente). Ellos se enfocaron en proveer microcontroladores AVR con FPGAs, todo en el mismo encapsulado. Achronix Semiconductor tienen en desarrollo FPGAs muy veloces. Planean sacar al mercado a comienzos de 2007 FPGAs con velocidades cercanas a los 2GHz. MathStar, Inc. ofrecen FPGA que ellos llaman FPOA (Arreglo de objetos de matriz programable).

BIBLIOGRAFIA:
PARDO, Fernando y A. BOLUDA, Jos. VHDL: Lenguaje para sntesis y modelado de circuitos Editorial RA-MA Editores. Espaa. 1999. http://www.scribd.com/doc/17819908/Vhdl-Tutorial?secret_password=&autodown=txt http://es.wikipedia.org/wiki/VHDL#Procedimiento_de_dise.C3.B1o http://es.wikipedia.org/wiki/FPGA http://www.lsi.die.upm.es/~marisa/docencia/fpga_a2_2004.pdf

Lenguaje VHDL, dispositivos electrnicos CPLD y FPGA.

Pgina 38

UNIVERSIDAD NACIONAL DE TRUJILLO

ESCUELA DE INGENIERIA DE SISTEMAS

Lenguaje VHDL, dispositivos electrnicos CPLD y FPGA.

Pgina 39

Vous aimerez peut-être aussi