Vous êtes sur la page 1sur 5

LABORATORIO N 03 DE ARQUITECTURA DE COMPUTADORAS INFORME PREVIO 1. Usando lenguaje VHDL, implemente una puerta NAND de dos entradas.

SOLUCION: Su forma caracterstica es la siguiente:

Su tabla de verdad es: A 0 0 1 1 Ecuacin algebraica: B 0 1 0 1 F 0 0 0 1

Definimos una lgica, como se ve en la tabla de verdad, F solo toma dos valores o 0 o 1, entonces por condicionales generamos que cuando A y B sean la combinacin 11 la salida de F ser 1, sino la salida de F ser 0. Con esa lgica generamos nuestro cdigo en VHDL.

Cdigo en VHDL: library IEEE; use IEEE.std_logic_1164.all; entity vhdl is port ( A: in std_logic; // A y B son las entradas. B: in std_logic; F: out std_logic // F es la salida ); end vhdl; architecture funcion of vhdl is begin process (A,B) begin if (A='1' and B = '1') then F <= '0'; else F <= '1'; end if; end process; end funcion; Resultado de simulacin en el programa QUARTUS II.

2. Implementar un sumador completo.

SOLUCION: A y B son las entradas. Z es el acarreo de entrada. S es la suma. C es el acarreo de salida.

LOGICA DEL SUMADOR COMPLETO. El sumador completo tiene que sumar dos bits de entrada y un acarreo de entrada. Sabemos que la suma de dos bits de entrada A y B es la operacin OR- exclusiva. Para sumar el acarreo de entrada a los dos bits de entrada, hay que aplicarle de nuevo la operacin OR-exclusiva, obtenindose la siguiente ecuacin para la salida S.

Para el acarreo de salida se obtiene esta ecuacin:

La tabla de verdad seria la siguiente: A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 z 0 1 0 1 0 1 0 1 S 0 1 1 0 1 0 0 1 C 0 0 0 1 0 1 1 1

El algoritmo a realizar en el lenguaje VHDL ser de condicionales para los casos. Cdigo en VHDL: library IEEE; use IEEE.std_logic_1164.all; entity sumador is port ( A,B,Z: in std_logic; // son las entradas. S,C: out std_logic); // son las salidas. end sumador; architecture funcion of sumador is begin sumador:process(A,B,Z) begin if (A= '0' and B= '0'and Z= '0') then S<= '0'; C<= '0'; elsif (A= '0' and B= '0'and Z= '1') then S<= '1'; C<= '0'; elsif (A= '0' and B= '1'and Z= '0') then S<= '1'; C<= '0'; elsif (A= '0' and B= '1'and Z= '1') then S<= '0'; C<= '1'; elsif (A= '1' and B= '0'and Z= '0') then S<= '1'; C<= '0'; elsif (A= '1' and B= '0'and Z= '1') then S<= '0'; C<= '1'; elsif (A= '1' and B= '1'and Z= '0') then S<= '0'; C<= '1'; else S<= '1' ; C<= '1'; end if; end process sumador; end funcion;

Resultado de simulacin en el programa QUARTUS II.

Vous aimerez peut-être aussi