Está en la página 1de 7

DISEÑO DE CIRCUITOS COMBINACIONALES, PARTE I.

USO
DE MAPAS DE KARNAUGH PARA LA SOLUCIÓN DE
PROBLEMAS LÓGICOS COMBINACIONALES
Katya Pastuña

Ingeniería Eléctrica y Electrónica, Escuela Politécnica Nacional


Quito, Ecuador
katya.pastuna@epn.edu.ec

I. TRABAJO PREPARATORIO
REFERENCIAS
A. Diseñe un circuito combinacional usando mapas de
[1] NOVILLO CARLOS A., "Sistemas Digitales" Quito,
Karnaugh que permita la conversión de un número
Escuela Politécnica Nacional, 2010.
binario de 5 bits a su correspondiente número
expresado en BCD. Se deberá mostrar de manera
expresa los pasos necesarios para la obtención de
las funciones lógicas de salida. Realizar la
simulación de este circuito en el software LogiSim o
Proteus.

ANEXO 1

B. Diseñe un circuito combinacional usando mapas de


Karnaugh que permita realizar la siguiente tarea:
Dentro de una fábrica existen 4 turnos que se
muestra en la Tabla 1. Se pretende diseñar un
circuito combinacional que tenga como entradas la
representación binaria de la hora actual menos 8
horas y que proporcione en la salida el número del
turno que se está trabajando o el número ‘0’ si es
que está en el horario de descanso. Expresar las
funciones mínimas de salida como suma de
productos y como productos de sumas.
Realizar la simulación de este circuito en el
software LogiSim o Proteus

.
ANEXO 2

C. Generar en VHDL usando la arquitectura flujo de


datos el ítem 3.1 y 3.2. Mostrar las gráficas de las
señales generadas dentro del software Quartus.

ANEXO 3
ANEXO 1
 Codigo para Vhdl

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;

entity ejer1 is
PORT(
bin: in STD_LOGIC_VECTOR(4 downto 0);
bcd_u: out STD_LOGIC_VECTOR(3 downto 0);
bcd_d: out STD_LOGIC_VECTOR(3 downto 0);
bcd_c: out STD_LOGIC_VECTOR(3 downto 0));
end Bin5toBCD;

architecture Behavioral of ejer1 is


begin
proceso_bcd: process(bin)
variable z: STD_LOGIC_VECTOR(16 downto 0);
begin
-- Inicialización de datos en cero.
z := (others => '0');
-- Se realizan los primeros tres corrimientos.
z(7 downto 3) := bin;
for i in 0 to 1 loop
-- Unidades (4 bits).
if z(8 downto 5) > 4 then
z(8 downto 5) := z(8 downto 5) + 3;
end if;
-- Decenas (4 bits).
if z(12 downto 9) > 4 then
z(12 downto 9) := z(12 downto 9) + 3;
end if;
-- Centenas (3 bits).
if z(16 downto 13) > 4 then
z(16 downto 13) := z(16 downto 13) + 3;
end if;
-- Corrimiento a la izquierda.
z(16 downto 1) := z(15 downto 0);
end loop;
-- Pasando datos de variable Z, correspondiente a BCD.
bcd_u <= z(8 downto 5);
bcd_d <= z(12 downto 9);
bcd_c <= z(16 downto 13);
end process;
end Behavioral;
 Circuito ejercicio 1
ANEXO 2
 Codigo VHDl
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;

entity ejer2 is
port
(
-- PINES DE ENTRADA
a,b,c,d : in std_logic;
-- PINES DE SALIDA
s1,s2 : out std_logic

);
end ENTITY;

ARCHITECTURE dataflow OF ejer2 IS


BEGIN

s1 <= a or (b and (not(c)) and (not(d))) or ( (not(b)) and c and d );


s2 <= ( (not(b)) and (not(c)) ) or ( (not(b)) and (not(d)) );

end architecture;

También podría gustarte