I ns tituto Tecnológico De Lerma
Mate ri a: Dis eñ o Di gi tal c o n VH DL
I nvestig ació ación: n: Un idad 1
A l u m n o : G u e r r er e r o S eg eg u r a E d u a r d o D o m i n g o
Profesor: Ing. Fernand Fe rnand o Esc ala alante nte Guerrero
Quinto Semestre de Electrónica Electrónica
Campech e, Campech e
6 septiemb re de 201 2013 3
Índi ce de Cont enido .
Portada Pág.2 Índ ic e de Con ten id o Pág.3 Hist ori a del VHDL Pág.4 VHDL y PLD Defin ici ón Pág.5 Tip os de PLD y PLA Pág.6 PAL (Lógica de Arreglos Prog ramables ) Pág.7 GA L (Matr iz Lóg ic a Gen é ri ca) Pág. 8 C PL D Pág. 9 F PG A Pág .10 C om p añ ías F ab ri c an te s Pág. 11 B ib li o gr af ía
En la siguiente investigación se abordaran 11 temas por medio de preguntas, mediante las cuales las respuestas aparecen en modo de titulo, con sus respectivas definiciones y desglosado.
Antecedentes históricos del VHDL (antecesores) ¿Que es el VHDL y quién lo creó? Ventajas y desventajas del VHDL ¿Que son los PLD? ¿Que son los PAL? ¿Que son los PLA? ¿Que son los GAL? ¿Que son los PLD y los CPLD? ¿Que es un compilador lógico? ¿Cuales son las compañías más importantes en la fabricación de dispositivos lógicos programables?
2
Antecedentes El desarrollo de VHDL fue iniciado en 1981 por los Estados Unidos Departamento de la Defensa para hacer frente a la crisis del ciclo de vida de hard ware. El costo de los equipos electrónicos como reprocuring tecnologías obsoletas se convirtió en llegar a un punto crítico, porque la función de las partes no está debidamente documentada, y de los diversos componentes que integran un sistema individual se verifica por medio de una amplia gama de diferentes e incompatibles idiomas y herramientas de simulación. El requisito era disponer de un idioma con una amplia gama de capacidad descriptiva, que funciona de la misma en cualquier simulador y es independiente de la tecnología o metodología de diseño. Normalización El proceso de normalización de VHDL es única en la que la participación y la retroalimentación de la industria fue tratado en una fase temprana. La base de idioma (versión 7.2) se publicó 2 años antes de la norma a fin de que la herramienta de desarrollo podrían comenzar en serio antes de la norma. Todos los derechos a la definición de idiomas se distribuyen por el Departamento de Defensa de la IEEE con el fin de fomentar la industria de la aceptación y de la inversión. ASIC Mandato DoD Mil Std 454 mandatos de la oferta de una amplia descripción VHDL con cada ASIC entregado al Departamento de Defensa. La mejor manera de garantizar los niveles necesarios de descripción VHDL es utilizar durante todo el proceso de diseño. VHDL'93 Como un estándar IEEE, VHDL deben someterse a un proceso de revisión cada 5 años (o antes), para asegurar su continuidad de la re levancia de la industria. La primera re visión se completó en septiembre de 1993, y conforme a las herramientas VHDL'93 ya están disponibles. Resumen: Historia de VHDL 1981 - Iniciado por EE.UU. del Departamento de Defensa para abordar el ciclo de vida de ha rdware de crisis 1983-85 - Desarrollo de la base de referencia de idiomas por Intermetrics, IBM y TI 1986 - Todos los derechos transferidos a IEEE 1987 - La publicación de la norma IEEE 1987 - Mil Std 454 requiere amplia descripciones VHDL que se entregarán con ASICs 1994 - estándar revisados (llamado VHDL 1076-1993)
3
VHDL Es el acrónimo que representa la combinación de VHSIC y HDL, donde VHSIC es el acrónimo de Very High Speed Integrated Circuit y HDL es a su vez el acrónimo de Hardware Description Language. Es un lenguaje definido por el IEEE (Institute of Electrical and Electronics Engineers ) (ANSI/IEEE 1076-1993) usado por ingenieros para d escribir circuitos digitales. Otros métodos para diseñar circuitos son la captura de esquemas (con herramientas CAD) y los diagramas de bloques, pero éstos no son prácticos en d iseños complejos. Otros lenguajes para el mismo propósito 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 Lógico Programable), FPGA (Field Programmable Gate Array ), ASIC y similares. Ventajas: Simplifican la creación de elementos de memoria. Desventajas: Pueden generarse latches no deseados por ejemplo cuando todas las opciones de una sentencia condicional no están especificadas. PLD. Una forma rápida y directa de integrar aplicaciones se logra con la lógica programable, la cual permite independizar el proceso de fabricación del proceso de diseño fuera de la fábrica de semiconductores. El sistema desplaza los errores de alambrado al campo exclusivo de la programación. Los sistemas con estas características se pueden borrar y reprogramar en casos de cambios o revisiones. El resultado es la reducción del espacio físico de la aplicación. El diseño está basado en bibliotecas y mecanismos específicos de mapeado de funciones.
La mayor parte de los diseños de nivel de sistema incorporan diversos dispositivos, como son las memorias RAM , ROM , controladores, procesadores, etc., que se interconectan mediante gran cantidad de dispositivos lógicos de propósito general, frecuentemente denominados lógica de unión (" glue logic" ). En los últimos años, los dispositivos PLD (Programmable Logic Device) han comenzado a reemplazar muchos de los antiguos dispositivos de unión, SSI y MSI . El uso de dispositivos PLD proporciona una reducción en el número de circuitos integrados. Por ejemplo, en los sistemas de memoria de las computadoras, los PLDpueden utilizarse para decodificar direcciones de memoria y generar señales de escritura en memoria. En muchas aplicaciones, los PLD y, en concreto, las matrices lógicas programables ( PAL, Programmable Array Logic ) y las matrices lógicas genéricas ( GAL, Generic Array Logic ) pueden emplearse para reemplazar dispositivos lógicos SSI y MSI , consiguiendo con ello una reducción de etapas y de los costos. Por las razones anteriores el diseño lógico hoy día se realiza con PLDs. Un PLD está formado por una matriz de puertas AND y puertas OR , que se pueden programar para conseguir funciones lógicas específicas. El diseño con PLDs señala las siguientes ventajas en relación a la lógica cableada:
Economía. Menos espacio en los impresos. 4
Se mantiene la reserva del diseño. Se requiere tener menos inventarios que con circuitos estándar SSI , MSI . Menos alambrado.
Tipos de PLD Los PLD se dividen en dos clases: 1.
PLDs combinatorios. Constituidos por arreglos de compuertas AND – OR . El usuario define las interconexiones y en esto consiste la programación.
2.
PLDs secuenciales. Además de los arreglos de compuertas, incluyen flip – flops para programar funciones secuenciales como contadores y máquinas de estado
Estructura de los Dispositivos Lógicos Programables Básicos Los PLD se clasifican de acuerdo con su estructura, la cual es básicamente la ordenación funcional de los elementos internos que proporciona a l dispositivo sus características de operación específicas. Memoria programable de sólo lectura PROM (PROM, Programable Read Only Memory) La PROM está formada por un conjunto fijo (no programable) de puertas AND conectadas como decodificador y una matriz programable OR . La PROM se utiliza como una memoria direccionable y no como un dispositivo lógico.
Diagrama de bloques de una PROM (Programmable Read-Only Memory).
Arreglo Lógico Programable PLA (PLA, Programmable Logic A rray) El PLA es un PLD formado por una matriz AND programable y una matriz OR programable. La PLA ha sido desarrollada para superar algunas de las limitaciones de las memorias PROM .
5
Diagrama de bloques de una PLA (Programmable Logic Array).
Lógica de Arreglos Programables (PAL, Programmable Array Logic) La PAL es un PLD que se ha desarrollado para superar ciertas desventajas de la PLA, tales como los largos retardos debidos a los fusibles adicionales que resultan de la utilización de dos matrices programables y la mayor complejidad del circuito. La PAL básica está formada por una matriz AND programable y una matriz OR fija con la lógica de salida. Esta estructura permite implementar cualquier suma de productos lógica con un número de variables definido, sabiendo que cualquier función lógica puede expresarse como suma de productos. La PAL se implementa con tecnología bipolar (TTL o ECL).
Figura 4.2.5. Diagrama de bloques de una PAL (Programmable Logic Array) Nomenclatura de una PAL Los líderes en fabricación de PLDs, Texas Instruments y AMD, tienen una notación para identificar los dispositivos. Por ejemplo, la estructura en PLD AMD es: Dentro de la estructura de salida se tienen las posibilidades contenidas en la tabla.
Códigos
Tipos de Salidas
L
Combinatoria con nivel bajo activo.
H
Combinatoria con nivel alto activo. Diagrama de bloques de una PAL (Programmable Logic Array)
R
Registro.
6
RA
Registro asíncrono.
X
Registro O exclusivo.
V
Vesátil.
M
Macrocélula.
Tabla: Tipos de Salidas de una PAL.
Matriz Lógica Genérica (GAL, Generic Array Logic) La GAL se forma con una matriz AND reprogramable y una matriz OR fija , con una salida lógica programable. La sig. figura 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.
. Diagrama de Bloques de una GAL (Generic Array Logic).
Las dos principales diferencias entre los dispositivos GAL y PAL son: a) la GAL es reprogramable y b) la GAL tiene configuraciones de salida programables. La GAL se puede programar una y otra vez, ya que usa tecnología ECMOS (Electrically Erasable CMOS, CMOS borrable eléctricamente). En la figura siguiente se ilustra la estructura básica de una GAL con dos variables de entrada y una de salida. La matriz reprogramable es esencialmente una red de conductores ordenados en filas y columnas, con una 2 celda CMOS eléctricamente borrable (E CMOS) en cada punto de intersección, en lugar de un fusible como en el caso de las PAL. Estos PLDs son borrables y reprogramables. El transistor CMOS tiene 2 compuertas, una de ellas totalmente aislada, flotante. Para programar cada celda se aplica o no una tensión mayor a V DD (alta) en la compuerta no flotante. Al aplicar esta tensión el dieléctrico conduce y la compuerta flotante se carga negativamente, dejando en operación normal siempre abierto el transistor.
7
Figura 4.4.8. Estructura Básica de una GAL ( Generic Array Logic)
En la figura se muestra un ejemplo de una sencilla matriz GAL programada para obtener la suma de tres productos.
Figura 4.4.9. Programación de una GAL (Generic Array Logic ). El borrado se puede hacer de dos formas:
Con luz ultravioleta (UV ): exponiendo el transistor de 5 a 20 minutos a luz UV , el dieléctrico conduce y permite la descarga de la compuerta flotante. Para este borrado el chip lleva una ventana de cuarzo transparente. Borrado eléctrico: Es el más usado hoy en día. La capa que aisla la compuerta flotante es más delgada. Al aplicar una tensión alta con polaridad contraria , la compuerta flotante se descarga porque el dieléctrico conduce. Las ventajas más importantes de esta técnica son una descarga rápida, no se requiere UV y no se requiere sacar el chip de su base.
Estructura y funcionamiento de los CPLD.
8
Los CPLD son dispositivo lógicos programables con una complejidad entre los dispositivos PLA y FPGA. La característica principal común entre los CPLD y PAL, es la configuración de memoria no-volátil, y con respecto a los dispositivos FPGA, la característica común 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 sólo chip. el tamaño mas grande los CPLD permite implementar ecuaciones lógicas o diseños mas complicados. la programación de estos dispositivos es generalmente en lenguajes de descripción de hardware , por ejemplo, VHDL o Verilog. Dispositivos Lógicos Programables Complejos (CPLD) Existen dos tipos de arquitectura de los CPLD: 1) Arquitectura de Matriz de suma de productos 2) Arquitectura, Look-up Table (LUT), tabla de datos.
Circuito FPGA Un FPGA (Field-Programmable Gate Array) es un circuito integrado q ue, dicho en términos llanos, puede configurarse para llevar a cabo cualquier función lógica y hacer lo que a su dueño le plazca. Claro que para conseguir eso el diseñador debe configurar el circuito, normalmente siguiendo la especificación de un lenguaje de descripción de hardware. Esto es algo así como hacer código en vez de electrónica digital. ¿Te imaginas las posibilidades creativas de una plataforma así? Considera que con un FPGA eres capaz, en teoría, de reinventar todo tipo de dispositivos de cómputo. Incluso hacerlos trabajar en un mismo espacio y de forma paralela. Por supuesto, en la práctica la creación está limitada por la capacidades de cada tarjeta FPGA, y también por la plataforma. Para trabajar con un FPGA debes contar con un software especial creado por el fabricante. En Windows la experiencia es completa, pero en Linuxpuede presentar inconvenientes. Por cierto, FPGA Libre impulsa “el desarrollo con dispositivos FPGA utilizando herramientas de software libre u open source”. Además, fomenta “el intercambio y desarrollo de cores IP con licencias que posean el mismo espíritu que las del software libre”. (En otra ocasión hablaremos de hardware libre, como Arduino.)
Compilador 9
Un compilador es un tipo especial de programa de ordenador que traduce un archivo de texto legible por humanos en una forma que el ordenador puede entender más fácilmente. En su nivel más básico, una computadora sólo puede entender dos cosas, un 1 y un 0. En este nivel, un ser humano se operan muy lentamente y encontrar la información que figura e n la larga cadena de 1s y 0s incomprensible. Un compilador es un programa informático que sirve de puente esta brecha. En un principio, los programas compiladores son muy sencillas que sólo se podría traducir los símbolos en el bits , los 1s y 0s, el e quipo entendido. Los programas fueron también muy simple, compuesto de una serie de pasos que fueron o riginalmente traducida a mano en los datos de la computadora puede entender. Esta fue una tarea que consume mucho tiempo, así que algunas partes de este trabajo fueron automatizados o programados, y el primer compilador fue escrito. Este programa montado, o compilado, los pasos necesarios para ejecutar el programa paso a paso. Los compiladores simples se utilizaron para escribir un compilador más sofisticados. Con la nueva versión, más normas se podrían añadir al programa compilador para permitir una estructura de un lenguaje más natural para el programador humano para operar. Esta programas de escritura más fácil y permite a más personas para comenzar a escribir programas.
A medida que más gente empezó a escribir programas, más ideas acerca de los programas de escritura, se ofrecieron y se utiliza para hacer los compiladores más sofisticados. De esta manera, los programas de compilador de seguir evolucionando, mejorar y ser más fácil de usar. compilador de programas también pueden ser especializados. Algunas estructuras de la lengua son más adecuados para una determinada tarea que otros, los compiladores de manera específica se han desarrollado para tareas específicas o idiomas. Algunos compiladores son varias etapas o pasar varios . Un primer paso podría tener un lenguaje muy natural y acercarla a un lenguaje informático comprensible. Un segundo o incluso un tercer paso podría llevarlo a la fase final, el a rchivo ejecutable. El resultado intermedio en un compilador de varias etapas que suele llamarse pseudo-código, ya que no es utilizable por el ordenador. Pseudo-código es muy estructurado, como un programa de ordenador, no fluyen libremente, y detallado como un lenguaje más natural. El resultado final se llama el archivo ejecutable, ya que es lo que realmente ejecutados o administrados por el equipo. La división de la tarea como esto hizo más fácil escribir compiladores más sofisticadas, ya que cada sub tarea es diferente. También se hizo más fácil para el equipo para señalar dónde había problemas para entender lo que se les pide que hagan. Los errores que limitan el compilador en la comprensión de un programa se llama e rrores de sintaxis . Los errores en el funcionamiento del programa se llama errores lógicos . Los errores lógicos son mucho más difíciles de detectar y corregir. Los errores de sintaxis son como las faltas de ortografía, mientras que los errores lógicos son un poco más como los errores gramaticales. Compilador de los programas de la Cruz también se han desarrollado. Un compilador cruzado permite que un archivo de texto conjunto de instrucciones que está escrito para un equipo diseñado por un fabricante concreto para ser compilado y ejecutado por un equipo diferente por un fabricante distinto. Por ejemplo, un programa que fue escrito para funcionar en un equipo con Intel a veces puede ser cruzada para ejecutar un compilado en un equipo desarrollado por Motorola. Con frecuencia, esto no funciona muy bien. En el nivel en el que operan los programas de ordenador, el hardware del equipo pueden ser muy diferentes, aunque pueden parecer similares a usted. La compilación de la Cruz es diferente de tener una computadora emular a otro equipo. Si un equipo está emulando a un equipo diferente, es pretender ser el otro equipo. La emulación es a menudo más lento que la compilación cruzada, ya que dos programas se están ejecutando a la vez, el programa que se hace pasar por el otro ordenador y el programa que se está ejecutando. Sin embargo, para la compilación cruzada para trabajar, necesita tanto el texto original de lenguaje natural que describe el programa y un equipo que es
10
bastante similar a la del equipo original que el programa puede funcionar para ejecutarse en un equipo diferente. Esto no siempre es posible, por lo que ambas técnicas están en uso. Desde principios de 2007, hay dos grandes productores de FPGA de propósito general, además de un conjunto de otros competidores quienes se diferencian por ofrecer dispositivos con características únicas.
Xilinx es uno de los dos grandes líderes en la fabricación de FPGA. Altera es el otro gran líder. Lattice Semiconductor lanzó al mercado dispositivos FPGA con tecnología de 90 nm. Además, Lattice es un proveedor líder en tecnología no volátil, FPGA basadas en tecnología Flash, con productos de 90nm y 130nm. Actel tiene FPGAs basados en tecnología Flash reprogramable. También ofrece FPGAs que incluyen mezcladores de señales basados en Flash. QuickLogic tiene productos basados en anti fusibles (programables una sola vez). Atmel es uno de los fabricantes cuyos productos son reconfigurables (el Xilinx XC62xx fue uno de estos, pero no están siendo fabricados actualmente). Ellos se enfocaron en proveer micro controladores AVR con FPGAs, todo en el mismo encapsulado.
Achronix Semiconductor a través de tecnología de Intel de 22 nm, su catálogo incluye dispositivos FPGA de hasta 1.5 GHz Bibliografía.
http://antiguo.itson.mx/die/eromero/biblioelec/bsistdig1/prog_PLD.pdf http://www.virtual.unal.edu.co/cursos/ingenieria/2000477/lecciones/040101.htm http://unidadsimd.obolog.com/cpld-83442 http://es.wikipedia.org/wiki/CPLD http://alt1040.com/2010/09/fpga-y-el-sorprendente-poder-del-hardware-reconfigurable http://es.wikipedia.org/wiki/Compilador http://ocw.universia.net/es/tags/2648/compilador/tags/2634/logico/ http://www.cantuss.info/a/Internet/2011/12/Que-es-un-compilador.html http://iindustrial.obolog.com/dispositivos-logicos-programables-parte-1-209085 http://www.ing.unal.edu.co/eventos/gestec_innovacion/img/presentaciones/auditorio3/2_apontediana.pdf
11