Altifigence Academy

17 / 20 · Concetto

Scoreboard e invarianti

Verifica termini, tag, fronti e trasferimenti di uscita oltre alla matrice finale.

Separa due riferimenti

Usa un riferimento matematico diretto per calcolare somme estese con cicli i/j/k indipendenti. Usa un modello temporale separato per muovere A verso destra e B verso il basso. Copiare la funzione ausiliaria di indicizzazione dell'RTL nel modello di riferimento rischia di riprodurre lo stesso errore. Inizia con esempi fissi calcolati a mano, poi estendi a ingressi casuali riproducibili.

Usa job e coordinate globali di uscita come chiave dello scoreboard dei risultati. Confronta ogni valore ricevuto e segna la sua chiave come ricevuta. Una chiave ripetuta è un duplicato, una chiave inattesa è un errore di indirizzo e una chiave attesa non ricevuta indica una mancanza. Anche i risultati zero richiedono consegna. Le coordinate di riempimento fuori intervallo non devono mai essere memorizzate.

Verifica gli invarianti dentro l'array

Ogni PE deve consumare esattamente [0,1,...,K−1]. Gli operandi validi corrispondenti devono avere tag job e k uguali. Count rimane tra zero e K. Un fronte in pausa mantiene operandi, valid, tag, accumulatore e count. Clear lascia count e accumulatore a zero senza token validi. Un risultato bloccato mantiene data e job mentre valid resta attivo.

LivelloEsempio di errorePossibile difetto
Aritmetica23 invece di 19Indice, segno o larghezza
Termini[0,1,1]Token duplicato
TemporizzazionePE finale completo a E2Completamento anticipato
PausaCount cambia durante la pausaMantenimento parziale dello stato
UscitaUna chiave ricevuta due volteControllo dell'handshake

Nell'esempio 2×2, il PE finale contiene diciotto dopo E2 e cinquanta dopo E3. Un errore global-done a E2 deve fallire sia nelle verifiche numeriche sia in quelle temporali. Viceversa, prodotti di uguale valore duplicati e omessi possono conservare la somma finale; il tracciamento dei termini rileva questa coincidenza.

Memorizza semi casuali, matrici, dimensioni, larghezze e posizioni delle pause. Registra il primo PE, termine e fronte fisico non corrispondente. Errori intenzionali dei tag devono fallire visibilmente anziché scomparire silenziosamente.

Osserva coerentemente lo stato dopo E_t. Esecuzione del riferimento Node, compilazione RTL, simulazione RTL, sintesi, chiusura temporale, esecuzione del progetto DDS e prove su scheda attestano fatti diversi. I programmi Node forniti convalidano modelli aritmetici e di pianificazione. Le future prove RTL possono riutilizzare i casi, ma devono conservare le proprie versioni degli strumenti, i comandi e i log.

Prova tu

Costruisci ingressi per cui verificare soltanto la somma finale non rileva un termine duplicato e uno omesso.

Leggi la spiegazione

Una riga A [1,1] e una colonna B [5,5] sommano correttamente a dieci. Anche consumare [0,0] somma a dieci, ma duplica k0 e omette k1. Richiedere sia il valore sia l'elenco esatto dei termini [0,1] rileva l'errore.

La scelta vale per questo browser. Puoi modificarla in qualsiasi momento dal piè di pagina.