37 / 63 · Concetto
Ingresso seriale e confini dei frame
Definire ordine e fronti validi e calcolare la disposizione nella conversione seriale-parallela.
Le lezioni sono gratuite. Iscriviti per salvare i progressi.
Trasformare l'ordine temporale in posizioni del vettore
Un ingresso seriale trasferisce un bit per fronte valido. In 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 con q<={q[1:0],din}, partendo da 000 e ricevendo 1,0,1,1:
| Bit accettati | din | q aggiornato |
|---|---|---|
| 1 | 1 | 001 |
| 2 | 0 | 010 |
| 3 | 1 | 101 |
| 4 | 1 | 011 |
Il nuovo bit entra a destra; i precedenti salgono d'indice. Il registro è una finestra sugli ultimi tre bit: il quarto espelle il primo.
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. La prima colonna è reset. Dei successivi 1,0,1,1 accettati restano in q solo gli ultimi tre. Osservate nella colonna finale l'espulsione del primo bit.
Mostra i dati della forma d’onda
| Segnale | Forma d’onda | Valori del bus |
|---|---|---|
| edge | 23452 | E0 → E1 → E2 → E3 → E4 |
| reset | 10... | |
| din | 0101. | |
| q after | 23452 | 000 → 001 → 010 → 101 → 011 |
MSB-first e LSB-first sono regole di comunicazione
Acquisendo in questo modo gli otto bit di un valore inviato a partire dal MSBMSB Bit di peso maggiore. L’indice dipende dalla direzione dichiarata: non è necessariamente il numero più alto. Approfondisci, si ricostruisce il vettore originale. Inviarlo dal LSBLSB Bit di peso minore. Vanno controllati insieme direzione di scrittura e convenzione degli indici. Approfondisci inverte la disposizione: bisogna cambiare collegamenti o riordinare alla fine. È un protocollo concordato fra trasmettitore e ricevitore, non una semplice opzione grafica.
I dati da soli non definiscono i frame
Serve stato per sapere quale fronte contiene il primo bit, quanti ne sono stati accettati e quando consumare il risultato. Normalmente si usa un contatore con valid o done. Se ci sono pause, si contano i dati accettati, non i clock.
Con ready/validHandshake Contratto che conferma il trasferimento quando valid del mittente e ready del destinatario valgono 1 allo stesso fronte. Include il mantenimento dei dati in attesa. Approfondisci, shift e conteggio si aggiornano insieme solo ai fronti che soddisfano la condizione sopra. Abilitare solo uno dei due disallinea dati e lunghezza. Il laboratorio con ingressi continui è il caso semplice che accetta ogni fronte dati.
Prova tu
In un frame a otto bit, dopo il quarto bit valid è 0 per due cicli. Con ready=1, come agiscono contatore e registro?
Leggi la spiegazione
In entrambi i cicli accept=0: contatore e registro mantengono insieme lo stato. Il prossimo bit valido è il quinto. Contare solo i clock potrebbe annunciare il completamento prima di ricevere tutti i dati.