Esiste una ben nota e ormai libreria di blocchi funzionali predefiniti di tipo sequenziali, che contiene i blocchi per tutte le funzioni sequenziali base.
I tipici blocchi funzionali sequenziali sono:
Un registro parallelo è un vettore di
Ad ogni ciclo di clock, il registro legge e memorizza nel suo stato la parola di
Se si usassero dei bistabili D trasparenti, durante il livello alto del clock il registro sarebbe esso stesso del tutto trasparente, e dunque non si comporterebbe come registro.
Un registro parallelo con comando di caricamento funziona esattamente come un registro parallelo, ma ha in aggiunta un ingresso di comando di caricamento
Un registro a scorrimento è una successione di
Ad ogni ciclo di clock, fa scorrere di un bit verso destra la parola memorizzata, perdendo il bit più a destra e aggiungendo a sinistra il bit presente sull'ingresso seriale.
Esistono diverse varianti e integrazioni, tra cui:
L'organizzazione interna della memoria e la struttura dei banche di memoria e dei banchi di registri prevedono generalmente che le uscite di due o più componenti siano collegate alle stesse linee di uscita.
Sono necessari opportuni elementi funzionali che garantiscano la non interferenza tra i moduli che condividono le stesse linee di uscita.
Il buffer tri-state è un circuito elementare modellabile come un contatto a tre posizioni:
L'uscita tri-state viene gestita da un apposito ingresso di controllo (Output Enable), che, se non attivo, forza lo stato di alta impedenza.
Definiamo come banco di registri i registri organizzati in una struttura a vettore.
Ogni registro è identificato da un indirizzo specificato su
Le operazioni eseguibili sul banco sono lettura e scrittura, dove si presentano/memorizzano in uscita i
Nel register file di RISC-V ci sono
Per quanto riguarda l'accesso in lettura, è sufficiente fornire l'indirizzo dei registri coinvolti e la lettura avviene ogni ciclo di clock, mentre per l'accesso di clock è necessario un segnale di scrittura esplicito
Di seguito lo schema delle porte di lettura e di scrittura.
La scrittura avviene sul fronte di salita del ciclo e quindi la lettura fornisce il valore scritto a ciclo precedente.