Altifigence Academy

17 / 20 · Concepto

Marcadores de referencia e invariantes

Comprueba términos, etiquetas, flancos y transferencias de salida además de la matriz final.

Separa dos referencias

Usa una referencia matemática directa para calcular sumas anchas con bucles i/j/k independientes. Usa un modelo temporal separado para desplazar A a la derecha y B hacia abajo. Copiar el auxiliar de índices del RTL al modelo de referencia arriesga reproducir el mismo error. Empieza con ejemplos fijos calculados a mano y después amplía a entradas aleatorias reproducibles.

Usa el trabajo y las coordenadas globales de salida como claves del marcador de resultados. Compara cada valor recibido y marca su clave como recibida. Una clave repetida es un duplicado, una inesperada es un error de dirección y una clave esperada no recibida es una ausencia. Los resultados cero también requieren entrega. Las coordenadas de relleno fuera de intervalo nunca deben almacenarse.

Comprueba invariantes dentro de la matriz

Cada PE debe consumir exactamente [0,1,...,K−1]. Los operandos válidos emparejados necesitan etiquetas job y k iguales. Count permanece entre cero y K. Un flanco pausado conserva operandos, valid, etiquetas, acumulador y contador. Clear deja el contador y el acumulador a cero, sin tokens válidos. Un resultado bloqueado conserva data y job mientras valid sigue activado.

CapaEjemplo de falloFallo probable
Aritmética23 en lugar de 19Índice, signo o anchura
Términos[0,1,1]Token duplicado
TemporizaciónPE final terminado en E2Finalización temprana
PausaEl contador cambia durante la pausaRetención parcial del estado
SalidaClave recibida dos vecesControl de negociación

En el ejemplo 2×2, el PE final contiene dieciocho después de E2 y cincuenta después de E3. Un error de global-done en E2 debe fallar tanto en las comprobaciones numéricas como temporales. En cambio, duplicar y omitir productos de igual valor puede conservar la suma final; seguir los términos detecta esa coincidencia.

Guarda semillas aleatorias, matrices, dimensiones, anchuras y posiciones de pausa. Registra el primer PE, término y flanco físico discordantes. Los errores deliberados de etiquetas deben fallar visiblemente, no desaparecer en silencio.

Observa el estado después de E_t de forma coherente. La ejecución de referencia Node, la compilación RTL, la simulación RTL, la síntesis, el cierre temporal, la ejecución de un proyecto DDS y las pruebas en placa acreditan hechos distintos. Los programas Node suministrados validan modelos aritméticos y de planificación. Las futuras pruebas RTL pueden reutilizar los datos, pero deben conservar sus propias versiones de herramientas, comandos y registros.

Inténtalo tú

Construye entradas en las que comprobar solo la suma final no detecte un término duplicado y uno omitido.

Leer la explicación

Una fila A [1,1] y una columna B [5,5] suman correctamente diez. Consumir [0,0] también suma diez, pero duplica k0 y omite k1. Exigir tanto el valor como la lista exacta de términos [0,1] detecta el error.

Tu elección se aplica a este navegador. Puedes cambiarla en el pie de página.