Informe Trabajo Previo 2
Informe Trabajo Previo 2
Informe Trabajo Previo 2
Parte I
Código VHDL
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
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
𝐹 = ∑ (1,2,4,7)
𝑎,𝑏,𝐶𝑖
𝐹 = (𝑎´ ∗ 𝑏 ∗ 𝐶𝑖´) + (𝑎 ∗ 𝑏´ ∗ 𝐶𝑖´) + (𝑎´ ∗ 𝑏´ ∗ 𝐶𝑖 ) + (𝑎 ∗ 𝑏 ∗ 𝐶𝑖)
-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.
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
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.)
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.
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
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).
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.