Vous êtes sur la page 1sur 5

DEPARTAMENTO DE TELEMATICA

ASIGNATURA: CIRCUITOS DIGITALES II EJERCICIOS VHDL


PROF: JOHANNA A. HURTADO

Ejercicios

Unidades básicas de diseño

 Describa los cinco tipos de unidades de diseño en VHDL.


1. Declaración de entidad: define las entradas y salidas del circuito.
2. Declaración arquitectura: permite definir el funcionamiento del circuito.
3. Declaración componente: declara las entradas y salidas del circuito a diseñar.
4. Declaración paquete: llama a los paquetes de la librería que se va a utilizar.
5. Cuerpo del paquete:
 Determine cuáles son las unidades de diseño necesarias para realizar un programa en VHDL.
1. Declaración de entidad.
2. Arquitectura.
3. Configuración.
4. Declaración del paquete.
5. Cuerpo del paquete.
 Mencione las unidades de diseño primarias y secundarias.

Declaración de entidad.(Puertos(Nombre, Modo, Tipo))


Arquitectura.
Configuración.
Declaración del paquete.
Cuerpo del paquete.

Declaración de entidades
 Describa el significado de una entidad y cuál es su palabra reservada.
Una entidad es un bloque de diseño que puede ser analizado y programado como un elemento individual y el
cual permite definir las entradas y salidas del diseño, su palabra reservada es ENTITY.
 En la siguiente declaración de entidad indique:

library ieee;
use ieee.std_logic_l 164.all; entity selección is port (
x: in std_logic_vector(0 to 3);
f: out std_logic);
end selección;

a) El nombre de la entidad
selección
b) Los puertos de entrada
x0,x1,x2,x4
c) Los puertos de salida
f
d) El tipo de dato
std_logic_vector
std_logic

 Señale cuáles de los siguientes identificadores son correctos o incorrectos, colocando en las
líneas de respuesta la letra 'C' o ‘I’, respectivamente.

Ilógico I C Desp_laza
con_trol C C N_ivel
Página I I architecture
Registro C I S_uma#
2Suma I I Res ta

 Declare la entidad para la compuerta AND del ejercicio:

A
B

entity And_2 is
port (A,B: in bit;
S: out bit);
end And_2;

 Declare la entidad para el siguiente circuito.

Demo
entity Demo is
port (A,B: in bit;
F: out bit);
end Demo;
 Declare la entidad para el circuito que se muestra en la figura. Utilice vectores.

C[2:0 ]

entity promedio is
port(A,B: in bit_vector(2 downto 0);
F:out bit);
end promedio;
 Declare la entidad para el siguiente circuito que utiliza vectores.

 C [0 :3]

entity circuito is
port(A,B: in bit_vector(0 to 3);
C: out bit_vector(0 to 3));
end circuito;

 Describa qué es una librería en VHDL.


Colección de unidades de diseño compiladas previamente para su posterior uso. Su
función es agilizar el diseño
 Indique el significado de todos los paquetes ieee.std_logic.
Use.std_logic.1164.all: Para poder utilizar las funciones aristmeticas definidas
(suma, resta multiplicación)
Use.std_logic.arith.all: si los vectores están en representación binaria
pura.
Use.std_logic.unsigned.all: los vectores están en C 2.
 Declare la entidad del circuito multiplexor mostrado en la fi-gura utilizando la librería:
ieee.std_logic_l164.all;
EO
E1
E2
E3

SO S1

library IEEE;
use ieee.std_logic_1164.all;
entity Mux is
port (E:in std_logic_vector (0 to 3);
S:in std_logic_vector (0 to 2);
F:out std_logic);
end Mux;

Solucionar los siguientes problemas y describir su tabla de verdad utilizando declaraciones concurrentes
en VHDL.
1. Un motor eléctrico puede girar en ambos sentidos por medio de dos contadores: "D" para el giro a derecha y "I"
para el giro a izquierda. Estos dos contadores son comandados por dos pulsadores de giro "d" (derecha) e "i"
(izquierda) y un interruptor de selección "L" de acuerdo con las siguientes condiciones:
• Si sólo se pulsa uno de los dos botones de giro, el motor gira en el sentido correspondiente.
• Si se pulsan los dos botones de giro simultáneamente, el sentido de giro depende del estado del interruptor "L" de
forma que,
Si "L" está activado, el motor gira a la derecha.
Si "L" está en reposo, el motor gira a la izquierda.
Establecer:
a) La tabla de verdad.
L0 L1 L2 X Y
0 0 0 0 0
L0=Derecha ; 0 0 1 0 0
L1= Izquierda; 0 1 0 0 1
L2= Selección; 0 1 1 0 1
X= Giro derecha; 1 0 0 1 0
Y= Giro izquierda; 1 0 1 1 0
1 1 0 0 1
1 1 1 1 0
library IEEE;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;

entity Motor is
port (L: in bit_vector (2 downto 0);
X,Y:out bit);
end Motor;

architecture Fun of Motor is


begin
with L select
X<= '1' when "100",
'1' when "101",
'1' when "111",
'0' when others;

with L select
Y<= '1' when "010",
'1' when "011",
'1' when "110",
'0' when others;
end Fun;

2. una máquina de juego posee un sistema de lotería constituido por cuatro pulsadores activados por las bolas que
se deslizan sobre un tablero. El sistema funciona de tal forma que concede partida gratis cuando, al introducir la bola
en juego por el orificio de fin, la combinación binaria formada por los citados pulsadores es equivalente en decimal
a uno de los siguientes valores: 3,7,10,11 y 15. Implementar el circuito necesario con un multiplexor de 8:1

--Cuando F es igual a 1 la partida será gratis ya que la


--bola entra en unos de los orificios definidos.
library IEEE;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;

entity Maquina is
port(A: in std_logic_vector (3 downto 0); A0 A1 A2 A3 F
F: out std_logic); 0 0 0 0 0
end Maquina; 0 0 0 1 0
0 0 1 0 0
architecture Fun of Maquina is 0 0 1 1 1
begin 0 1 0 0 0
with A select 0 1 0 1 0
F<= '1' when "0011",
0 1 1 0 0
'1' when "0111",
0 1 1 1 1
'1' when "1010",
1 0 0 0 0
'1' when "1011",
'1' when "1111", 1 0 0 1 0
'0' when others; 1 0 1 0 1
end Fun; 1 0 1 1 1
1 1 0 0 0
1 1 0 1 0
1 1 1 0 0
1 1 1 1 1

Vous aimerez peut-être aussi