17 / 20 · Concetto
Scoreboard e invarianti
Verifica termini, tag, fronti e trasferimenti di uscita oltre alla matrice finale.
Le lezioni sono gratuite. Iscriviti per salvare i progressi.
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.
| Livello | Esempio di errore | Possibile difetto |
|---|---|---|
| Aritmetica | 23 invece di 19 | Indice, segno o larghezza |
| Termini | [0,1,1] | Token duplicato |
| Temporizzazione | PE finale completo a E2 | Completamento anticipato |
| Pausa | Count cambia durante la pausa | Mantenimento parziale dello stato |
| Uscita | Una chiave ricevuta due volte | Controllo 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.