Altifigence Academy

37 / 63 · Concetto

Ingresso seriale e confini dei frame

Definire ordine e fronti validi e calcolare la disposizione nella conversione seriale-parallela.

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 accettatidinq aggiornato
11001
20010
31101
41011

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.

Dall’ingresso seriale allo stato parallelo
Mostra i dati della forma d’onda
Dati della forma d’onda: ogni carattere è un intervallo; il punto mantiene lo stato precedente; p è un ciclo di clock.
SegnaleForma d’ondaValori del bus
edge23452E0 → E1 → E2 → E3 → E4
reset10...
din0101.
q after23452000 → 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.

acceptk=validk∧readykaccept_k=valid_k\land ready_k

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.

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