Está en la página 1de 5

INFORME – TALLER 01 DISEÑO JERÁRQUICO Y SIMULACIÓN

Susana M. Gómez Coronel

1. Primero se diseñó el circuito para sumar dos bits, con un carry de entrada, un carry de salida y
el resultado, obteniendo lo siguiente:

Ilustración 1. Código Sumador.

Cómo se observa en la anterior imagen, el bloque sumador se encarga de sumar 2 bits (a y b)


teniendo en cuenta un carry de entrada (cin), donde estas corresponden a las señales de entrada
de este y las salidas corresponden al carry de salida (cout) y al resultado de la suma (sumout).

Para hallar las ecuaciones correspondientes a las salidas, se hizo uso de la tabla de verdad, así:

Ilustración 2. Tabla de verdad para un sumador de 2 bits con carry.

Por la anterior imagen se determinan las ecuaciones lógicas:

𝑠𝑢𝑚𝑜𝑢𝑡 <= 𝑎̅ ∗ 𝑏̅ ∗ 𝑐𝑖𝑛 + 𝑎̅ ∗ 𝑏 ∗ 𝑐𝑖𝑛


̅̅̅̅ + 𝑎 ∗ 𝑏̅ ∗ 𝑐𝑖𝑛
̅̅̅̅ + 𝑎 ∗ 𝑏 ∗ 𝑐𝑖𝑛

𝑐𝑜𝑢𝑡 <= 𝑎̅ ∗ 𝑏 ∗ 𝑐𝑖𝑛 + 𝑎 ∗ 𝑏̅ ∗ 𝑐𝑖𝑛 + 𝑎 ∗ 𝑏 ∗ 𝑐𝑖𝑛


̅̅̅̅ + 𝑎 ∗ 𝑏 ∗ 𝑐𝑖𝑛
Al simplificar, nos quedan así:

𝑠𝑢𝑚𝑜𝑢𝑡 <= 𝑎 𝑋𝑂𝑅 𝑏 𝑋𝑂𝑅 𝑐𝑖𝑛


𝑐𝑜𝑢𝑡 <= 𝑐𝑖𝑛 ∗ 𝑎 𝑋𝑂𝑅 𝑏 + 𝑎 ∗ 𝑏
Las ecuaciones anteriores se codificaron en VHDL cómo se observa en la ilustración 1.

2. Luego de tener el sumador, se procedió a realizar el Full Adder, dónde se llamó 4 veces el código
mostrado en la ilustración 1.

Ilustración 3. Código Full Adder.


3. Se procedió a realizar el módulo testbench en VHDL, escogiendo 16 vectores para comprobar el
funcionamiento.
Ilustración 4. Código Test Bench.

Cómo se ve en la anterior simulación, cada vector corresponde a un caso posible de la suma de 4


bits, teniendo en cuenta el carry de entrada.

4. Ya al tener el código mostrado en la ilustración 4, se procedió a simular en ModelSim siguiendo


los pasos de la guía dada por el profesor, se obtuvo como resultado lo siguiente:

Ilustración 5. Simulación Test Bench en ModelSim.

Cómo se observa en la anterior ilustración, se encuentra la simulación del código de Full Adder, para
comprobar su funcionamiento.

En el primer caso se tiene un 0000 como numero 1 (0) y un 1010 como número 2 (10), se tiene un
carry de entrada y la salida da 1011 que corresponde a 11, el resultado es correcto.

En el cuarto caso se tiene un 1000 (8) y un 1011 (11) con un carry de entrada, se obtiene que el
resultado es 0100 y con el carry de salida da 10100 (20).

En el penúltimo caso se tiene un 0100 (4) y un 0111 (7) sin carry de entrada, donde se obtiene que
el resultado es 1011 (11).

Es así como se comprueba con la simulación, el correcto funcionamiento del código.

También podría gustarte