21 / 24 · Concetto
Combina uno scoreboard con invarianti locali
Verifica valori, ordinamento, occupazione e stabilità durante gli stalli a partire dalle transazioni accettate.
Le lezioni sono gratuite. Iscriviti per salvare i progressi.
Ancora la verifica all'accettazione dell'ingresso
Uno scoreboard calcola un risultato atteso da ogni ingresso accettato e lo accoda. Alla consegna in uscita, confronta l'elemento atteso più vecchio. Calcolare direttamente dal contratto anziché rispecchiare ogni registro della pipeline riduce gli errori condivisi. Aggiungi elementi soltanto su un handshake di ingresso; un ingresso presentato ma rifiutato non è lavoro in sospeso.
Per gli ingressi ADD accettati tag10:(250,10) e tag11:(3,5), attenditi [(10,4,carry1),(11,8,carry0)]. Un'uscita valida ma in stallo non rimuove un elemento. Consegnare tag10 rimuove soltanto quell'elemento. Un tag10 ripetuto o il valore 8 con tag 12 è errato anche se alcuni numeri corrispondono. Includi tutti i flag rilevanti e i campi associati.
| Verifica | Esempi di errori |
|---|---|
| Uscita rispetto alla coda di riferimento | Aritmetica, ordinamento, tag errati |
| Accepted-delivered=occupancy | Perdita, duplicazione, falsa consegna |
| Payload stabile durante lo stallo | Sovrascrittura prima dell'accettazione |
| Occupazione entro i limiti | Overflow o underflow della FIFO |
| Coda di riferimento vuota dopo il completamento del transito | Risultato finale mancante |
Gli invarianti locali identificano il primo fronte che fallisce anziché soltanto una differenza finale. L'occupazione interna è il conteggio FIFO più i bit valid degli stadi. Aggiungi la contabilità degli annullamenti quando reset o svuotamento sono consentiti e usa la stessa politica sui fronti in entrambi i monitor.
Combina limiti numerici e casi temporali: zero, valori massimi, riporto e prestito, traffico consecutivo, bolle, stalli lunghi, sostituzione a pieno e completamento finale del transito. Registra i semi casuali per errori ripetibili. Esamina esaustivamente piccoli spazi di controllo quando è pratico.
Le verifiche di completamento richiedono un'ipotesi di progresso e un timeout. Quando la destinazione diventa permanentemente pronta, il lavoro in sospeso deve completarsi. Con stalli indefiniti, richiedi invece conservazione e occupazione limitata. Corrompere intenzionalmente il riporto o il ritardo del tag deve far fallire le verifiche; questo test di mutazione misura la sensibilità. Superare i modelli Node non convalida cablaggio HDL, comportamento X/Z, attraversamenti tra domini di clock o temporizzazione dell'implementazione. Riporta soltanto l'ambito di esecuzione effettivamente osservato.
Prova tu
Accepted=9 e delivered=5. Il conteggio FIFO è due ed entrambi gli stadi sono validi. La contabilità è coerente? Se viene accettato un altro ingresso senza consegna e l'occupazione rimane quattro, che cosa è probabilmente accaduto?
Leggi la spiegazione
La contabilità corrisponde: 9-5=2+1+1=4. Dopo un'altra accettazione senza consegna, la differenza diventa cinque. Occupazione quattro suggerisce ammissione senza capacità oppure un elemento sovrascritto. Esamina ready al primo fronte che fallisce.