Altifigence Academy

21 / 24 · Concetto

Combina uno scoreboard con invarianti locali

Verifica valori, ordinamento, occupazione e stabilità durante gli stalli a partire dalle transazioni accettate.

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.

VerificaEsempi di errori
Uscita rispetto alla coda di riferimentoAritmetica, ordinamento, tag errati
Accepted-delivered=occupancyPerdita, duplicazione, falsa consegna
Payload stabile durante lo stalloSovrascrittura prima dell'accettazione
Occupazione entro i limitiOverflow o underflow della FIFO
Coda di riferimento vuota dopo il completamento del transitoRisultato 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.

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