Está en la página 1de 10

T.U.A.R.

Cagide Jose Ignacio

[ TRABAJO PRACTICO -
ELECTRÓNICA DIGITAL]
Trabajo Practico - Electrónica Digital

TUAR 2021

Implementación de testbench para circuitos combinacionales.

 Implementar una entidad para un sumador completo de 1 bit, cuya tabla de


verdad es la siguiente:

a b cin Sum Cout


0 0 0 0 0
1 0 0 1 0
0 1 0 1 0
1 1 0 0 1
0 0 1 1 0
1 0 1 0 1
0 1 1 0 1
1 1 1 1 1

 Implementar un testbench que permita probar completamente el diseño


agregando manualmente los valores para cada entrada mediante tablas.

 Implementar otro testbench que reporte un error cuando el valor de la/s


salida/s no sea el esperado.

 Implementar un tercer testbench que lea los valores de las entradas desde
un archivo, y que guarde en otro archivo las salidas correspondientes para
las entradas, con un reporte de error, en caso de que exista.

 Implementar un sumador completo de 4 bits a partir del sumador completo


de 1 bit.

Se debe presentar un informe que detalle cada una de las implementaciones, con
explicaciones y graficas de las simulaciones. Se deben adjuntar además los
archivos generados para el para el tercer testbench.
Dentro del archivo entregado se encuentran dos carpetas, cada una referida
al proyecto Sumador1bits o Sumador4bits. Por orden de procesos y guía de trabajo
lo primero a confeccionar será el sumador completo de 1 bits con sus respectivos
testbench, a lo que podemos organizarlo de la siguiente manera:

 Entidad sumador completo de 1 bits (sumador1bits.vhd)

Declaración de la entidad que resolverá la suma de dos bits (“a” y “b”), con
posibilidad de CarryIn (cin), para generar el bit de suma (“sum”) y/o CarryOut
(“cout”) correspondiente. La lógica de su arquitectura no disiente demasiado a la
presentada en clase, debido su baja complejidad.

 1º Testbench (sumador1bits_tb.vhd)

En este primer testbench, se implementaron 3 tablas, cada una de ellas


asociada una de las entradas, con el fin de verificar el estado del funcionamiento de
la entidad:

Como se observa, la descripción de la entidad fue la correcta. A lo largo de los


80ns predispuestos, todas las combinaciones posibles son reflejadas en la gráfica.
 2º Testbench (sumador1bits_tb2.vhd)

Basándose en el testbench anterior, se agregaron 2 tablas para el ingreso


manual de las salidas, para así poder compararlas y anunciar por medio de un
reporte el error de descripción de la entidad o no.

En la prueba anterior se muestra un funcionamiento óptimo, en la siguiente se


ingresaran adrede cuatro errores para poder confirmar el reporte de error.
 3º Testbench (sumador1bits_tb3.vhd)

Para este último testbench, se confecciono un archivo de texto con los datos de
las entradas y salidas; para ser leídos desde el archivo data_sumador1bits_tb3.txt y
luego utilizados en la comparación entre estos mismos y el funcionamiento de
nuestra entidad. Toda esta información será guardada en el archivo
data_output_sumador1bits_tb3.txt, para su estudio posterior.

Texto entrada Texto salida

En la prueba anterior, se verifica el funcionamiento de la entidad. En el


recuadro rojo todos los valores de “sum” coinciden, al igual que el recuadro verde
que refleja “cout”. Ingresando errores de forma agrede:
Una vez testeada la entidad sumador1bits, y corroborando su
correcta descripción, pasamos al siguiente proyecto.

 Entidad sumador completo de 4 bits (sumador4bits.vhd)

Descripción de la entidad que resolverá la suma de dos números binarios de 4


bits (“a_4” y “b_4”), con posibilidad de CarryIn (“cin_ini”) inicial, para generar el
numero resultante suma (“sum_4”) de 4 bits y/o CarryOut (“cout_fin”)
correspondiente.

a(3) b(3) a(2) b(2) a(1) b(1) a(0) b(0)

cout_fin cin_ini

sum(3) sum(2) sum(1) sum(0)

Primera descripción:

Segunda descripción:
Como se muestra en las imágenes, adjunte dos carpetas para la solución del
sumador de 4 bits, una donde se resuelve con repeticiones de la forma simple del
sumador completo. Y una segunda, con la utilización de la entidad previamente
testeada del sumador de 1 bit como componente de la nueva entidad. Todos los
testbench reflejan las pruebas para cualquiera de los dos modelos.

 1º Testbench (sumador4bits_tb.vhd)

En este primer testbench, se corrobora el funcionamiento general para todas


las posibles combinaciones de las entradas; de esta manera, cada 20 ns cambiara el
valor de “a”, 320 ns el valor de “b” y 5120 ns el de “cin”. El resultado final,
demuestra el funcionamiento correcto de la entidad a testear, pero resulto
engorroso el desarrollo y estudio del mismo.

Deja en visto el único cambio de la señal de entrada “cin_ini”, los 32 de “b_4” y


los 1024 de la señal “a_4”. Si nos centramos en el primer ciclo de la señal “b_4”
respectivo para el momento “cin_ini” = ‘0’ y “cin_ini” = ‘1’:

Como se observa, la descripción de la entidad fue la correcta. A lo largo de los


80ns predispuestos, todas las combinaciones posibles son reflejadas en la gráfica.
Para intentar una corroboración más puntual o específica, buscando algunas
combinaciones posibles se realizó el próximo testbench.
 2º Testbench (sumador4bits_tb2.vhd)

En esta prueba, se optó por introducir mediantes tablas valores para las 3
entradas y así conseguir una secuencia especifica pre-planteada. La secuencia de
prueba será guardada en el archivo data_output_sumador4bits_tb2.txt, y esta
emulara una suma ascendente y descendente hasta 50, con punto de inflexión
cuando cambie el valor del bit “cin” inicial.

La grafica muestra que se logró lo planteado, comienza una cuenta


ascendente desde 0 hasta 25 y luego descendente hasta 0 de nuevo (desde ‘0000,0’
hasta ‘1001,1’ y luego de nuevo ‘0000,0’, teniendo en cuanta que ‘sum_4, cout_test’
en forma binaria). El archivo de texto generado queda de la siguiente manera:
 3º Testbench (sumador4bits_tb3.vhd)

Para este último testbench, se confecciono un archivo de texto con los datos de
las entradas y salidas. Estos serán leídos desde el archivo
data_sumador4bits_tb3.txt y luego utilizados en la comparación entre los mismos y
el funcionamiento de nuestra entidad. Toda esta información será guardada en el
archivo data_output_sumador4bits_tb3.txt, para su estudio posterior.

El grafico con las entradas y salidas ampliadas, refleja los datos ingresados
por el archivo auxiliar, coincidiendo con el archivo generado.

Texto entrada Texto salida


En la prueba anterior se muestra un funcionamiento óptimo, en la siguiente se
ingresaran adrede cuatro errores para poder confirmar el reporte de error.

En rojo se introduce un error para la “sum”, en verde para “cout” y en violeta


para ambos.

También podría gustarte