Diseño RTL: matrices sistólicas
Construye una matriz parametrizable de multiplicación de matrices a partir de aritmética MAC con signo, desfase de entradas y elementos de procesamiento; después verifica la división en bloques, el control de flujo y el comportamiento exacto flanco a flanco.
Qué aprenderás
- Asociar los índices matriciales y los productos escalares a elementos de procesamiento
- Elegir las anchuras del producto con signo, del acumulador y de la salida de punto fijo
- Planificar matrices 2×2 y N×N con salida estacionaria y entradas desfasadas
- Especificar valid, etiquetas, detenciones y reinicio con un contrato exacto de flancos
- Verificar los límites de los bloques, el ancho de banda y el proyecto final mediante un marcador de referencia
Antes de empezar
Estos ejercicios del navegador usan modelos educativos; no compilan ni ejecutan HDL. Para ejecutar el código por separado, sigue la guía de Digital Design Studio para tu sistema operativo e inicia sesión cuando la operación lo requiera.
Instalación y primer inicio ↗ · Descargas ↗Programa
- Matrices y contratos aritméticos
- Asocia productos escalares a elementos de procesamientoConcepto
Separa los índices de fila, columna y reducción y calcula una pequeña matriz de referencia.
- Productos con signo y anchura del acumuladorConcepto
Deduce la anchura del acumulador a partir del intervalo de operandos del peor caso.
- Política de salida de punto fijoConcepto
Separa la escala de entrada, el redondeo negativo, la saturación y el comportamiento modular.
- Comprueba el contrato aritméticoEvaluación
Elige la anchura del acumulador usando la longitud completa de la reducción.
- Elementos de procesamiento y tokens válidos
- El contrato en un flanco ascendenteConcepto
Fija la numeración de flancos, el reenvío registrado, la acumulación y la prioridad de inicialización.
- Práctica: elemento de procesamiento MAC con signoPráctica
Usa un modelo independiente para comprobar operandos válidos, detenciones y borrado.
- Indicadores de validez, etiquetas y vaciadoConcepto
Distingue el cero numérico, las burbujas y los tokens de otro trabajo.
- Comprueba el control del elemento de procesamientoEvaluación
Identifica el estado que debe conservarse durante una pausa.
- Matrices y planificación de entradas
- Salida estacionaria y otros flujos de datosConcepto
Compara almacenamiento y transporte identificando qué permanece en el PE.
- Práctica: matriz 2×2 con entradas desfasadasPráctica
Modela retardos de reenvío de un flanco y comprueba todos los acumuladores intermedios.
- Escala a N×N y cuenta los flancos de finalizaciónConcepto
Parametriza el tamaño espacial N por separado de la longitud de reducción K.
- Comprueba la planificación y la finalizaciónEvaluación
Distingue la inyección final de la disponibilidad del resultado final.
- Bloques, ancho de banda y control de flujo
- División en bloques y relleno de bordesConcepto
Asocia matrices mayores a una cuadrícula menor y gestiona el relleno con ceros y las máscaras de salida.
- Ancho de banda y utilización útilConcepto
Separa la capacidad MAC máxima de los costes de llenado, drenaje, relleno y memoria.
- Práctica: contrapresión y reinicioPráctica
Ejecuta una pausa global, la retención de resultados y el reinicio de un trabajo interrumpido.
- Comprueba el relleno y el ancho de bandaEvaluación
Distingue la validez del operando de la validez de la dirección de resultado.
- Verificación y proyecto final
- Marcadores de referencia e invariantesConcepto
Comprueba términos, etiquetas, flancos y transferencias de salida además de la matriz final.
- Diseña pruebas de signo y de límitesConcepto
Combina límites aritméticos, de dimensiones y de control más allá de un único ejemplo favorable.
- Proyecto final: modelo de verificación N×N por bloquesPráctica
Combina N y K arbitrarios con relleno y pausas y compara con una referencia independiente.
- Revisión de integración RTL y extensionesConcepto
Conecta el modelo didáctico con interfaces RTL y pruebas de verificación.