Altifigence Academy

38 / 63 · Concetto

Equazioni di stato del registro a scorrimento

Esprimere lo scorrimento come transizione vettoriale e collegare profondità e latenza.

Leggere più flip-flop insieme

Un registroRegistro Memorizza uno stato di più bit. I registri sincroni del corso acquisiscono gli ingressi specificati al fronte di clock. Approfondisci a scorrimento di N bit con nuovo ingresso d al bit 0 ha questo stato successivo:

Qk+1={Qk[N−2:0],dk}Q_{k+1}=\{Q_k[N-2:0],d_k\}

Le parentesi graffe indicano la concatenazioneConcatenazione Accoda sequenze di bit. La larghezza risultante è la somma delle larghezze, non un’addizione numerica. Approfondisci RTL. Ogni bit legge lo stesso stato precedente: d non attraversa tutto il registro in un fronte. enable=0 mantiene l'intero vettore; reset imposta quello iniziale specificato.

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. Da q=000 si inserisce din=1 una volta, poi 0 tre volte. Il bit acceso passa q0→q1→q2 e scompare.

Verificare la concatenazione spostando un solo bit
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
din10..
q2 after0.10
q1 after010.
q0 after10..
q after2345001 → 010 → 100 → 000

Avanzate una volta con din=1 e tre con din=0: 001→010→100→000. Cambiare l'ingresso non modifica subito q, ma solo il valore atteso al prossimo fronte.

Quale flip-flop memorizza il singolo bit?

Il reset sincrono ha priorità su enable. Con enable=0, il valore memorizzato viene mantenuto. q=000; q_next = (2q + din) mod 8

Verificare i collegamenti con una formula numerica

Interpretando il vettore come unsignedUnsigned Interpretazione dei bit come intero non negativo. Il campo a n bit è 0–2^n−1 e può differire dalla lettura signed degli stessi bit. Approfondisci, la stessa transizione è:

Qk+1=(2Qk+dk) mod 2NQ_{k+1}=(2Q_k+d_k)\bmod2^N

Con N=3, Q=5(101), d=1, si ha 2⋅5+1=112\cdot5+1=11 e 11 mod 8=311\bmod8=3: il prossimo valore è 011. Questa forma numerica fornisce un riferimento diverso dalla concatenazione, utile per verificare l'implementazione.

Che cosa viene conservato?

I bit vecchi salgono verso l'indice massimo e i nuovi entrano al minimo. Dopo sufficienti ingressi validi, il registro contiene quello attuale e gli ultimi N−1. La stessa struttura serve per rilevare sequenze, creare ritardi semplici e convertire seriale in parallelo.

Aumentare la memoria non aumenta i bit trattati per ciclo: qui si accetta un bit per fronte valido. Ingresso parallelo, scorrimento multiplo e stop 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 richiedono ciascuno datapath e controlli specifici.

Prova tu

Per N=4, Q=1101, d=0, calcolate il prossimo Q con concatenazione e formula numerica.

Leggi la spiegazione

Concatenazione: {101,0}=1010. Numericamente: (2⋅13+0) mod 16=10(2\cdot13+0)\bmod16=10. Il precedente bit più significativo 1 esce dal campo memorizzato.

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