You are on page 1of 5

1.

- El trfico en una interseccin de dos calles es controlada por dos semforos,


describa el comportamiento por medio de una tabla de verdad en el cual se realice
la secuencia en cada uno de ellos (verde amarillo (esttico) rojo) en 4 tiempos.
a

0
0
1
1

0
1
0
1

v
1
1
0
0
0

a
1
0
1
0
0

r
1
0
0
1
1

v
2
0
0
1
0

a
2
0
0
0
1

r
2
1
1
0
0

Solucin:
Donde V=verde, A= amarillo (esttico) y R=
rojo

Cdigo:
--Artemio Snchez Avendao
--Juan Benigno Avils Avils
--Jose Juan Martinez Rodriguez
library ieee;
use ieee.std_logic_1164.all;
entity semaforo is
port (a,b:in bit;
v1,a1,r1,v2,a2,r2: out bit);
end semaforo;
architecture pros of semaforo is
begin
v1<='1' when (a='0' and b='0') else '0';
r2<='1' when (a='0' and b='0')or (a='0' and b='1') else '0';
a1<='1' when (a='0' and b='1') else '0';
r1<='1' when (a='1' and b='0')or (a='1' and b='1') else '0';
v2<='1' when (a='1' and b='0') else '0';
a2<='1' when (a='1' and b='1') else '0';
end pros;

2.- Elabore el programa en VHDL que encienda un motor cuyo funcionamiento


est dado por la ecuacin y= a . b + c . b +a . c

Cdigo:
--Artemio Sanchez Avendao
--Juan Benigno Avilez Avilez
--Jose Juan Martinez Rodriguez
library ieee;
use ieee.std_logic_1164.all;
entity motor is
port (a,b,c: in std_logic;
y:out std_logic);
end motor;
architecture proble of motor is
begin
y<=((a and b)or(c and b) or (a and c));
end proble;

3.- Se tiene una caja de seguridad cuyo sistema de apertura consta de cuatro
botones (a, b, c y d). La caja de seguridad nicamente se abrir si se
presionan al mismo tiempo los tres botones a, c y d, con cualquier otra
combinacin la caja de seguridad no abrir. Proponga la tabla de verdad que
genere el comportamiento del enunciado anterior y elabore su programacin en
VHDL.

Solucin:

Cdigo:

a
0
0
0
0
0
0
0
0
1
1

b
0
0
0
0
1
1
1
1
0
0

c
0
0
1
1
0
0
1
1
0
0

d
0
1
0
1
0
1
0
1
0
1

s1
0
0
0
0
0
0
0
0
0
0

--Artemio Sanchez Avendao

s1: out std_logic);

end caja;

architecture codig of caja is

--Juan Benigno Avilez Avilez


--Jose Juan Martinez Rodriguez
library ieee;
use ieee.std_logic_1164.all;
entity caja is
port(a,b,c,d: in std_logic;

begin
s1<= '1' when (a= '1' and b='0' and c='1'
and d='1')
else '0';
end codig;

4.- Una fbrica cuenta con un robot cuya funcin es transportar un contenedor
desde el taller hasta almacn. El robot nicamente puede llevarse el contenedor si
este se encuentra lleno con cuatro cajas de herramientas, si falta alguna el robot
no puede realizar su funcin. Para saber si en el contenedor se encuentran todas
las cajas, se cuenta con cuatro sensores correspondientes a cada una de las
cajas; si el sensor detecta una caja, marca un 1 lgico, en caso contrario, marca
un '0 lgico. Proponga la tabla de verdad que genere el comportamiento del
enunciado anterior y elabore su programacin en VHDL.
Solucin:

Cdigo:

a
0
0
0
0
0
0
0
0
1
1

b
0
0
0
0
1
1
1
1
0
0

c
0
0
1
1
0
0
1
1
0
0

d
0
1
0
1
0
1
0
1
0
1

s1
0
0
0
0
0
0
0
0
0
0

1
1

0
0

1
1

0
1

0
0

1
1

1
1

0
0

0
1

0
0

1
1

1
1

1
1

0
1

0
1

--Artemio Sanchez Avendao


--Juan Benigno Avilez Avilez
--Jose Juan Martinez Rodriguez
library ieee;
use ieee.std_logic_1164.all;
entity robot is
port(a,b,c,d: in std_logic;
s2: out std_logic);
end robot;
architecture caja of robot is
begin
s2<='1' when (a='1' and b='1' and c='1' and d='1')
else '0';
end caja;

5.- Se muestra la tabla de verdad de un decodificador BCD de 7 segmentos con


conexin a nodo comn. El circuito cuenta con 4 entradas (A, B, C y D) cuyas
combinaciones mostrarn en el display los nmeros decimales sealados en la
primera columna. Elabore un programa en VHDL que incluya las 7 salidas
(correspondientes a cada segmento) mostradas en la tabla de verdad.
A

Solucin
:

Cdigo:
--Artemio Sanchez Avendao

when "0001"=> d <="1001111";

--Juan Benigno Avilez Avilez

when "0010"=> d <="0010010";

--Jose Juan Martinez Rodriguez

when "0011"=> d <="0000110";

library ieee;

when "0100"=> d <="1001100";

use ieee.std_logic_1164.all;

when "0101"=> d <="0100100";

entity display1 is

when "0110"=> d <="0100000";

port(A: in std_logic_vector(3 downto 0);

when "0111"=> d <="0001111";

d: out std_logic_vector(6 downto 0));

when "1000"=> d <="0000000";

end display1;

when "1001"=> d <="0000100";

architecture salida of display1 is

when others => d <="1111111";

begin

end case;

process (A) begin

end process;

case A is

end salida;

when "0000"=> d <="0000001";

You might also like