Simulaciones
- Simulaciones del primer caso
- Simulaciones del segundo caso
- Simulaciones del tercer caso
- Simulaciones del cuarto caso
- Simulaciones del quinto caso
- Simulaciones del sexto caso
El proyecto incluye varios test benchs de forma de poder asegurarse de que todo funciona normalmente. Los mismos leen el archivo pruebas.txt
que tiene una lista de cadenas a codificar junto con el resultado esperado. Si alguna comprobación no es correcta, se informa el error y se aborta la ejecucióno del test, ejemplo:
-- Comprobar que lo encodeado coincida con lo del archivo leido al comienzo.
for i in 1 to counter loop
exit when character'pos(comprobation(i)) = character'pos('.');
assert comprobation(i) = result(i)
report "No coincide la comprobación"
severity failure;
end loop;
Más allá de los tests mencionados, se ejecutaron algunos puntuales con el fin de obtener simulaciones para exponer el comportamiento interno del periférico. Las mismas fueron hechas con cadenas de 12, 13, 14, 62, 63 y 64 bytes, cuyos valores fueron:
- ABCDEFGHIJKL (Valor codificado: QUJDREVGR0hJSktM)
- ABCDEFGHIJKLM (Valor codificado: QUJDREVGR0hJSktMTQ==)
- ABCDEFGHIJKLMN (Valor codificado: QUJDREVGR0hJSktMTU4=)
- 12345678901234567890123456789012345678901234567890123456789012 (Valor codificado: MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTI=)
- 123456789012345678901234567890123456789012345678901234567890123 (Valor codificado: MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIz)
- 123456789012345678901234567890123456789012345678901234567890124 (Valor codificado: MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNA==)
Simulaciones del primer caso
Como se mencionó antes, se corresponde a la cadena ABCDEFGHIJKL
Primeros bytes

Últimos bytes

Memoria de datos de entrada

Memoria de datos de salida

Simulaciones del segundo caso
Como se mencionó antes, se corresponde a la cadena ABCDEFGHIJKLM
Primeros bytes

Comienzo del procesamiento
Se puede ver que luego de indicarle la cantidad de bytes a (0x0d = 13’d), se empieza con el procesamiento propiamente dicho.

Últimos bytes

Memoria de datos de entrada

Memoria de datos de salida

Simulaciones del tercer caso
Como se mencionó antes, se corresponde a la cadena ABCDEFGHIJKLMN
Primeros bytes
Ver la sección marcada en rojo, en donde se observa la transición de estados de la máquna de estado a medida que va procesando los bytes de entrada. Hay una máquina de estados para el componente b64_encoder
y otra para encoder
(paramás información consultar el código fuente).

Disparo de la señal de ready
Observar que luego de procesar los datos de entrada se dispara la señal de ready
indicando que ya están disponibles los bytes codificados.

Últimos bytes

Memoria de datos de entrada

Memoria de datos de salida

Simulaciones del cuarto caso
Memoria de datos de entrada

Memoria de datos de salida

Simulaciones del quinto caso
Memoria de datos de entrada

Memoria de datos de salida

Simulaciones del sexto caso
Memoria de datos de entrada

Memoria de datos de salida
