Capítulo.2 - Fundamentos del Lenguaje VHDL

Slides:



Advertisements
Presentaciones similares
Lenguajes de Descripción de Hardware
Advertisements

Equipo #3 Unidad III: ALU Efraín Corral Eduardo Castillo Elías Alarcón
Métodos de diseño en VHDL.
Robotica educativa Programación en VHDL Maxima Sánchez Cuateta.
SENTENCIAS SECUENCIALES
LENGUAJES DE DESCRIPCION DE HARDWARE (HDL)
PROF. ING. JULIO CESAR CANO RAMIREZ
Informática I – 4to año Volumen II.
Síntesis Lógica con HDL
Circuitos Digitales II
Programación de sistemas reconfigurables
Declaración de datos en el segmento de datos.. EXISTEN UN CONJUNTO DE DIRECTIVAS QUE NOS PERMITEN DECLARAR DATOS EN EL SEGMENTO DE DATOS, LAS DIRECTIVAS.
No. Lista 31 Teresita Ramírez Uribe HORA: 8:00-9:00AM.
N.L 32 ROMERO HERNÁNDEZ GABRIELA VERÓNICA. HORA: 8:00-9:00AM ESQUELETO DE UN PROGRAMA EN ENSAMBLADOR.
Aplicación de Patrones de diseño al diseño de Hardware
Vhdl para síntesis Alfredo Rosado Muñoz Universidad de Valencia Ingeniería Electrónica Diseño de Circuitos y Sistemas Electrónicos.
Circuitos Integrados de Aplicación Específica
Circuitos Digitales II TestBench, Generics, Generate y Más sobre Procesos Semana No.4 Semestre Prof. Gustavo Patiño Prof. Eugenio.
1. Algoritmo 2. Arquitectura 3. Implementación 4. Conclusiones  IMPLEMENTACIÓN VLSI DEL ALGORITMO CORDIC EN MODO VECTORIZACIÓN UTILIZANDO RADIX ALTO 
Introducción Diseño digital contemporáneo
Diseño Digital usando Verilog
CURSO: UNIDAD 4: LENGUAJES HDL
VHDL.
IEEE CALIDAD DE SOFTWARE ITSSP. The Institute of Electrical and Electronics Engineers Asociación técnico-profesional mundial dedicada a la estandarización.
MODOS DE DIRECCIONAMIENTO No. Lista 21 7am Rivas chacón Ana cristina
Proceso de información en la computadora
Interfaces de entrada / salida
Interfases de Entrada / Salida
GESTION DE LA JERARQUIA
Comunicación paralela © M.C.C. Sergio Luis Castillo Valerio Esta presentación puede reproducirse libremente siempre y cuando se mantenga esta leyenda.
DSL Domain Specific Language (Lenguaje Especifico del Dominio)
VHDL Breve introducción.
Others, soporte para síntesis. Los agregados tienen la habilidad de usar la sentencia others, la cual asignará un valor a todos los otros elementos de.
Programa Vespertino de Automatización Equipos y Sistemas de Control Digital Lenguaje C Profesor: Felipe Páez Mejías D e p a r t a m e n t o d e I n g e.
ESTRUCTURA DE DATOS ESD-243
Diseño lógico combinacional mediante VHDL
Presenta: Mario Alberto García-Martínez Asesor: Guillermo Morales-Luna
Introducción Electrónica Digital
Diseño Lógico Combinacional con VHDL
VHDL El nombre proviene de VHSIC Hardware Description Language, donde VHSIC significa Very High Speed Integrated Circuits. Es un lenguaje formal de especificación.
Unidad 1: FUNDAMENTOS DE COMPUTACIÓN Y PSEUDOLENGUAJE
Introducción a VHDL Agenda Un poco de historia Definiciones generales Entidades Arquitecturas Configuraciones.
A New Breed of Learning Tool Rafael S. García Nésmary Hernández Abdiel Avilés Advisor: Dr. B. Vélez.
Capítulo.3 - Diseño Lógico Combinacional con VHDL
1 © UPM-ETSISI Tema 7.-Tecnología de las Estructuras y Subsistemas Lógicos Combinacionales © UPM-ETSISI Tema 7 Tecnología de las Estructuras y Subsistemas.
Universidad Tecnológica del Centro Programa de la Asignatura ARQUITECTURA DEL COMPUTADOR Universidad Tecnológica del Centro Programa de la Asignatura ARQUITECTURA.
ELEMENTOS DE COMPUTACIÓN Profesor: Guillermo Figueroa
FPGA - Flujo de Diseño UBA - Sistemas Embebidos - FPGA – SoftCores – 2010 – Franco Ferrucci, Sebastián García.
UNIVERSIDAD TECNICA PERTICULAR DE LOJA
LA ARQUITECTURA O LA FUNCIONALIDAD DEL SISTEMA DefiniciónDefiniciónDefinición Declaración y reglas sintácticas.Declaración y reglas sintácticas.Declaración.
ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 08.
Corresponde a las siglas de (Institute of Electrical and Electronics Engineers) en español Instituto de Ingenieros Eléctricos y Electrónicos, una asociación.
Bases Metodológicas de la Programación
Diseño jerárquico con VHDL
BANCOS DE PRUEBAS CON VHDL (TESTBENCHES). Sistemas Digitales - FIUBA Bancos de prueba ¿Cómo realizar la prueba de un dispositivo descripto en VHDL? DUT.
EL TIPO DE DATO LOGICO y constantes.
Diseño Lógico 2 Metodología de Diseño
Electrónica y sistema de adquisición de datos de los observatorios de rayos cósmicos EAS-UAP y Sierra la Negra Contenido. 1.Introducción. 2.Observatorios.
INFORMÁTICA II TEMA: DISEÑA Y ELABORA ALGORITMOS DOCENTE: MARÍA DOLORES GARCÍA PONCE CAMPUS TONALÁ JALISCO.
Introducción a la computaciónInformática I (2015-2) Departamento de Ingeniería Electrónica y de Telecomunicaciones Facultad de Ingeniería Informática.
Diseño de CIs I Capítulo 6 Herramientas de ayuda al diseño de CIs Herramientas CAD (Computer Aided Design)
Partes de una computadora Ò El término hardware se refiere a todas las partes físicas de un sistema informático; sus componentes son: eléctricos, electrónicos,
NCO (Numerically Controlled Oscillator). NCO: Oscilador controlado numéricamente Aplicaciones Conversores digitales up/down PLLs digitales Sistemas de.
1 LENGUAJE DE DESCRIPCION DE HARDWARE ELECTRONICA DIGITAL NAYIBE CHIO CHO NAYIBE CHIO CHO.
BANCOS DE PRUEBA CON VHDL (TESTBENCHES). Sistemas Digitales - FIUBA Bancos de prueba ¿Cómo realizar la prueba de un dispositivo descripto en VHDL? DUT.
Asignación de señales en VHDL. VHDL: Asignación de señales La asignación a una señal establece una o más transacciones sobre la misma Cada señal tiene.
U.M.S.A. ETN-601 Sistemas Digitales Decodificador 3 a 8 Aux. David Marza Herrera.
CONSIDERACIONES DE RUIDO EN SISTEMAS PCM ING. JAVIER GARCIA.
Hardware Description Language
Programación en VHDL.
Transcripción de la presentación:

Capítulo.2 - Fundamentos del Lenguaje VHDL VHDL (VHSIC Hardware Description Language) VHSIC – Very High Speed Integrated Circuit

Desarrollo de Lenguajes para Descripción de Hardware Departamento de la Defensa de los E.U.A. Desarrollo de Lenguajes para Descripción de Hardware Programa: Very High Speed Integrated Circuits (VHSIC) 1970’s IDL/IBM, HDL/TI, ZEUS/GE Desarrollo en Área Industrial AHPL, DDL, CDL, ISPS Desarrollo en Área Académica 1983  VHDL Desarrollo: IBM, Texas Instruments e Intermetrics 1987  VHDL’87 Estándar IEEE -1076 1980’s AHDL, ABEL, CUPL VHDL y Verilog 1993  VHDL’93 Estándar IEEE -1164

Adición de la extensión analógica (IEEE1076 Adición de la extensión analógica (IEEE1076.1) que permite la especificación, simulación y síntesis de sistemas digitales, analógicos y mixtos Facilitar la Verificación/Prueba y puesta a punto del sistema a diseñar. Capacidad descriptiva del comportamiento del sistema en distintos niveles de abstracción: Algorítmico, RTL (Register Transfer Logic) o concurrente, estructural (Lógico), Netlist. Reutilización de Código Independencia de la Tecnología y Proceso de Fabricación (CMOS, Bipolar, BiCMOS) Independencia de la Metodología de Diseño (PLD’s, ASIC’s, FPGA’s) Independencia del Sistema de Desarrollo Disponibilidad al Público Notación Estandarizada Ventajas del VHDL

Elementos sintácticos del VHDL Palabras reservadas Son las instrucciones, órdenes y elementos que permiten definir sentencias. Cadenas de bits Los tipos bit y bit_vector son en realidad tipo carácter y arreglo de caracteres respectivamente, se coloca un prefijo para indicar la base : O”126”, X”FE” Cadenas Son un conjunto de caracteres englobados por comillas dobles: “hola” Caracteres Es cualquier letra o carácter entre comillas simples: ‘3’, ‘t’ Números Se considera que se encuentra en base 10, se admite la notación científica convencional es posible definir números en otras bases utilizando el símbolo # : 2#11000100# Identificadores Es lo que se usa para dar nombre a los diferentes objetos del lenguaje. Símbolos especiales Existen caracteres especiales sencillos como (&, #, +, *, =) o dobles como ( :=, <=). Comentarios Se consideran comentarios después de dos guiones medios seguidos “--”. Elementos sintácticos del VHDL

Reglas para especificar un identificador Identificadores Nombres o etiquetas que se usan para referirse a: Variables, Constantes, Señales, Procesos, Entidades, etc. Están formados por números, letras (mayúsculas o minúsculas) y guión bajo “_” con las reglas especificadas en la tabla siguiente. Longitud (Número de Caracteres): Sin restricciones Palabras reservadas por VHDL no pueden ser identificadores En VHDL, un identificador en mayúsculas es igual a su contraparte en minúsculas Reglas para especificar un identificador Incorrecto Correcto Primer carácter debe ser siempre una letra mayúscula o minúscula 4Suma Suma4 Segundo carácter no puede ser un guión bajo ( _ ) S_4bits S4_bits Dos guiones bajos no son permitidos Resta__4 Resta_4_ Un identificador no puede utilizar símbolos especiales Clear#8 Clear_8

Lista de palabras reservadas en VHDL

Precedencia de operadores = /= < <= > <= + - & + (signo) - (signo) * / MOD REM Precedencia de operadores ** ABS NOT AND OR NAND NOR XOR XNOR Mayor Menor La precedencia de operadores se encuentran ordenados de mayor (arriba) a menor (abajo), los operadores que se encuentran en la misma fila tienen la misma precedencia y serán evaluados siguiendo el orden de izquierda a derecha.

Objetos y Tipos de Datos std_logic (‘U’,’X’,’0’,’1’,’Z’,’W’,’L’,’H’,’-’) std_ulogic String (Cadena-Caracteres) Character (Carácter) Bit (‘0’, ‘1’) Booleano (False, True) Objetos Tipo Datos Enumerated (Enumerados) File ‡ Señales Variables Constantes Objetos VHDL Enteros [-(231-1) a (231-1)] Natural (No-Negativos) Positive (No-Cero y No-Negativos) Escalares Integer (Enteros) Floating Point ‡ (Punto Flotante) Real ‡ Physical ‡ (Físicos) Time ‡ (Tiempo) Signed Unsigned Std_logic_vector Std_ulogic_vector Bit_Vector Array (Arreglos) Compuestos ‡ No soportado por herramientas de Síntesis Record (Registro) Access (Acceso)‡

Objetos de Datos Objetos de Datos Un objeto de datos en VHDL es un elemento que toma un valor de algún tipo de dato determinado, según sea el tipo de dato, el objeto poseerá un conjunto de propiedades. En VHDL los objetos de datos son generalmente una de las tres clases siguientes: Objetos de Datos Constantes Una constante es un elemento que puede tomar un único valor de un tipo dato, las constantes pueden ser declaradas dentro de entidades, arquitecturas, procesos y paquetes. CONSTANT identidicador : tipo := valor; Ejemplo CONSTANT byte: integer := 8; Variables Las variables pueden ser modificadas cuando sea necesario, pueden ser declaradas solamente dentro de los procesos y subprogramas. VARIABLE identidicador : tipo [:= valor]; Ejemplo VARIABLE aux1, aux2: bit; SIGNAL identidicador : tipo [:= valor]; Ejemplo SIGNAL A, B : bit := ‘0’; SIGNAL dato: bit_vector (7 downto 0); Señales Las señales si pueden almacenar o pasar valores lógicos, por lo tanto, representan elementos de memoria o conexiones y si pueden ser sintetizadas. Son declaradas en las arquitecturas antes del BEGIN.

Estructura General de un Programa VHDL Estructura de VHDL Estructura General de un Programa VHDL Cada uno formado por declaraciones o instrucciones que definen, estructuran, analizan y evalúan el comportamiento de un sistema digital Unidades de Diseño (design units) Declaración de Entidad (entity declaration) Unidad Primaria Configuración (configuration) Unidad Primaria Declaración de Paquete (package declaration) Unidad Primaria Arquitectura (architecture) Unidad Secundaria Cuerpo del Paquete (package body) Unidad Secundaria Unidades indispensables en la descripción de un sistema

entidad (entity)  Bloque elemental de diseño Entidad - ¿Qué es? entidad (entity)  Bloque elemental de diseño Circuitos elementales digitales que forman de manera individual o en conjunto un sistema digital Ejemplos: Compuertas, Flip-Flops, Sumadores/Restadores, Multiplexores, Contadores, Multiplicadores, ALUs, Neurona-Digital, etc. Ejemplo-1: Sumador Entidad Sumador Cin A B Cout SUMA Puertos de Salida Puertos de Entrada Declaración de una entidad  Consiste en la descripción de los puertos de entrada o salida de un circuito, el cual es identificado como una entidad (entity) ¡Importante! No se describe cómo será realizado o implementado el circuito, es decir, su Arquitectura

Descripción de un Puerto Entidad - ¿Cómo se describe a un Puerto? Descripción de un Puerto Identificador Nombre buffer Similar al Puerto de Salida (Escritura), pero además puede ser leído. El valor leído (Entrada) es el mismo valor asignado (Salida) al puerto. inout Puerto de Entrada (Lectura) y Salida (Escritura) El valor leído (Entrada) es aquél que llega al puerto, y no el valor que se le asigna (Salida), en caso de existir. out = Salida in = Entrada Modo Más tipos Se irán introduciendo conforme avance el curso Arreglos de std_logic std_logic_vector (pkg.std_logic_1164) Valores ‘U’, ‘X’, ‘0’, ‘1’, ‘Z’, ‘W’, ‘L’, ‘H’, ‘-’ std_logic (pkg.std_logic_1164) Números enteros integer (pkg.standard) Conjunto de bits que representa a un grupo de señales de ent. o sal. bit_vector (pkg.standard) Define valores de cierto o falso de acuerdo con una expresión boolean (pkg.standard) Valores de ‘0’ o ‘1’ Lógico bit (pkg.standard) Conjuntos de Valores que se les ha asignado un nombre (p.ej. bit, boolean, bit_vector, etc), de tal forma que un objeto (p.ej. una Señal) de un determinado Tipo (p.ej. el tipo bit_vector) pueda tomar cualquier valor dentro del conjunto de valores que define al Tipo especificado. Tipo de Dato Paquete (pkg.) en el cual es definido el tipo. Ver: “Uso de Librerías y Paquetes”

Sumador-completo de dos datos con longitudes de 1-bit Entidad - Ejemplo: Sumador Completo Ejemplo-2: Sumador Entidad Sumador Cin A B Cout SUMA Puertos de Salida Puertos de Entrada (entity) Inicia declaración de la entidad (--) Indica Comentario Identificador de la entidad Nombres de los puertos Línea N°. Sumador-completo de dos datos con longitudes de 1-bit (Declaración de Entidad) 1 2 3 4 5 --Declaración de la entidad de un circuito sumador entity sumador is port (A, B, Cin: in bit; SUMA, Cout: out bit); end sumador; Modo de Operación Tipo de Dato (;) Finaliza declaración o subdeclaración (end) Finaliza declaración de la entidad

Detector – Uso de dos datos con longitudes de 4-bit Entidad - Ejemplo: Detector A Ejemplo-3 Línea N°. Detector – Uso de dos datos con longitudes de 4-bit (Declaración de Entidad) 1 --Declaracion de la entidad 2 entity circuito is 3 port (a3, b3, a2, b2, a1, b1, a0, b0: in bit; 4 F: out bit); 5 end circuito;

Declaración de Puertos Tipo-Vector Entidad - Uso de Vectores Ejemplo-4 Cin Entidad Sumador vector_A = [A3, A2, A1, A0] vector_B = [B3, B2, B1, B0] vector_SUMA = [S3, S2, S1, S0] Cout Declaración de Puertos Tipo-Vector port (vector_A, vector_B: in bit_vector (3 downto 0); vector_SUMA: out bit_vector (3 downto 0)); Para ordenar en forma ascendente utilizar to en lugar de downto (p.ej. 0 to 3) Sumador-completo de dos datos con longitudes de 4-bit (Declaración de Entidad – Uso de Vectores) entity sumador is port (A, B: in bit_vector (3 downto 0); Cin: in bit; Cout: out bit; SUMA: out bit_vector (3 downto 0)); end sumador;

Detector – Uso de dos datos con longitudes de 4-bit Entidad - Ejemplo: Detector A (Uso de Vectores) Ejemplo-5 Línea N°. Detector – Uso de dos datos con longitudes de 4-bit (Declaración de Entidad – Uso de Vectores) 1 --Declaracion de la entidad 2 entity circuito is 3 port (a, b: in bit_vector (3 downto 0); 4 F: out bit); 5 end circuito;

Objetivo: Facilitar el diseño Entidad - Uso de Librerías y Paquetes user work Biblioteca (library) Lugar donde se almacenan los Paquetes definidos por el fabricante de la herramienta de desarrollo o el usuario. Lugar donde se permite almacenar resultados de la compilación de diseños, con el fin de utilizarlos en otros. comps_dsp xc Paquetes Un paquete contiene: Declaraciones de Tipos y Subtipos de Datos Definiciones de Constantes Definiciones de Funciones y Procedimientos Declaraciones de Componentes (Sumadores, Restadores, Contadores, Multiplicadores, etc) Un Paquete = Macro-Unidad de Diseño ieee std_logic_arith std_logic_1164 Objetivo: Facilitar el diseño

Entidad - Uso de Librerías y Paquetes Bibliotecas

Sintaxis: use nombre_librería.nombre_paquete.all; Entidad - Uso de Librerías y Paquetes Para llamar un paquete es necesario llamar a la librería/biblioteca que lo contiene (donde ha sido compilado) Sintaxis: use nombre_librería.nombre_paquete.all; Ejemplo: use ieee.std_logic_1164.all; Permite el uso de todos los componentes almacenados en el paquete Uso del paquete std_logic_1164 incluido en la biblioteca ieee

Paquetes predefinidos comúnmente utilizados Entidad - Uso de Librerías y Paquetes Paquetes predefinidos comúnmente utilizados Standard standard Contiene tipos básicos: bit, bit_vector, integer Paquete incluido por omisión. IEEE std_logic_1164 Define los tipos: std_logic, std_ulogic, std_logic_vector, std_ulogic_vector Define funciones de conversión basadas sobre estos tipos. numeric_bit Define tipos de vectores signados y no-signados basados en el tipo bit y todos los operadores aritméticos sobre estos tipos. Define funciones extendidas y de conversión para dichos tipos. numeric_std Define tipos de vectores signados y no-signados basados en el tipo std_logic. Paquete equivalente al Paquete std_logic_arith Synopsys std_logic_arith Define tipos de vectores signados y no-signados, y todos los operadores aritméticos sobre estos tipos. std_logic_unsigned Define operadores aritméticos sobre el tipo std_ulogic_vector y los considera como operadores no-signados. std_logic_signed Define operadores aritméticos sobre el tipo std_logic_vector y los considera como operadores signados. std_logic_misc Define tipos, subtipos, constantes y funciones complementarios para el paquete std_logic_1164.

Circuito Multiplicador Z0 Z1 Z2 Z3 Entidad - Ejemplo: Multiplicador Ejemplo-6 X0 X1 Y0 Y1 Circuito Multiplicador Z0 Z1 Z2 Z3 Multiplicador de dos datos con longitudes de 2-bit (Declaración de Entidad – Uso de Biblioteca y Paquete) library ieee; use ieee.std_logic_1164.all; entity multiplica is port (X0, X1, Y0, Y1: in std_logic; Z3, Z2, Z1, Z0: out std_logic); end multiplica;

Estilo de descripción o Modelización Arquitectura - ¿Qué es? arquitectura (architecture) Unidad de Diseño Secundaria que describe el comportamiento interno de una entidad. ¿Cómo? - A través de la programación de varios procedimientos que permitan que la entidad (entity) cumpla con las condiciones de operación o comportamiento deseadas. Nivel Algoritmo Nivel Lógico Nivel Compuerta Niveles de Descripción utilizados Nivel Transistor (Topología / Layout) Nivel de Transferencia entre Registros (RTL) Estilo de descripción o Modelización Funcional Flujo de Datos Estructural

--Arquitectura Estructural Ejemplo general- MUX Ejemplo-7: MUX --Entidad ENTITY mux IS PORT (a, b, sel: IN bit; sal: out bit); END mux; --Arquitectura Estructural ARCHITECTURE estructural OF mux IS SIGNAL ax, bx, nosel :bit; BEGIN U0: ENTITY inv PORT MAP (e=>sel, y=>nosel); U1: ENTITY and2 PORT MAP (e1=>a, e2=>nosel, y=>ax); U2: ENTITY and2 PORT MAP (b, sel, bx); U3: ENTITY or2 PORT MAP (e1=>ax, e2=>bx, y=>sal); END estructural ;

Ejemplo-7: MUX (continuación) Ejemplo general- MUX Ejemplo-7: MUX (continuación) --Arquitectura concurrente o RTL ARCHITECTURE flujo1 OF mux IS SIGNAL ax, bx, nosel : bit; BEGIN nosel <= NOT sel; ax <= a AND nosel; bx <= b AND sel; sal <= ax OR bx; END flujo1; --Arquitectura comportamental o funcional ARCHITECTURE comportamental OF mux IS BEGIN PROCESS (a, b, sel) - - Lista sensible IF (sel=‘0’) THEN sal <= a; ELSE sal <= b; END IF; END PROCESS; END comportamental; --Arquitectura concurrente o RTL ARCHITECTURE flujo2 OF mux IS BEGIN sal <= a WHEN sel =‘0’ ELSE b; END flujo2;

Arquitectura - Comparador de Igualdad de dos Datos de Long. = 2Bits Estilo de Modelización - Funcional Funcional - En este caso, se describen las relaciones entre las entradas y salidas, sin importar la estructura o implementación física del sistema o circuito. Línea Nº Arquitectura - Comparador de Igualdad de dos Datos de Long. = 2Bits 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 --Ejemplo de una descripción abstracta (funcional) library ieee; use ieee.std_logic_1164.all; entity comp is port (a,b: in bit_vector (1 downto 0); c: out bit); end comp; architecture funcional of comp is begin compara: process (a,b) if a = b then c <= ‘1’; else c <= ‘0’; end if; end process compara; end funcional; Ejemplo-8 Comparador a b c Uso de if-then-else (construcción secuencial) si a = b entonces c = 1 si a  b entonces c = 0

Arquitectura - Compuerta OR de dos entradas Estilo de Modelización - Funcional Ejemplo-9 Línea Nº Arquitectura - Compuerta OR de dos entradas 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 --Ejemplo de una descripción abstracta (funcional) library ieee; use ieee.std_logic_1164.all; entity com_or is port (a,b: in std_logic; f1: out std_logic); end com_or; architecture funcional of com_or is begin process (a,b) begin if (a = ‘0’ and b=‘0’) then f1 <= ‘0’; else f1 <= ‘1’; end if; end process; end funcional; a b f1 1

Comparador (Ejemplo-8) Estilo de Modelización – Flujo de Datos Flujo de Datos - En este caso, se describe la forma en la que los datos se pueden transferir entre los diferentes módulos operativos que constituyen la entidad (sistema o circuito) La construcción when-else Línea Nº Arquitectura - Comparador de Igualdad de dos Datos de Long. = 2Bits 1 2 3 4 5 6 7 8 9 10 11 12 --Ejemplo de una arquitectura usando when-else library ieee; use ieee.std_logic_1164.all; entity comp is port (a,b: in bit_vector (1 downto 0); c: out bit); end comp; architecture f_datos of comp is begin c <= ‘1’ when (a = b) else ‘0’; end f_datos; Ejemplo-10 Comparador (Ejemplo-8)

Comparador (Ejemplo-8) Estilo de Modelización – Flujo de Datos Uso de ecuaciones booleanas Ejemplo-11 Comparador (Ejemplo-8) Línea Nº Arquitectura - Comparador de Igualdad de dos Datos de Long. = 2Bits 1 2 3 4 5 6 7 8 9 10 11 12 --Ejemplo de una arquitectura usando ecs. booleanas library ieee; use ieee.std_logic_1164.all; entity comp is port (a,b: in bit_vector (1 downto 0); c: out bit); end comp; architecture booleana of comp is begin c <= (a(1) xnor b(1)) and (a(0) xnor b(0)); end booleana; Comparador a b c

Modelos lógicos pueden ser: Estilo de Modelización – Estructural Estructural - En este caso, el comportamiento de un sistema o circuito es descrito mediante modelos lógicos establecidos de los componentes que conforman al sistema o circuito, como son: Compuertas, Sumadores, Contadores, etc. Modelos lógicos pueden ser: Diseñados por el Usuario Predefinidos por el Fabricante Almacenados en Paquetes contenidos en las bibliotecas de la Herramienta de Desarrollo

Comparador (Ejemplo-8) Estilo de Modelización – Estructural Ejemplo-12 Comparador (Ejemplo-8) Línea Nº Arquitectura - Comparador de Igualdad de dos Datos de Long. = 2Bits 1 2 3 4 5 6 7 8 9 10 11 12 13 14 library ieee; use ieee.std_logic_1164.all; use work.compuertas.all; entity comp is port (a,b: in bit_vector (0 to 1); c: out bit); end comp; architecture estructural of comp is signal x: bit_vector (0 to 1); begin U0: xnor2 port map (a(0), b(0), x(0)); U1: xnor2 port map (a(1), b(1), x(1)); U2: and2 port map (x(0), x(1), c); end estructural;