42 / 63 · Concetto
Verifica dello scorrimento e allineamento dati-valid
Rilevare errori nascosti da schemi simmetrici e disallineamenti di valid di un ciclo.
Le lezioni sono gratuite. Iscriviti per salvare i progressi.
Scegliere sequenze che rivelino gli errori
Spostare solo 0000 o 1111 nasconde l'inversione di direzione. Usate schemi asimmetrici come 1000 o un singolo 1. Anche inizializzare sempre a zero può nascondere difetti di inizializzazione e mantenimento.
Un registroRegistro Memorizza uno stato di più bit. I registri sincroni del corso acquisiscono gli ingressi specificati al fronte di clock. Approfondisci a tre bit da 000 con ingressi 1,0,0 produce 001→010→100. La direzione opposta produce 100→010→001: differisce già al primo fronte.
Controllare il riferimento in due forme
Confrontate il modello numerico con l'RTL di sliceSlice Selezione di un intervallo contiguo del vettore, che determina larghezza e ordine del risultato. Approfondisci e concatenazioni a ogni fronte valido. Con N=3, otto stati e due ingressi danno solo 16 transizioni, tutte verificabili. Aggiungete separatamente le combinazioni reset/enable.
Ogni colonna registra un fronte di salitaFronte di salita Passaggio del clock da 0 a 1, distinto dall’intero intervallo di livello CLK=1. Approfondisci. Gli ingressi sono quelli immediatamente precedenti; gli stati indicati con «after» sono quelli subito dopo l’aggiornamento. Le colonne indicano l’ordine dei campioni, non il ritardo fisico di propagazioneRitardo di propagazione Tempo dalla variazione d’ingresso all’assestamento corretto dell’uscita. Equivalenza logica e proprietà temporali sono distinte. Approfondisci. Inizialmente q=000. Il secondo fronte ha enable=0: anche cambiando din, q mantiene 001. Contate separatamente fronti e accettazioni.
Mostra i dati della forma d’onda
| Segnale | Forma d’onda | Valori del bus |
|---|---|---|
| edge | 2345 | E0 → E1 → E2 → E3 |
| enable | 101. | |
| din | 10.1 | |
| q after | 2.34 | 001 → 010 → 101 |
Riproducete il diagramma: un fronte con din=1 dà 001; un altro con enable=0, din=0 mantiene 001. Riattivando enable e applicando din=0,1 si ottengono 010,101. Il modello tratta solo il registro dati; il vincolo di fermare valid con lo stesso enable è esaminato separatamente sotto.
Il reset sincrono ha priorità su enable. Con enable=0, il valore memorizzato viene mantenuto. q=000; q_next = (2q + din) mod 8
Valid fa parte del datapath
Se i dati si fermano mentre valid avanza, o viceversa, il ricevitore consuma campioni sbagliati. Bit d'uscita corretti da soli non dimostrano un'interfaccia corretta.
| Test | Comportamento atteso |
|---|---|
| Ingressi normali continui | Ordine corretto e latenza valida fissa |
| enable=0 intermedio | Dati e valid si fermano insieme |
| Reset intermedio | Eliminare la validità del frame precedente |
| Frame consecutivi | Distinguere fine del vecchio e inizio del nuovo |
Annotate il numero di accettazione per non confonderlo con il numero di clock. Un controesempio minimo con confine di frame è più utile che rileggere ripetutamente lunghe forme d'onda.
Prova tu
I dati scorrono solo con enable=1, valid invece a ogni clock. Quale ingresso mostra il difetto più facilmente?
Leggi la spiegazione
Inserite un fronte di stop enable=0 fra due dati diversi. valid arriva prima o si associa al dato sbagliato. Confrontate con un riferimento che applica la stessa condizione d’accettazione a dati e metadati.