Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
INSTITUTO POLITÉCNICO NACIONAL Escuela Superior de Cómputo Bello Muñoz Edgar Alejandro Fundamentos de Diseño Digital Profesor: Fernando Aguilar Sánchez Práctica 6 Compuertas lógicas usando VHDL Fecha de entrega: 26 de abril de 2021 Introducción Con la aparición de técnicas para la síntesis de circuitos a partir de un lenguaje de alto nivel, se utilizaron precisamente lenguajes de simulación, que si bien alcanzan un altísimo nivel de abstracción, su orientación es básicamente la de simular. De esta manera, los resultados de una síntesis a partir de descripciones con estos lenguajes no es siempre la más optima. Uno de los lenguajes de síntesis que se desarrolló a partir de los lenguajes de modelado y simulación lógica es el VHDL. Originalmente, el lenguaje VHDL fue desarrollado por el departamento de defensa de los Estados Unidos a inicios de los años 80 basado en el lenguaje de programación ADA con el fin de simular circuitos eléctricos digitales. Posteriormente se desarrollaron herramientas de síntesis e implementación en hardware a partir de los archivos VHD. VDHL es un lenguaje definido por el IEEE utilizado para describir circuitos digitales y para la automatización de diseño electrónico. Cuenta con una sintaxis amplia y flexible que permite el modelado estructural, en flujo de datos y de comportamiento hardware. Su nombre surge de la combinación de VHSIC (Very High Speed Integrated Circuit) y HDL (Hardware Description Language). Aunque puede ser usado de forma general para describir cualquier circuito digital se usa principalmente para programar PLD (Programable Logic Device, Dispositivo Lógico Programable). Aunque su sintaxis y forma de uso se asemeje mucho, VHDL es un lenguaje de descripción de hardware, no es un lenguaje de programación. Con VHDL no se programa, lo que se hace es tomar un diseño electrónico y describirlo mediante el lenguaje, de forma que sirva como punto de entrada a herramientas que convertirán esa descripción en una implementación real del sistema. Además de permitir un intercambio eficiente de componentes, el uso de VHDL ofrece muchas de ventajas. La más significativa es que utilizando el lenguaje es posible tanto describir como simular el sistema. El propio lenguaje ofrece las herramientas para escribir módulos que apliquen entradas al sistema y mediante una herramienta llamada simulador poder ver las salidas y verificar si son correctas. Esto permite crear entornos complejos de verificación para comprobar la corrección del sistema, característica fundamental, puesto que se trabaja con diseños que van a ser enviados a dispositivos físicos. Elementos de VHDL Palabras reservadas: no pueden utilizarse como nombres de ningún tipo palabras reservadas de VHDL. Ej.: architecture, begin, case, downto, to, library, package, etc. Símbolos especiales: Ej.: “ _ # & ‘ ( ) : ; < = > + - * [ ] etc. Los operadores pueden sobrecargarse para utilizarse con distintos tipos en diferentes librerías . Identificadores: se utilizan para dar nombre a los elementos de un diseño, ya sean señales, constantes, variables,etc. Ej.: Cuenta_REG, VALOR_MAXIMO, etc. Números: hay dos tipos básicos, los enteros (integer) y los reales (real). Pueden representarse en cualquier base de 2 a 16. Ej.: enteros: 321, 2#01101#, 16#0A51F, reales: 1.23, 1.23e-4, 8#4.75#. Cadenas de bits: pueden representarse en base binaria, octal y hexadecimal. Ej.: b”1010” (4 bits), x”AB6C1” (20 bits), o”54” (6 bits). Estructura de VHDL Declaración de librería (Library). Lista de todas las librerías que serán usadas en el diseño. Entidad (Entity). Especificación de los pines de entrada y salida. Arquitectura (Architecture). Describe el comportamiento del circuito. Tabla de verdad # A B C D E F1 F2 F3 F4 F5 F6 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 1 0 1 1 1 0 0 2 0 0 0 1 0 0 1 1 1 0 0 3 0 0 0 1 1 0 1 0 1 0 1 4 0 0 1 0 0 0 1 1 1 0 0 5 0 0 1 0 1 0 1 0 1 0 1 6 0 0 1 1 0 0 1 0 1 0 1 7 0 0 1 1 1 0 1 1 1 0 0 8 0 1 0 0 0 0 1 1 1 0 0 9 0 1 0 0 1 0 1 0 1 0 1 10 0 1 0 1 0 0 1 0 1 0 1 11 0 1 0 1 1 0 1 1 1 0 0 12 0 1 1 0 0 0 1 0 1 0 1 13 0 1 1 0 1 0 1 1 1 0 0 14 0 1 1 1 0 0 1 1 1 0 0 15 0 1 1 1 1 0 1 0 1 0 1 16 1 0 0 0 0 0 1 1 1 0 0 17 1 0 0 0 1 0 1 0 1 0 1 18 1 0 0 1 0 0 1 0 1 0 1 19 1 0 0 1 1 0 1 1 1 0 0 20 1 0 1 0 0 0 1 0 1 0 1 21 1 0 1 0 1 0 1 1 1 0 0 22 1 0 1 1 0 0 1 1 1 0 0 23 1 0 1 1 1 0 1 0 1 0 1 24 1 1 0 0 0 0 1 0 1 0 1 25 1 1 0 0 1 0 1 1 1 0 0 26 1 1 0 1 0 0 1 1 1 0 0 27 1 1 0 1 1 0 1 0 1 0 1 28 1 1 1 0 0 0 1 1 1 0 0 29 1 1 1 0 1 0 1 0 1 0 1 30 1 1 1 1 0 0 1 0 1 0 1 31 1 1 1 1 1 1 1 1 0 0 0 Código VHDL Conclusiones Al concluir la realización de la práctica, queda claro que VHDL es un lenguaje de gran utilidad para el diseño de PLDs y en general, para el diseño de un sistema digital, puesto que realizar la descripción del funcionamiento de entradas y salidas de un circuito integrado resulta sencillo si se tienen conocimientos de programación en lenguajes como C. Sin duda, VHDL ofrece una gran cantidad de ventajas al usuario como lo es la comprobación del funcionamiento por medio de la simulación de entradas y salidas, sin embargo, también es importante considerar que también presenta algunas desventajas como lo es el hecho de que estos programas se puedan ver limitados por el dispositivo que se trabaje. library ieee; use ieee.std logic 1164.all; entity compuertas is port(A,B,C,D,E: in std_logic; F1,F2,F3,F4,F5,F6: out std_logic); end compuertas; architecture booleana of compuertas is begin F1 <= A and B and C and D and E; F2 <= A or B or C or D or E; F3 <= A xor B xor C xor D xor E; F4 <= not F1; F5 <= not F2; F6 <= not F3; end booleana; Referencias • Pardo, F. (2000). VHDL: Lenguaje para síntesis y modelado de circuitos. Valencia: Alfaomega. • Sánchez, M. (2014). Introducción a la programación en VHDL. Madrid: Universidad Complutense de Madrid. • Mora, A. (2016). Guía básica de VHDL. México: Instituto Tecnológico de Querétaro.
Compartir