SINTAXIS BÁSICA DEL VHDL SIMPLIFICADO

Documentos relacionados
PRÁCTICA: LENGUAJE VHDL

Tema 2 Descripción de VHDL (2/2)

VHDL. Carlos Andrés Luna Vázquez. Lección 5. Sentencias concurrentes

VI. Especificación del Comportamiento

Electrónica Digital Departamento de Electrónica VHDL. Bioingeniería Facultad de Ingeniería - UNER

VHDL. Lenguaje de descripción hardware Tipos de datos

Práctica 6. Diseño Lógico Digital mediante VHDL

Introducción al lenguaje VHDL

Objetos de VHDL.! Un objeto en VHDL es un elemento que contiene. un valor de tipo específico de dato

DESCRIPCIÓN DE CIRCUITOS DIGITALES

Diseño Lógico I Facultad de Ciencias Exactas y Tecnología UNT. LENGUAJES DE DESCRIPCIÓN DE HARDWARE

INGENIERÍA DE COMPUTADORES III. Solución al examen de Septiembre 2013

Práctica I Modelado y simulación de una máquina expendedora de refrescos

Tutorial de ModelSim PE Student Edition

V. Elementos de la Arquitectura

EL LENGUAJE VHDL CONCEPTOS BÁSICOS

Simulación avanzada con TestBench en HDL. Ing. Andrés Miguel Airabella. Ing. Facundo Aguilera.

ELEMENTOS Y TIPOS DE DATOS

Sistemas Electrónicos Digitales Curso de adaptación al Grado

9. Dibujar el diagrama de tiempos de las siguientes asignaciones de señales.

GUÍA PRÁCTICA DEL SOFTWARE ACTIVE-HDL.

4. SUMADORES EN BINARIO PURO (I)

1. Módulo de desarrollo Spartan 3 STARTER KIT con un FPGA xc3s200 ft Software de diseño XILINX ISE versión 10.1

Circuitos Electrónicos Digitales E.T.S.I. Telecomunicación Universidad Politécnica de Madrid. Descripciones funcionales y estructurales

INGENIERÍA DE COMPUTADORES 3. Solución al Trabajo Práctico - Junio de 2013

DISEÑO DE SISTEMAS ELECTRÓNICOS DIGITALES AVANZADOS

Arquitectura de Computadores. Práctica 1: Diseño Hardware de Procesadores. Práctica 1/1

Manual de referencia de la tarjeta BASYS 2

VHDL y el método de diseño basado en descripción y síntesis. RESUMEN.

UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS FACULTAD DE INGENIERIA ELECTRONICA ESCUELA DE ELECTRONICA

Generador de Secuencia Binaria Pseudo Aleatoria

Tutorial I Diseño de una máquina de refrescos utilizando el WebPack de XILINX TM

Introducción n al diseño lógico con VHDL

TEMA IV: SÍNTESIS HARDWARE

Lenguaje VHDL. Código para representar sistemas digitales en VHDL JJVS-09

ICTP Latin-American Advanced Course on FPGADesign for Scientific Instrumentation. 19 November - 7 December, 2012

Sistemas Electrónicos Digitales. PRACTICA nº 7

+ Máquinas de Estado Finitas

3.1 Introducción a VHDL

Práctica III Introducción a la descripción VHDL del procesador DLX

CONTADORES. Definición. Diseño y analisis de un contador binario hacia arriba de 3 bits con flip-flops JK. Otros contadores típicos.

Ci A B S Co

CODIFICADORES CON PRIORIDAD. Grupo 2

SENA Distrito Capital Centro de Electricidad, Electrónica y Telecomunicaciones ADSI - Ing. Espec. Javier Vaquiro

Introducción a la simulación con ModelSim.

Diseño VHDL de módulos combinacionales básicos

LABORATORIO DE ARQUITECTURA DE COMPUTADORES. I. T. I. SISTEMAS / GESTIÓN GUÍA DEL ALUMNO

FPGA: Herramientas de diseño

Curso a distancia: INTRODUCCIÓN AL DISEÑO LÓGICO PROGRAMABLE CON VHDL. Capítulo 3. Codificadores

Teoría de Diseño lógico

Hardware Libre: Clasificación y desarrollo de hardware reconfigurable en entornos GNU/Linux

Simulación de Diseños VHDL con Software Libre: La Herramienta GHDL

DEPARTAMENTO DE ELECTRÓNICA I.T.Telecomunicación Sistemas Electrónicos

Tema 2. El lenguaje JAVA

Figura 0-1: Lista de palabras reservadas del VHDL A continuación se dará una serie de ejemplos de diseños VHDL de dificultad incremental

Implementación de una ALU de 8 bits en lenguaje VHDL

DECODIFICADORES. Para cualquier código dado en las entradas solo se activa una de las N posibles salidas. 2 N

GUÍA BÁSICA DE SCHEME v.4

LABORATORIO DE ARQUITECTURA DE COMPUTADORES. I. T. I. SISTEMAS / GESTIÓN GUÍA DEL ALUMNO

Sesión 2: VHDL secuencial. S2 Laboratorio de Estructura de Computadores Curso 04 / 05

CRISTÓBAL GARCÍA PÉREZ CRISTIAN EDWIN ARBOLEDA VALENCIA

Decodificadores/Demultiplexores. Grupo 9 Javier de Gregorio Menezo Laro de la Fuente Lastra Raúl Fernández Díaz

Implementación de Filtros Digitales Tipo FIR en FPGA

3.2. Programación estructurada. Principal. Modulo 1 Modulo 2 Modulo 3 Modulo 4. Modulo Modulo Modulo 3 1 Modulo 4 1 Modulo 4 2. Pág.

Java para programadores

Índice general. Capítulo 1 Conceptos básicos. Capítulo 2 Controles básicos I. Pág. N. 1

//Sección de manejo de excepciones. Las rutinas de manejo de errores //aparecen aqui

El Lenguaje PL/SQL. Un lenguaje de propósito general orientado a la inclusión de sentencias SQL. Estructura del código PL/SQL.

11/02/2009 IEC de febrero de 2009 Antonio Cambronero, Product Engineer OMRON Electronics Iberia S.A.U. IEC ( Programación en ST )

Introducción al Lenguaje de Descripción Hardware VHDL

INTRODUCCIÓN AL SOFTWARE ISE (Integrated Software Environment) DE XILINX

Java para no Programadores

Correcto uso de Reset en FPGAs y su Codificación en VHDL

UNIVERSIDAD CATÓLICA DE SANTIAGO DE GUAYAQUIL

INTRODUCCIÓN A HDL VERILOG

4. Operadores Operador asignación

PASCAL. Repaso de Pascal Introducción a Python. Pascal. Pascal - introducción. Pascal Declaraciones: Variables. Pascal Declaraciones: Tipos 07/04/2015

DATOS DE IDENTIFICACIÓN DEL CURSO DEPARTAMENTO:

Cómo nombrar variables ( 2&

PL/SQL. DECLARE /* Parte Declarativa */ BEGIN /* Parte de Ejecución */ EXCEPTION /* Parte de Excepciones */ END;

Tema 4.- Pilas y Colas

Diseño de Hardware con VHDL

APENDICE CODIFICACION DE LAS ESTRUCTURAS BASICAS

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

Fundamentos de Programación Visual Basic

SENTENCIAS SECUENCIALES Y CONCURRENTES DE VHDL

Parte II: Estructuras de datos y algoritmos

5. Sentencias selectivas o condicionales

UNIDAD DE TRABAJO 3: PROGRAMACIÓN DE BASES DE DATOS TEMA 8: INTRODUCCIÓN AL LENGUAJE DE PROGRAMACIÓN

Fundamentos de la Programación

Funciones y TriggersIntroducción, Ejemplos

Funciones & Estructuras de control

Descripción con VHDL de un exponenciador para campos finitos GF(2 m )

Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones

VHDL. Lenguaje de descripción hardware Introducción e historia

col Type mismatch cadena vacía fila 1 z + i 4 1 fila 2

UNIDAD 5. ESTRUCTURAS DINÁMICAS Y ESTÁTICAS DE ALMACENAMIENTO DE DATOS.

PL/SQL. Con PL/SQL vamos a poder programar las unidades de programa de la base de datos Oracle:

Tema 3.- Predicados y sentencias condicionales

Transcripción:

SINTAXIS BÁSICA DEL VHDL SIMPLIFICADO ENTIDAD: ARQUITECTURA: ENTITY <nombre_ent> IS PORT <señai1 >: <modo> <tipo> <señai1>: <modo> <tipo> END <nombre ent>; <modo> = IN / OUT / IN OUT ARCHITECTURE <nombre_arch> OF <nombre_ent> IS <declaraciones1 > <sentencias concurrentes> <PROCESS (<lista de señales>) <declaraciones2> END PROCESS;> END <nombre_arch>; <declaraciones1 > = <declaraciones2> = declaraciones de tipos declaraciones de señales, constantes declaraciones de subprogramas declaraciones de tipos declaraciones de variables, constantes declaraciones de subprogramas OBJETOS DE LA DESCRIPCIÓN: Señales (SIGNAL): Variables (VARIABLE): Constantes (CONSTANT): globales en la descripción locales en cada proceso según dónde se declaren TIPOS DE DATOS: Escalares Estándar bit : ( 0, 1 ) Estándar boolean : (false, true) Estándar integer : <range n to m ó range m downto n> Estándar positive : (integer = 1) Estándar natural : (integer = 0) def. por usuario enumerados : <definidos por el usuario> type colores is (blanco, rojo, azul) IEEE.std.logic.1164 std_iogic : ( U, X, 0, W, L, H, Z, - ) Pág. 1

Arrays Estándar bit_vector : (m to n); (n downto m) IEEE.std.logic.1164 std_iogic_vector : (m to n); (n downto m) def. por usuario arrays : type int_array is array (7 downto 0) of integer; Definición de tipos: TYPE mio IS (t1, t2, t3), Declaración de constantes. señales v variables: CONSTANT c1 : bit_vector( 3 downto O) := "0000"; SIGNAL s1 : mio; VARIABLE v1 : bit; OPERADORES: Tipo Datos entrada Devuelve Operadores Lógicos Bit, bolean, std_logic Bit, Boolean std_logic Not, and, or, nand, Nor, xor Relación Cualquiera Bolean =, /=, <, <=, >, >= Aritméticos Integer Positive, natural Integer Positive, natural +, -, /, *. ** ABS, MOD, REM Concatenación Cualquiera (homogéneo) Array de elementos & ATRIBUTOS: <signal> 'EVENT: devuelve true cuando la señal cambia de valor ej: clk='1' and clk'event (cierto cuando hay un flanco de subida en clk) <array> 'RANGE: devuelve el rango del vector ej: signal A: std_iogic_vector (7 downto O) for i in A'range loop es equivalente a: for i in 7 downto 0 loop SENTENCIAS CONCURRENTES: Asignación simple de señal: <señal destino> <= <señal_1> <Señal destino> <= <expresión> Asignación condicional: <señal_destino> <= <señal1> WHEN <condición 1> ELSE <señal2> WHEN <condición2> ELSE <señaln>; Asignación selectiva: WITH <señal_cond> SELECT <señal_destino> <= <señal1> WHEN <value 1>, <señal2> WHEN <value 2>, <señaln> WHEN OTHERS; Pág. 2

SENTENCIAS SECUENCIALES (dentro de procesos, funciones o procedimientos): if_then_else: IF <cond1> THEN <sentencias 1 > ; ELSIF <cond2> THEN END IF; case_is_when: CASE <expresión> IS WHEN <valor 1> => <sentencias1>; WHEN <valorn> => <sentenciasn>; END CASE; for_loop: FOR <indice> IN <rango> LOOP <sentencias> END LOOP; (el índice de los bucles for no tiene que declararse) asignación de señal: <señal_destino> <= <expresión>; asignación de variable <var_destino> := <expresión>; PROCESOS: <nomb_proceso>: PROCESS (<lista de sensibilidad>) END PROCESS <nombre_proceso>; Pág. 3

PROCEDIMIENTOS: PROCEDURE <nom_procedimiento> (<parámetros>) IS <declaraciones> END <nom_procedimiento>; FUNCIONES: FUNCTION <nom_función> (<parámetros>) RETURN <tipo> IS <declaraciones> RETURN <valor retorno>; END <nom_función>; SENTENCIAS ESTRUCTURALES: COMPONENT: COMPONENT <nom_componente> PORT ( <señai1 >:-<modo> <tipo>; <señai1>: <modo> <tipo> ); END COMPONENT; <nom-copia-componente> : <nom-componente> POR MAP (<asignaciones); Pág. 4

GENERATE: COMPONENT <nom_componente> PORT ( <señai1 >:-<modo> <tipo>; <señai1>: <modo> <tipo> ); END COMPONENT; <nom-elemento> : FOR <indice> IN <rango> GENERATE nom-subelemento>: <nom-componente> PORT MAP (<asignaciones señales>); END GENERATE <nom-elemento>; SENTENCIAS DE ESPERA: AFTER: en asignaciones concurrentes o secuenciales <señal><= <valor1> AFTER <tiempo1>ns, <valor2> AFTER <tiempo2>ns ; WAIT: sentencia secuencial WAIT FOR <tiempo>ns; WAIT UNTIL <condicion>; WAIT ON <lista de sensibilidad>; Pág. 5

BIBLIOTECAS DE TIPOS Y FUNCIONES STD_LOGIC_1164 ( Use ieee.std_logic_1164.all ) TIPOS: STD_ULOGIG; STD_ULOGIC_VECTOR; STD_LOGIC; STD_LOGIC_VECTOR; X01; X01Z; UX01; FUNCIONES: TO_BIT (STD_ULOGIC) RETURN BIT TO_STDULOGIC (BIT) RETURN STD_ULOGIC TO_BITVECTOR (STD_LOGIC_VECTOR) RETURN BIT_VECTOR TO_STDLOGICVECTOR(BIT_VECTOR) RETURN STD_LOGIC_VECTOR TO_BITVECTOR (STD_ULOGIC_VECTOR) RETURN BIT_VECTOR TO_STDULOGICVECTOR(BIT_VECTOR) RETURN STD_ULOGIC_VECTOR TO_STDLOGICVECTOR(STD_ULOGIC_VECTOR) RETURN STD_LOGIC_VECTOR TO_STDULOGICVECTOR(STD_LOGIC_VECTOR) RETURN STD_ULOGIC_VECTOR STD_LOGIC_ARITH ( Use ieee.std_logic_arith.all ) TIPOS UNSIGNED SIGNED FUNCIONES CONV_INTEGER (UNSIGNED) RETURN INTEGER CONV_UNSIGNED (INTETER, INTEGER) RETURN UNSIGNED Pág. 6

CONV_STD_LOGIC_VECTOR (ARG: INTEGER, SIZE: INTEGER) RETURN STD_LOGIC_VECTOR CONV_STD_LOGIC_VECTOR (ARG: UNSIGNED, SIZE: INTEGER) RETURN STD_LOGIC_VECTOR STD_LOGIC_TEXTIO ( Use ieee.std_logic_textio.all ) TIPOS LINE TEXT FILE FUNCIONES WRITE (<variable> : LINE, <señal>) WRITELINE (OUTPUT, <variable>: LINE) WRITELINE (<variable>: FILE, <veriable> : LINE) ARCHITECTURE <nom_architecture> OF <nom_entity> IS SIGNAL A1, A2: BIT; PROCESS <nombre_proceso> VARIABLE lout: LINE; FILE fichero: TEXT is OUT salida.txt ; WRITE(lout, A1); WRITE(lout, ); WRITE(lout, A2); WRITELINE (OUTPUT, lout); WRITELINE(fichero, lout); END PROCESS; END <nom_architecture>; Pág. 7