Informe Trabajo Previo 2

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 15

Informe Trabajo Previo #2

Juan Esteban Buritica García 1942727-3744

Parte I
Código VHDL

Código corregido, las compuertas se cambiaron por AND ya que en la suma de


miniterminos es obligatorio que únicamente sea esta compuerta.
La celda32 y 33 se corrigieron haciendo la tabla de verdad del circuito de esta manera nos
damos cuenta que miniterminos deben ir en la suma (S) y en el carry(Ci+1).

RTL Viewer

El RTL viewer corresponde con el código vhdl, se confirma asociando cada entrada con las
compuertas descritas en el código y sus miniterminos. Solo la salida del carry y la suma
tienen presente la compuerta OR. Las entradas de las AND que contienen una negación se
deben a que el valor de esta entrada es cero, (ver en la tabla de verdad en la siguiente
página)
University Program

Run functional simulation

Los miniterminos tienen un comportamiento parecido debido a que todos tienen presente
las compuertas AND. Cada 10ns un minitermino diferente en escala toma el valor de 1,
0ns-m1 / 10ns-m2 / 20ns-m2 / 30ns-m3 ……..
RELACIONES
Tabla de verdad #1

Esta tabla de verdad corresponde a la simulación #1 de la suma de miniterminos.

La suma canónica de la función lógica para esta tabla será:

𝐹 = ∑ (1,2,4,7)
𝑎,𝑏,𝐶𝑖
𝐹 = (𝑎´ ∗ 𝑏 ∗ 𝐶𝑖´) + (𝑎 ∗ 𝑏´ ∗ 𝐶𝑖´) + (𝑎´ ∗ 𝑏´ ∗ 𝐶𝑖 ) + (𝑎 ∗ 𝑏 ∗ 𝐶𝑖)

Esto es la suma de productos de los miniterminos correspondientes a las filas de la tabla


de verdad para las cuales la función produce una salida 1 en S. La operación matemática
es un producto debido a que la suma de miniterminos corresponde a la compuerta AND.

Ahora el producto canónico de la función lógica de esta tabla será:


𝐹 = 𝜋(𝑎,𝑏,𝐶𝑖) (0,3,5,6)
𝐹 = (𝑎 + 𝑏 + 𝐶𝑖 ) ∗ (𝑎´ + 𝑏´ + 𝐶𝑖 ) ∗ (𝑎 + 𝑏´ + 𝐶𝑖´) ∗ (𝑎´ + 𝑏 + 𝐶𝑖´)

Este es un producto de sumas, es lo contrario a la función anterior, y corresponde a las


combinaciones de entrada para las cuales la función produce una salida 0 en S.
Las definiciones de los miniterminos serán:
-m0: el minitermino 0 tiene todas sus entradas.

-m1: el minitermino 1 tiene la entrada (a) negada y (Ci) negada y su entrada (b) está sin
negar.
-m2: el minitermino 2 tiene sus entradas (b) y (Ci) negadas, pero(a) no negada.
-m3: el minitermino 3 tiene la entrada (Ci) negada y sus entradas (a) y (b) sin negar.
-m4: el minitermino 4 tiene sus entradas (a) y (b) negadas pero su entrada (Ci) sin negar.
-m5: el minitermino 5 tiene su entrada (a) negada y sus entradas (b) y (Ci) sin negar.
-m6: el minitermino 6 tiene su entrada (b) negada y sus entradas (a) y (b) sin negar.
-m7: el minitermino 7 no tienen ninguna de sus entradas negadas.

Tabla de verdad Figura 3 (guía trabajo previo 2)


Si comparamos los valores de salida (S, Ci+1) de la tabla de verdad de la simulación #1 y la
tabla de verdad de la Figura 3 de la guía, nos damos de cuenta que coinciden, esto debido
a que ambas son de un sumador de 1 bit.
Al hacer la suma por filas de las combinaciones de cada caso de entrada, observamos que
si la suma es 1, el dato se almacena en la columna Si, y para las sumas las cuales son 2 o
mayores como el 3, el dato se almacena en Ci+1, esto debido a que las sumas cuyo
resultado sean mayores de 1 no pueden ser expresadas en un solo bit y por consiguiente
llevan un carry, la columna Ci+1 además de indicar que la suma lleva un carry también
muestra el valor total de la suma en binario. Un ejemplo claro es la suma de la fila 7, la
cual el resultado es 3, que en binario se representa como 1 1.

Se podría decir que la columna Si tiene el comportamiento de una compuerta XOR, ya que
cuando el número de unos es impar, tiene en su salida un 1, y cuando el número de unos
es par, tiene en su salida un 0. Pero por definición sabemos que esta compuerta no puede
estar presente debido a que en la suma de miniterminos solo están presentes las
compuertas AND, y para el carry de salida aparece la OR.
Parte 2
VHDL puertos de miniterminos eliminados

Para poder crear el símbolo del full adder se eliminaron los miniterminos de los puertos de
las salidas (buffer), y se agregaron en la arquitectura del circuito.
RTL viewer puertos miniterminos eliminados

Circuito sumador con carry propagado. (Nótese que en las salidas solo aparece la suma y
el carry de salida), con el fin de simplificar y hacer el símbolo del full adder mas fácil de
usar, los miniterminos se integraron en la parte interna del circuito y ya no en las salidas.
University Program

Simulación sin miniterminos de salida.

Run Functional Simulation

Obtenemos exactamente los mismos resultados que la simulación anterior debido a que
es el mismo circuito pero sus miniterminos ya no son visibles, ahora están dentro de la
arquitectura del circuito. Esta simulación tiene un periodo de 8ns, a partir de este ns se
vuelve a repetir los valores de salida. La tabla de verdad #1 Es la misma para este circuito.
Parte 3
Captura esquemática del Modelo sumador_carry_propagado_16.bdf (se aprecia la ruta)

Estructura de un sumador de 16bits compuesto por sumadores completos, cada uno con
sus 3 entradas (que son 2 bits de entrada y un acarreo de entrada) y 2 salidas (una es la
suma y la otra es el acarreo de salida.)

A continuación una imagen un poco más detallada de las conexiones del


sumador_carry_propagado.
Esta captura grafica tiene corregidos los carry que para cada fulladder tienen una
nomenclatura diferente, van desde el C0 (carry 0) del primer carry, hasta el c15 (carry 15)
el ultimo carry. Cada carry de salida es conectado al carry de entrada del siguiente
fulladder.
Las entradas a, b y las salidas S, tienen una nomenclatura diferente para cada fulladder,
van desde a0, b0, S0 hasta a15, b15, S15.

RTL del sumador_carry_propagado_16.

Comparando el circuito con las figuras 7 y 4 de la guía nos damos cuenta que este es el
circuito correspondiente al código vhdl ya que se aprecia su estructura interna en cada
fulladder con sus respectivas compuertas AND y OR. El acarreo de salida del fulladder se
obtiene por tanto del producto lógico (AND) de la entradas ai y bi, y del producto lógico de
ai*bi y CI. Después se aplica la operación OR a estos dos términos. Esta función se
implementa y se combina con la lógica de la suma para formar un circuito sumador
completo.
Debido a que se esta trabajando con una versión de Quartus II, el RTL se ve diferente,
esta versión es bastante antigua ya que es óptima para sistemas operativos de 32 bits.
Como no se ven bien las conexiones del RTL debido a que la imagen es demasiado
grande entonces se opta por poner la imagen al final de este informe.
NOTA: señor profesor, la imagen con buena resolución se encuentra en la última
página de este informe, se le recomienda hacer zoom, ya que cada que lo hace su
resolución de imagen aumenta.

Simulación #1 del sumador_carry_propagado_16

Datos de entrada “a” agrupados con valor numérico de 12973


Datos de entrada “b” agrupados con valor numérico de 49684

Run Functional Simulation (simulación 1)

La suma de los dos grupos de datos de entrada (S=A+B), resulto 61883, la cual dista 774
unidades del valor esperado que es 62657.
Los datos no coinciden debido al orden de los bits, lo que escribimos primero lleva índices
de memoria más bajos, y lo que escribimos a continuación lleva índices más elevados, que
lo que lleva índices bajos es previo en memoria, y así sucesivamente. Los bits tienen un
peso y si quisiéramos que la suma de exacta tendríamos que comenzar desde el bit más
significativo hasta el menos significativo.
Simulación #2 del sumador_carry_propagado_16

A diferencia de la simulación 1, en esta se aplicó la función Reverse Group or Bus Bit


Order para las dos entradas y la salida, lo que hace que cambie el orden de los bits, los
pone en reversa (de cabeza), pasa de a0-a15 a estar a15-a0.
Run Functional Simulation (simulación 2)

La suma de los dos grupos de datos de entrada (S=A+B), resulto 62657, este valor es el
mismo que el de la figura 1 de la guia. Se puede decir que el dato es correcto ya que al
revertir el orden de los bits cambia el orden de los pesos y por tal su conversión en el
sistema decimal.
Simulación #3 del sumador_carry_propagado_16

Para esta simulación el grupo de datos A tiene un valor numérico de 20194 y el grupo de
datos B tienen un valor numérico de 2727, a esta simulación también se le aplico la
función de revertir el orden de los bits (Reverse Group or Bus Bit Order).

Run Functional Simulation (simulación 3)

El valor de la salida S es correcto ya que esta se debe a la suma S=A+B, donde A=20194 y
B=2727, por ende su resultado es 2291. Vemos que la función de revertir los bits nos
funciona para dar el valor correcto en una suma. Esto se debe a la significancia de los bits.

A CONTINUCACION APARECERA LA CAPTURA DEL RTL VIEWER DEL CIRCUITO SUMADOR


DE 16 BITS CON CARRY PROPAGADO, HACER ZOOM PARA VISUALIZAR BIEN SUS
CONEXIONES.

También podría gustarte

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy