Altifigence Academy

20 / 20 · Concepto

Revisión de integración RTL y extensiones

Conecta el modelo didáctico con interfaces RTL y pruebas de verificación.

Reparte las responsabilidades del núcleo y del módulo envolvente

El núcleo de matriz gestiona el reenvío registrado de operandos, las MAC con signo, valid/etiquetas y advance global. El módulo envolvente gestiona start/clear, dimensiones matriciales, coordenadas de bloques, suministro desfasado en el borde, recogida enmascarada de resultados y negociaciones de salida. Define cada responsabilidad con nombres de señales y un contrato de flancos.

Un módulo envolvente sencillo usa IDLE, CLEAR, RUN, COLLECT y SEND. CLEAR garantiza un flanco de inicialización antes de los datos. RUN avanza los pasos lógicos de cero a K+2N−3. Los resultados se completan inmediatamente después del último flanco RUN; COLLECT los copia en el siguiente. Esto evita copiar el acumulador anterior en el mismo flanco que su actualización no bloqueante final.

Resuelve un ejemplo de latencia de integración

Para N=K=2, clear ocurre en E−1 y el cálculo en E0..E3. Supón que E4 copia cuatro resultados en paralelo a un búfer de resultados. Una salida de un resultado por flanco con ready siempre verdadero envía diecinueve, veintidós, cuarenta y tres y cincuenta en E5..E8 en orden por filas. Medir desde clear hasta la última transferencia incluye diez flancos ascendentes E−1..E8, frente a cuatro flancos de cálculo. El bloqueo de salida prolonga SEND sin cambiar los valores completados.

Las cargas útiles de resultado necesitan job y coordenadas globales, además de una representación bruta o cuantizada definida. No borres un acumulador hasta que su resultado se haya copiado o consumido de forma segura. Solapar el siguiente cálculo con SEND requiere propiedad de búferes y separación de trabajos.

Revisa los contratos al ampliar el diseño

Un multiplicador segmentado cambia la temporización de acumulación, etiquetas y finalización. La división de la reducción en bloques necesita conservar sumas parciales y un nuevo análisis de anchura. Solapar trabajos necesita estado de acumulación separado. Una FIFO almacena value, valid y etiquetas como una carga útil y exige comprobar desbordamiento y extracción en vacío.

La documentación de arquitectura de Gemmini ofrece un ejemplo de fuente primaria en el que almacenamiento local y movimiento de datos acompañan a la matriz. Nuestra máquina de estados y nuestro ejemplo temporal son contratos didácticos especificados independientemente.

Entrega dimensiones, anchuras, planificación del borde, definición de finalización, política de pausa/reinicio, orden de salida y registros del marcador. Las comprobaciones Node acreditan comportamiento del modelo de referencia. La simulación RTL, síntesis, cierre temporal e integración del producto necesitan sus propios comandos ejecutados y pruebas antes de afirmar éxito.

Inténtalo tú

En el ejemplo de integración, bloquea ready durante dos flancos después de E6. ¿Cuál pasa a ser el flanco de la última transferencia y el recuento total de flancos medidos?

Leer la explicación

Espera en E7 y E8 y después envía los dos resultados restantes en E9 y E10. La última transferencia es E10; medir E−1..E10 incluye doce flancos. El cálculo sigue siendo cuatro flancos E0..E3 y los datos bloqueados deben conservarse.

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