Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad

Investigación sobre descripción algorítmica en VHDL: constantes, variables y señales, Ejercicios de Diseño de Sistemas Digitales

Este informe presenta una investigación teórica sobre la descripción algorítmica o comportamental en el lenguaje vhdl, incluyendo una búsqueda de las diferentes estructuras y elementos como constantes, variables y señales. El documento también incluye el diseño de una simulación de la descripción algorítmica de los circuitos propuestos.

Tipo: Ejercicios

2021/2022

Subido el 17/10/2022

maria-jose-hernandez-diaz-1
maria-jose-hernandez-diaz-1 🇨🇴

5 documentos

1 / 2

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Taller 1
María José Hernández Díaz
Maria_jose.hernandez@uao.edu.co
Universidad Autónoma de Occidente
Facultad de ingeniería Programa de ingeniería electrónica y telecomunicaciones
Agosto, 2022 Cali, Valle del Cauca
Resumen. El siguiente informe presenta una investigación teórica
sobre la descripción algorítmica o comportamental en VHDL y sus
estructuras, y las diferencias entre constante, variable y señal. Así como
también se encuentra el diseño de una simulación de la descripción
algorítmica de los circuitos propuestos dentro de la actividad.
Abstract.- The following report presents a theoretical investigation on
the algorithmic or behavioral description in VHDL and its structures,
and the differences between constant, variable and signal. As well as
the design of a simulation of the algorithmic description of the circuits
proposed within the activity.
I. INTRODUCCION
El presente informe refiere al tema de la descripción algorítmica o
comportamental dentro del lenguaje VHDL siendo uno de los 3 estilos
o clases de descripciones que dependen del nivel de abstracción.
Además, también se realizó una búsqueda de tres elementos existentes
dentro del lenguaje VHDL, que son las señales, constantes y variables.
Para cada uno de los temas que aquí se mencionan fue necesario
realizar una búsqueda o breve investigación para comprenderlos y de
esa manera llevar a cabo la actividad practica que se propone dentro
del taller. II. MARCO TEORICO
a) ¿Qué es una constante, una variable, y una señal?
Dentro del lenguaje VHDL existen tres tipos de elementos;
señales, constantes y variables. Las dos ultimas tienen un
significado similar a cualquier otro lenguaje de programación.
Todos estos elementos son diferentes. Las variables solo tienen
sentido dentro de los procesos o subprogramas, mientras que las
señales pueden ser declaradas en arquitecturas, paquetes o
bloques concurrentes. Las constantes pueden ser declaradas en
los mismos sitios que las variables y señales.
- Constantes:
Contribuyen a la legibilidad, mantenimiento y portabilidad del
programa. No cambian su valor.
- Variable:
Cambian su valor con sentencias de asignación. Son locales a
los procesos. No tienen significado físico.
Variable nombre_variable: tipo;
Nombre_variable: = expresión;
- Señales:
Cambian su valor con sentencias de asignación. Tienen una
analogía física directa. Se interconectan componentes de un
circuito. Sincronizan la ejecución y suspensión de procesos. Son
visibles para todos los elementos de una arquitectura. Los
puertos de una entidad son señales.
Signal nombre_senal: tipo;
Nombre_senal <= expresión;
b) ¿Qué es la descripción algorítmica o comportamental
en VHDL y cuáles son sus estructuras?
En el lenguaje VHDL presenta tres estilos de descripción que
dependen del nivel de abstracción. El menos abstracto es el
nivel estructural mientras que el mas abstracto y lejano a una
posible implementación física es el algorítmico.
En la descripción algorítmica se describe el comportamiento del
sistema, no se esta indicando ni los componentes ni sus
interconexiones, sino simplemente lo que hace. Las
características más significativas son:
- Se emplean sentencias secuenciales y no concurrentes:
PROCESOS.
- Se ejecutan en un orden determinado, se finaliza la
ejecución de una sentencia antes de asar a la siguiente
III. SIMULACION, ACTIVIDAD PRACTICA
A continuación, se presenta la implementación de los
ejercicios propuestos dentro del taller.
Compuerta NOR d e 4 entradas
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity NOR_4 is
port (a:in std_logic;
b: in std_logic;
c: in std_logic;
d: in std_logic;
salida: out std_logic);
end NOR_4;
architecture compuerta of NOR_4 is
signal salida_aux1 : std_logic;
signal salida_aux2 : std_logic;
begin salida_aux1 <= a or b ;
salida_aux2 <= c or d ;
salida <= not (salida_aux1 or salida_aux2);
end compuerta;
Compuerta NAND de 4 entradas
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity NAND_4 is
port (entrada1: in std_logic;
entrada2: in std_logic;
entrada3: in std_logic;
entrada4: in std_logic;
salida: out std_logic);
end NAND_4;
architecture compuerta of NAND_4 is
signal salida_aux1 : std_logic;
signal salida_aux2 : std_logic;
begin salida_aux1 <= entrada1 and entrada2 ;
pf2

Vista previa parcial del texto

¡Descarga Investigación sobre descripción algorítmica en VHDL: constantes, variables y señales y más Ejercicios en PDF de Diseño de Sistemas Digitales solo en Docsity!

Taller 1

María José Hernández Díaz

Maria_jose.hernandez@uao.edu.co

Universidad Autónoma de Occidente

Facultad de ingeniería – Programa de ingeniería electrónica y telecomunicaciones

Agosto, 2022 – Cali, Valle del Cauca

Resumen. – El siguiente informe presenta una investigación teórica sobre la descripción algorítmica o comportamental en VHDL y sus estructuras, y las diferencias entre constante, variable y señal. Así como también se encuentra el diseño de una simulación de la descripción algorítmica de los circuitos propuestos dentro de la actividad. Abstract.- The following report presents a theoretical investigation on the algorithmic or behavioral description in VHDL and its structures, and the differences between constant, variable and signal. As well as the design of a simulation of the algorithmic description of the circuits proposed within the activity.

I. INTRODUCCION

El presente informe refiere al tema de la descripción algorítmica o comportamental dentro del lenguaje VHDL siendo uno de los 3 estilos o clases de descripciones que dependen del nivel de abstracción. Además, también se realizó una búsqueda de tres elementos existentes dentro del lenguaje VHDL, que son las señales, constantes y variables. Para cada uno de los temas que aquí se mencionan fue necesario realizar una búsqueda o breve investigación para comprenderlos y de esa manera llevar a cabo la actividad practica que se propone dentro del taller.

II. MARCO TEORICO

a) ¿Qué es una constante, una variable, y una señal?

Dentro del lenguaje VHDL existen tres tipos de elementos;

señales, constantes y variables. Las dos ultimas tienen un

significado similar a cualquier otro lenguaje de programación.

Todos estos elementos son diferentes. Las variables solo tienen

sentido dentro de los procesos o subprogramas, mientras que las

señales pueden ser declaradas en arquitecturas, paquetes o

bloques concurrentes. Las constantes pueden ser declaradas en

los mismos sitios que las variables y señales.

  • Constantes:

Contribuyen a la legibilidad, mantenimiento y portabilidad del

programa. No cambian su valor.

  • Variable:

Cambian su valor con sentencias de asignación. Son locales a

los procesos. No tienen significado físico.

Variable nombre_variable: tipo;

Nombre_variable: = expresión;

  • Señales:

Cambian su valor con sentencias de asignación. Tienen una

analogía física directa. Se interconectan componentes de un

circuito. Sincronizan la ejecución y suspensión de procesos. Son

visibles para todos los elementos de una arquitectura. Los

puertos de una entidad son señales.

Signal nombre_senal: tipo;

Nombre_senal <= expresión;

b) ¿Qué es la descripción algorítmica o comportamental

en VHDL y cuáles son sus estructuras?

En el lenguaje VHDL presenta tres estilos de descripción que

dependen del nivel de abstracción. El menos abstracto es el

nivel estructural mientras que el mas abstracto y lejano a una

posible implementación física es el algorítmico.

En la descripción algorítmica se describe el comportamiento del

sistema, no se esta indicando ni los componentes ni sus

interconexiones, sino simplemente lo que hace. Las

características más significativas son:

  • Se emplean sentencias secuenciales y no concurrentes:

PROCESOS.

  • Se ejecutan en un orden determinado, se finaliza la

ejecución de una sentencia antes de asar a la siguiente

III. SIMULACION, ACTIVIDAD PRACTICA

A continuación, se presenta la implementación de los

ejercicios propuestos dentro del taller.

Compuerta NOR d e 4 entradas library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity NOR_4 is port (a:in std_logic; b: in std_logic; c: in std_logic; d: in std_logic; salida: out std_logic); end NOR_4; architecture compuerta of NOR_4 is signal salida_aux1 : std_logic; signal salida_aux2 : std_logic; begin salida_aux1 <= a or b ; salida_aux2 <= c or d ; salida <= not (salida_aux1 or salida_aux2); end compuerta;

Compuerta NAND de 4 entradas

library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity NAND_4 is port (entrada 1 : in std_logic; entrada2: in std_logic; entrada3: in std_logic; entrada4: in std_logic; salida: out std_logic); end NAND_4; architecture compuerta of NAND_4 is signal salida_aux1 : std_logic; signal salida_aux2 : std_logic; begin salida_aux1 <= entrada1 and entrada2 ;

salida_aux2 <= entrada3 and entrada4 ; salida <= not (salida_aux1 and salida_aux2); end compuerta;

Compuerta NOT

library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity NOT_1 is port (entrada: in std_logic; salida: out std_logic); end NOT_1; architecture compuerta of NOT_1 is begin salida <= not entrada; end compuerta;

Multiplexor de 8 a 1

library ieee; use ieee.std_logic_1164.all; entity mux_8a1 is port(din: in std_logic_vector(7 downto 0); sel : in std_logic_vector(2 downto 0); dout : out std_logic); end mux_8a1; architecture mux_arc of mux_8a1 is begin dout <= din(0) when (sel="000") else, din(1) when (sel="001") else, din(2) when (sel="010") else, din(3) when (sel="011") else, din(4) when (sel="100") else, din(5) when (sel="101") else, din(6) when (sel="110") else, din(7); end mux_arc;

Decodificador de 4 a 16

library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity deco4_16 is port (y16, y15, y14, y13, y12, y11, y10, y9, y8, y7, y6, y5, y4, y3, y2, y1: out std_logic; x4, x3, x2, x1: in std_logic); end entity; architecture arch of deco4_16 is signal outVect: std_logic_vector (16 downto 1); signal inVect: std_logic_vector (4 downto 1); begin y16 <= outVect(16); y15 <= outVect(15); y14 <= outVect(14); y13 <= outVect(13); y12 <= outVect(12); y11 <= outVect(11); y10 <= outVect(10); y9 <= outVect(9); y8 <= outVect(8); y7 <= outVect(7); y6 <= outVect(6); y5 <= outVect(5); y4 <= outVect(4); y3 <= outVect(3); y2 <= outVect (2); y1 <= outVect (1); inVect (4) <= x4; inVect (3) <= x3; inVect (2) <= x2; inVect(1) <= x1; outVect<="0000000000000001"when inVect = "0000" else, "0000000000000010" when inVect = "0001" else, "0000000000000100" when inVect = "0010" else, "0000000000001000" when inVect = "0011" else, "0000000000010000" when inVect = "0100" else, "0000000000100000" when inVect = "0101" else, "0000000001000000" when inVect = "0110" else, "0000000010000000" when inVect = "0111" else, "0000000100000000" when inVect = "1000" else, "0000001000000000" when inVect = "1001" else, "0000010000000000" when inVect = "1010" else, "0000100000000000" when inVect = "1011" else, "0001000000000000" when inVect = "1100" else, "0010000000000000" when inVect = "1101" else, "0100000000000000" when inVect = "1110" else, "1000000000000000" when inVect = "1111" else; end architecture;

Conversor de GRAY a BCD

library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; use ieee.std_logic_arith.all; entity gray_bcd is port(x : in std_logic_vector(3 downto 0); y : out std_logic_vector(3 downto 0)); end gray_bcd; architecture arc_graybcd of gray_bcd is begin process (x); begin case x is when “0000” => y<= “0000”, when “0001” =>y<= “0001”, when “0011” =>y<= “0010”, when “0010” =>y<= “0011”, when “0110” =>y<= “0100”, when “0111” =>y<= “0101”, when “0101” =>y<= “0110”, when “0100” =>y<= “0111”, end case; end process; end arc_graybcd;

IV. REFERENCIAS BIBLIOGRAFIAS

[1]R. Cavallero, Introducción a los VHDL. PDF.