LENGUAJES DE DESCRIPCIÓN DE HARDWARE
METODOS PARA DESCRIBIR CIRCUITOS LÓGICOS Descripción verbal Tablas de verdad Diagrama esquemático Expresiones del álgebra booleana Diagrama de tiempos Lenguajes de descripción de hardware (HDL)
Ejemplo Representar un circuito digital que capaz de controlar un indicador de advertencia del cinturón de seguridad un automóvil Descripción verbal Expresión booleana luz _ advertencia conductor _ presente cint uron _ enganchado int eruuptor _ encendido
Ejemplo Diagrama Esquemático Diagrama de tiempos Tabla de verdad
Lenguajes de descripción de hardware - HDL Hardware Description Language Permite Describir circuitos digitales complejos mediante lenguaje basado en texto Diseñar e implementar circuitos digitales complejos Un HDL estandarizado por el IEEE es el VHDL VHSIC (Very High Speed Integrated Circuit ) Description Language.
Concurrente Vs Secuencial Lenguaje de descripción de hardware Lenguaje para programar un dispositivo Hardware Instrucciones ejecutadas en forma concurrente (todas al mismo tiempo) La velocidad en la ejecución del programa depende sólo de la rapidez del circuito digital y de los retardos de propagación de las señales de salidas que responden a las señales de entrada Un cjto de mecánicos haciendo en paralelo todas las tareas Lenguajes de computadoras Lenguaje para programar un dispositivo Software Instrucciones ejecutadas en forma secuencial La velocidad en la ejecución del programa depende de la velocidad de la computadora EJEMPLO: Parada en boxes de autos de carrera Un solo mecánico haciendo todas las tareas en forma secuencial. El tiempo en boxes depende de la rapidez de la persona CONCLUSION: Los lenguajes HDL se implementan en forma similar a los lenguajes de computadoras (BASIC, C, JAVA) pero son de comportamientos muy diferentes.
Formato del HDL Formato de archivos HDL Documentación Comentarios que no generan hardware Definición de bibliotecas Definición de tipos de datos Permite diseños jerárquicos Definición del componente. Definición de E/S Descripción lógica del componente Descripción funcional Documentación Definición de bibliotecas Definición de E/S Descripción Funcional
VHDL Librería Definición Componente: Entidad Descripción funcional: Arquitectura Elementos esenciales en VHDL Librerías: Modo -> IN, OUT, INOUT, BUFFER Tipo -> BIT, BIT_VECTOR, STD_LOGIC, STD_LOGIC_VECTOR, INTEGER, CHARACTER
Diseño de Sistemas Embebidos en FPGA Curso de Posgrado Esquema de la arquitectura VHDL Parte declarativa: Señales intermedias Componentes Tipo Cuerpo de la arquitectura: Operadores Declaraciones concurrentes Declaraciones secuenciales
Diseño de Sistemas Embebidos en FPGA Curso de Posgrado Operadores VHDL lógicos And S1 <= A AND B AND C; OR S1 <= A OR B OR C; Xor S1 <= A XOR B XOR C; NAND S1 <= (A nand B) nand C; NOR S1 <= (A NOR B) NOR C; not S1 <= NOT A; aritméticas + --> suma - --> resta * --> multiplicación / --> división ** --> potenciación abs --> valor absoluto relacionales = --> igual /= --> distinto < --> menor <= --> menor o igual > --> mayor >= --> mayor o igual
VHDL. Señales intermedias
Software de desarrollo: Software de referencia: MAX+PLUS II de Altera Descarga: https://www.altera.com/download/legacy/maxplus2/dnl-student.jsp Licencia: http://www.altera.com/download/licensing/lic-choose.html Permite: Describir un sistema digital mediante: HDL: VHDL, AHDL, Verilog Diagrama esquemático Formas de ondas Compilar Verificar Programar DISEÑO JERARQUICO
Representación de datos en HDL Designación de sistemas numéricos en HDL Arreglos de bits/vectores de bits
Bibliotecas (Librerías)en VHDL Libraries Elementos Fundamentales del VHDL Normalizadas Tipos de datos predefinidos Definidas por el usuario Elementos definidos por el diseñador Se usan para diseño jerárquico Sintaxis
Tipos de datos en VHDL.Biblioteca IEEE STD_LOGIC : Tipo predefinido en el estándar IEEE 1164. Este tipo representa una lógica multivaluada de 9 valores. Además del 0 lógico y el 1 lógico, posee alta impedancia Z, desconocido X ó sin inicializar U entre otros. Igual que se permite crear un vector de bits se puede crear un vector de std_logic, STD_LOGIC_VECTOR. Para poder utilizar el tipo std_logic hay que añadir la librería que lo soporta. use ieee.std_logic_1164.all Para poder utilizar las funciones aritmeticológicas definidas (suma, resta, multiplicación) use ieee.std_logic_arith.all Si los vectores están en representación binaria pura use ieee.std_logic_unsigned.all Los vectores están en CA2 use ieee.std_logic_signed.all Diseño Lógico I
Tipos de datos comunes en VHDL.Biblioteca IEEE std_logic_1164 de VHDL Tipo de datos Declaraciones de ejemplo Posibles valores Uso BIT y: OUT BIT; 0, 1 Y <= 0 STD_LOGIC Control: STD_LOGIC 0, 1, Z, X, - Control <= Z ; BIT_VECTOR datos_bcd: BIT_VECTOR (3 DOWNTO 0); 0101, 0000, 1001 Digito <= datos_bcd STD_LOGIC_VECTOR dbus: STD_LOGIC_VECTOR (3 DOWNTO 0); 0Z1X IF rd= 0 then dbus <= ZZZZ INTEGER SIGNAL m: INTEGER RANGE -32 TO 31-32, -2, -1, 0, 1,2,, 31 IF m>5 THEN
Diagrama básico de un proceso de diseño
Tablas de verdad mediante el uso de HDL Una tabla de verdad relaciona las salidas de un circuito con cada una de las posibles combinaciones de sus entradas Ejemplo: Diseñar un circuito lógico que tenga 3 entradas A,B y C cuya salida esté en alto cuando haya mayoría de 1 en sus entradas A B C Y 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 1
Tablas de verdad mediante el uso de VHDL Sintaxis: Selected Signal Assignment Definición Concurrente EQUIVALENTE A UN CASE Ejemplo en VHDL: