UNIVERSIDAD TECNOLOGICA DEL VALLE DEL MEZQUITAL
REPORTE DE investigación ING. Mecatrónica Materia: dispositivos digitales Catedrático: Cuatrimestre: Grupo: INTEGRANTES:
Contenido Introducción a los PLD ............................................................... ............................................................................................................................ ............................................................. 3 Simbología adoptada en los PLD´S PLD´ S ............................................................... ...................................................................................................... ....................................... 4 Estado del Arte de los PLD´s ............................................................. ............................................................................................................... .................................................. 4 Clasificación entre la arquitectura de los PLD´s P LD´s .................................................................... ................................................................................. ............. 7 ................................................................................................................. .................................................. 8 PLD’s (PAL, GAL, CPLD, FPGA) ............................................................... PAL (Programmable (P rogrammable Array Logic) ........................................................................................................ ........................................................................................................ 8 GAL (Generic Array A rray Logic) .................................................................. ................................................................................................................... ................................................. 8 CPLD (Complex Programmable Logic Devices) ................................................................................... ................................................................................... 9 Las FPGAs (Field Programmable Gate Arrays). ................................................................................. ................................................................................. 11 Arquitectura de los FPGAS. F PGAS. ........................................................................................................... ........................................................................................................... 11 ARQUITECTURA DE LOS PLDS ............................................................................................................... 13 Tipos de Memorias ..................................................................... ............................................................................................................................... .......................................................... 15 APLICACIÓN DE LOS PLD´S .................................................................................................................... .................................................................................................................... 16 ENTORNO DE PROGRAMACIÓN CON VHDL. ................................................................ ......................................................................................... ......................... 16 Elementos sintácticos de VHDL......................................................... ......................................................................................................... ................................................ 16 EJEMPLOS DE PROGRAMACIÓN EN VHDL ............................................................................................ ............................................................................................ 17 Referencias bibliográficas ..................................................................................................................... ..................................................................................................................... 21
Introducción a los PLD Los dispositivos lógicos programables o PLD por sus siglas en inglés (Programmable Logic Device) son circuitos integrados que ofrecen a los diseñadores en un solo chip, un arreglo de compuertas lógicas y flip-flop’s, que pueden ser programados por el usuario para implementar funciones lógicas; y así, una manera más sencilla de reemplazar varios circuitos integrados estándares o de funciones fijas. Las ventajas que trae con respecto a los circuitos integrados de funciones fijas (series 74XX y 40XX) son variadas, entre ellas las que considero más importantes son:
Los PLD’s representan menor costo para los fabricantes.
Pueden reemplazar funciones de otros dispositivos lógicos.
Reducción de espacio en las tarjetas de circuito impreso.
Simplificación del alambrado entre unos chips y otros.
Disminución en los requerimientos de potencia (por consiguiente menor consumo de energía).
Realización de aplicaciones especiales no encontradas en circuitos integrados de funciones fijas.
Puede reflejarse menor costo para el usuario al ver las ventajas de tener menor cantidad de circuitos integrados; por consiguiente, procesos de ensamblado más rápidos, menor probabilidad de que puedan ocurrir fallas, así como menores procedimientos en la detección de fallas cuando estas se presenten.
Un PLD típico está compuesto de arreglos de compuertas lógicas, uno de ellos a base de compuertas AND al que se le denomina Plano AND y el otro de compuertas OR, denominado Plano OR; estos pueden ser programables y dependiendo del plano o los planos que lo sean, será la clasificación que reciba el PLD. Las variables de entrada (que vienen de las terminales externas del dispositivo) tienen interconexiones hacia uno de los planos, a través de compuertas con salidas complementarias (es decir con una salida inversora y una no-inversora); y salidas de los planos, conectadas a las terminales externas del dispositivo, por elementos lógicos como pueden ser: inversores, compuertas OR y flip-flop’s; además, en algunos casos existe retroalimentación de las salidas hacia uno de los planos, para tomarlas como entradas nuevamente ( aplicación utilizada frecuentemente en el caso
de lógica secuencial ). La programación se lleva a cabo por medio de conexiones fusibles; de tal forma que en una compuerta OR, una entrada con conexión fusible
“Fundida o Quemada” (fusible abierto) funcione como un cero lógico y una conexión intacta como el valor de la(s) variable(s) de entrada.
Simbología adoptada en los PLD´S Los fabricantes han sustituido el símbolo del inversor y del no-inversor en uno solo; pero, con dos salidas complementadas. Han simplificado las líneas de entrada a una compuerta AND u OR, por medio de una sola línea. Las conexiones entre compuertas se representan mediante una “ X ” o un punto. Las “ X ” se encuentran en el Plano programable y describen una conexión fusible intacta. En el Plano fijo, un punto representa una conexión fija y que por supuesto, ya no puede cambiarse. La ausencia de estos dos símbolos en un cruce de líneas significa que no existe conexión entre ellas.
Estado del Arte de los PLD´s 1948: Se inventa el transistor de contacto puntual en los Laboratorios Bell Telephone en Estados Unidos, resultado de una investigación sobre semiconductores llevada a cabo por Walter Brattain, John Bardeen y William Shockley, quienes recibirían el premio Nobel por su enorme contribución en 1956. 1951: Se logra un transistor con una estructura como la que se conoce actualmente. 1957: John Wallmark de RCA patenta el FET ( Field Effect Transistor ). 1959: Se concibe el primer Circuito Integrado Digital en la compañía Texas Instruments y es Jack Kilby quién desarrolla un Flip-Flop sobre una base de substrato de Germanio y contenía solo cuatro transistores.
1961: Se presenta la primera familia de Circuitos Integrados Digitales comerciales, denominada R.T.L. ( Resistor - Transistor - Logic ) y que fue introducida por Fairchild Semiconductor bajo la serie 900, está familia operaba a 3.2 Voltios, poco tiempo después nace otra familia denominada D.T.L. ( Diode - Transistor - Logic ). 1962 Aparece la familia T.T.L. ( Transistor - Transistor - Logic ), con características como el de ser más rápida que sus predecesoras, los primeros trabajos hechos en TTL los realizó James Buie de Pacific Semiconductor ( ho y subsidiaria de TRW ). En ese mismo año Steven Hofstein y Frederick Heiman de RCA, desarrollan el MOSFET y a finales del mismo, fabrican el primer Circuito Integrado MOS ( Metal - Oxide Silicon ) que contenía 16 transistores sobre una pastilla de silicio de 0.063 mm por lado. 1963 La compañía RCA producía un Circuito Integrado con cientos de MOSFET´S en un área muy reducida, al mismo tiempo nacían familias como la MOS de canal N y de canal P, NMOS y PMOS respectivamente y así como la CMOS ( Complementary MOS ). La CMOS se impuso con el tiempo bajo la serie 40XX lanzada por RCA. Y poco tiempo después la 74CXX de National Semiconductor. A mediados de los 60´s surge el primer PLD, una matriz de diodos configurables y fusibles desarrollado por Harris Semiconductor (conocida en ese tiempo como Radiation, Inc. ). 1967 Fairchild lanza al mercado una ROM de 64 bits con tecnología MOS. 1969 Nace el primer PLA, desarrollado por IBM y descrito como ROAM ( Read – Only Associative - Memory ). 1970 La compañía Harris crea la PROM, que combinaba la tecnología de fusibles de nicromo con una simplificación en la estructura de la ROM. En este mismo año Texas Instruments fabrica el TMS 200 y era un Circuito Integrado de máscara programable basado en el ROAM de IBM, este manejaba diecisiete entradas y ocho salidas, contenía ocho Flip - Flops JK como elementos de memoria. 1971 Collins Radio ofrece otro PLA de máscara programable denominado CRC 3506/7, similar al TMS 200. Intel hace una innovación tecnológica al introducir la EPROM borrable con rayos UV. General Electric abre una puerta más con una nueva tecnología PROM, desarrollada por David Greer, donde la estructura consistía de un Plano-Or y señales que van hacia un Plano-And; permitiendo el uso de lógica de multinivel sin desperdicio de pines I/O.
1971 Al mismo tiempo General Electric hace experimentos con PLD´s de tecnología MOS, usando las características de los PLA y con la tecnología de borrado con rayos UV. En junio Intel ofrece al mercado el primer microprocesador MOS ( el 4004, de 4 bits ) que contenía 2300 transistores. 1972 MOSTEK Corporation lanza la primera Memoria de Alta Densidad (una RAM dinámica de 1024 bits e Intel ofrece los primeros microprocesadores de 8 bits ( el 8008 y el 8080 ). 1973 National Semiconductor crea su propio PLA de máscara programable similar al TMS 200 pero con catorce entradas y ocho salidas sin elementos de memoria. El mérito a este dispositivo consistió en su menor complejidad en el diseño, mostrando así un avance en la nueva tecnología. Este dispositivo fue conocido como DM7575/DM8575. 1974 Monolithic Memories fabrica un dispositivo denominado PALA ( Programable Associative Logic Array ) bajo el número de parte MMT 5760/6760 implementaba multiniveles y circuitos secuenciales de más de 100 compuertas e incorporó bajo acuerdo de General Electric innovaciones en el dispositivo de máscara programable. 1975 Intersil anuncia el IM5200 un FPLA; poco después, Signetics hace lo mismo con el 82S100 que logró encabezar la carrera de los PLD´s durante un tiempo. 1978 En el verano de este año nace el dispositivo PAL, como un proyecto de MMI encabezado por John Birkner, en el que se pretendían satisfacer varias necesidades del mercado, entre ellas las de reemplazar la lógica estándar, mejorar los tamaños y la velocidad de los ya existentes; bajo esta idea los PAL invaden el mercado. El PAL que conocemos actualmente se basa en un diseño de H.T. Chua. MMI of rece soporte para el manejo de los nuevos dispositivos en el “ PAL Handbook “ escrito por John Birkner y que en el mismo se acompañaba de un programa hecho en Fortran para ayudar a programar los dispositivos.
Clasificación entre la arquitectura de los PLD´s
ROM: Mask Read-Only Memory (Memoria de Máscara Programable de Solo Lectura). Dispositivo programado solamente por el fabricante y como se muestra en el esquema anterior este se subdivide en tres partes que son:
PROM: Programmable Read-Only Memory (Memoria Programable de Solo Lectura). Dispositivo programado por el usuario y no borrable o reprogramable.
EPROM: Erasable Programmable Read-Only Memory (Memoria Programable y Borrable de solo Lectura ); este tipo de Memorias se borran Mediante Luz ultravioleta; con la ventaja de que puede ser programada por el usuario.
EEPROM: Electrically Erasable Programmable Read-Only Memory (Memoria Programable y borrable Eléctricamente de Solo Lectura); al igual que la anterior está puede ser programada por el usuario.
PLD’s (PAL, GAL, CPLD, FPGA) PAL (Programmable Array Logic)
PAL: Programmable Array Logic (Lógica en un Arreglo Programable), la arquitectura de éste PLD está compuesta por AND programable y el OR fijo. Este dispositivo es el intermedio entre una PROM y un PLA. Al revés de las PROM, la parte programable es la matriz AND
GAL (Generic Array Logic) Las GAL (Generic Array Logic) son variaciones de las PAL, más sofisticados (EE) Todos estos dispositivos, aparecen en el mercado con una variedad de opciones: inversión de las salidas, salidas triestado, salidas registradas, etc. Además de tener un número más grande de entradas y salidas. La GAL se forma con una matriz AND reprogramable y una matriz OR fija, con una salida lógica programable. La figura siguiente muestra el diagrama de bloques de una GAL. Esta estructura permite implementar cualquier expresión lógica suma de productos con un número de variables limitado.
En la figura siguiente se ilustra la estructura básica de una GAL con dos variables de entrada y una de salida.
CPLD (Complex Programmable Logic Devices) Las PAL y PLA son útiles para implementar una gran variedad de pequeños/medianos circuitos digitales (Entradas más salidas que no superen el número de 32). Cuando
se requiere mayor cantidad de entradas/salidas se recurre a un CPLD (Complex Programmable Logic Devices).
Un CPLD comprende múltiples bloques en un único chip con recursos de cableado interno para conectar los bloques. Cada bloque es similar a una PLA o PAL.
Las FPGAs (Field Programmable Gate Arrays). Son dispositivos semiconductores reprogramables, basados en matrices de bloques de lógica configurables (conocidos como CLBs) cuyas conexiones se pueden modificar según las necesidades del diseñador. Esta capacidad de reprogramación, unida a un proceso de desarrollo y fabricación menos costoso y largo que el de otros dispositivos otorga a las FPGAs una posición privilegiada para una gran variedad de aplicaciones frente a otros circuitos integrados. En la actualidad las FPGAs está implantada en muchos sectores de la industria, tales como procesamiento digital de señales, sistemas militares, prototipo de la funcionalidad de otros dispositivos electrónicos (por ejemplo un ASIC), etc.
Arquitectura de los FPGAS. Para poder hablar de las características y las ventajas de una FPGA frente a otros dispositivos es necesario describir la arquitectura interna de una FPGA.
Básicamente, una FPGA consiste en:
Una matriz de bloques de lógica configurables (CLB): bloques lógicos cuyos parámetros se pueden modificar de forma que presente diferentes funcionalidades. Cada CLB consiste, de forma genérica, en varias tablas de LUTs (look-up tables, o tablas de consulta) cuyas salidas están multiplexadas y unos parámetros de configuración de dicho CLB. El diseño de un CLB varía de un fabricante a otro. En la figura puede verse un CLB de una XC4000 de Xilinx:
Una matriz de rutado, encargada de conectar los CLBs entre ellos, y a su vez éstos con las celdas de entrada y salida.
Celdas de entrada y salida (IOB): su misión es comunicar la lógica interna de la FPGA con el exterior. No sólo los bloques de lógica son configurables, sino que tanto la matriz de rutado como las celdas de entrada y salida son programables, otorgándole a las FPGAs de una gran flexibilidad a la hora de ajustarse a las especificaciones de cada diseño.
Las FPGAs son un producto intermedio entre los dispositivos de lógica programable (PLD),
y
los
circuitos
integrados
de
aplicación
específica
(ASIC).
Los PLD’s surgieron por la necesidad de disponer de circuitos cuya funcionalidad no estuviera definida de forma estática, como un simple conjunto de puertas lógicas conectadas entre sí. Esta funcionalidad se modifica cuando se programa el dispositivo. Los primeros dispositivos PLD fueron las matrices de lógica programable (PLA), que aparecieron en los años 70. Los PLD’s eran chips programables que contenían una serie de puertas AND y OR conectadas por unas matrices de conmutación. Presentaban la desventaja de que podían ser programados una única vez, presentando desde el momento de su programación la misma funcionalidad.
ARQUITECTURA DE LOS PLDS Las entradas del PLD entran al arreglo lógico los cuales son hechos de columnas y filas (en la figura se muestra tal arreglo) cada par de columnas representa la entrada negada o complementada y la misma entrada sin negar, cada fila constituye un término AND. Las conexiones lógicas se establecen entre diferentes columnas y filas en la matriz para determinar cual combinación de entradas llevaran al termino AND a un nivel alto. Más de un término AND alimenta una compuerta OR. La salida es la suma de productos.
Tipos de Memorias ROM: Mask Read-Only Memory (Memoria de Máscara Programable de Solo Lectura). En un circuito combinacional que genera 2 a la n miniterminos de n variables en su plano AND. A pesar de tener solo 2 niveles cuando tiene muchas entradas y salidas tienden a ser lentas las comparaciones con los circuitos lógicos.
PROM: Programmable Read-Only Memory (Memoria Programable de Solo Lectura), Dispositivo el cual es programado por el usuario y no borrable o reprogramable.
EPROM: Erasable Programmable Read-Only Memory (Memoria Programable y Borrable de Solo Lectura); este tipo de Memorias se borran Mediante Luz ultravioleta; con la ventaja de que puede ser programada por el usuario.
EEPROM: Electrically Erasable Programmable Read-Only Memory (Memoria Programable y Borrable Eléctricamente de Solo Lectura); al igual que EPROM puede ser programada por el usuario.
APLICACIÓN DE LOS PLD´S La flexibilidad y programabilidad de los PLD’s hacen que su diseño con ellos sea mucho más rápido que diseñar con lógica discreta. Esto es, se puede utilizar el PLD para implementar la mayoría de las funciones hechas con los cientos de dispositivos de la familia lógica "7400". También cabe recalcar que toman menos espacio sobre el circuito impreso que con los dispositivos discretos. Una vez tomada la decisión de cambiar de lógica discreta a los PLD´s. Hay que escoger PLD's que sean compatibles con los otros dispositivos que se estén utilizando. Hay que tomar en consideración la potencia que se requiere, ya que varía la potencia necesaria de un PLD a otro y otro factor importante es su estabilidad.
ENTORNO DE PROGRAMACIÓN CON VHDL. VHDL, viene de VHSIC (Very High Speed Integrated Circuit) Hardware Descripción Lenguaje. VHDL es un lenguaje de descripción y modelado diseñado para describir (en una forma que los humanos y las maquinas puedan leer y entender) la funcionalidad y la organización de sistemas hardware digitales, placas de circuitos, y componentes. VHDL fue desarrollado como un lenguaje para el modelado y simulación lógica dirigida por eventos de sistemas digitales, y actualmente se lo utiliza también para la síntesis automática de circuitos. El VHDL fue desarrollado de forma muy parecida al ADA debido a que el ADA fue también propuesto como un lenguaje puro pero que tuviera estructuras y elementos sintácticos que permitieran la programación de cualquier sistema hardware sin limitación de la arquitectura. El ADA tenada una orientación hacia sistemas en tiempo real y al hardware en general, por lo que se lo escogido como modelo para desarrollar el VHDL.
Elementos sintácticos de VHDL Comentarios: Cualquier linea que empieza por dos guiones es un comentario. Identificadores: Son cualquier cosa que sirve para identificar variables, señales, nombres de rutina, etc. Puede ser cualquier nombre compuesto por letras incluyendo
el símbolo de subrayado \ ”. Las mayúsculas y minúsculas son consideradas iguales, Saque JOSE y José representan el mismo elemento. Números: Cualquier número se considera que se encuentra en base 10. Se admite La notación científica convencional para números en coma flotante. Es posible Poner números en otras bases utilizando el símbolo del sostenido \#". Ejemplo: 2#11000100# y 16#C4# representan el entero 196. Caracteres: Es cualquier letra o carácter entre comillas simples: 'l','3','t'. Cadenas: Son un conjunto de caracteres englobados por comillas dobles: "Esto es Una cadena". Cadenas de bits: Los tipos bit y bit vector son en realidad de tipo carácter y matriz de caracteres respectivamente.
EJEMPLOS DE PROGRAMACIÓN EN VHDL
Ejemplo 2 (comparadores)
Diseñe un comparador de dos números (A) y (B), cada número está formado 2 bits (A1,A0) y (B1 B0), la salida del comparador también es de 2 bits (Z1, Z0).
a) Realizar tabla de verdad b) Obtener la función mínima utilizando mapas de K. c) Programar en VHDL {if-then-else} Si: A=B entonces Z= 11 A
A>B entonces Z= 10
a)
A1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
A0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
B1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1
B0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
Z1 1 0 0 0 1 1 0 0 1 1 1 0 1 1 1 1
b)
1 1 1 1
0 1 1 1
0 0 1 0
0 1 1 1
F=C’B+C’A+D’A+BD’+A’C’D’+AD’ 1 0 0 0
1 1 0 1
1 1 1 1
1 1 0 1
F= A’D+A’C+B’D+B’C+ACD
Z0 1 1 1 1 0 1 1 1 0 0 1 1 0 0 0 1
c) Programación VHDL.
//Programación en VHDL
Library ieee; Use ieee.std_logic_1164.all; Entity comp is Port (A, B: in std_logic_vector (1down Ǿ));
Z: out std_logic_vector (1 down Ǿ); End comp; // declaracion de arquitectura Architecture funcionamiento of comp is Begin Process Begin If (A=B) then
Z= “11”; If (A
Z= “01”; Else
Z=”10”; End if; End process End funcionamiento;
Referencias bibliográficas
VHDL Maxnez.pdf Lenguaje para descripción y modelado de circuitos en vhdl.pdf QUE SON LOS PLD´s? pdf Lenguaje VHDL EUP Teruel.pdf Introducción FPGAs.pdf Dispositivos Lógicos Programables (PLD’s) . Pdf CENTRO UNIVERSITARIO DE CIENCIAS EXACTAS E INGENIERIAS PLD´S.pdf