Il registro utilizzato è un registro parallleo-serie cioè carica in parallelo ( tutto il byte in parallelo) e caccia in outout un bit alla volta.Il funzionamento lo potete trovare nelle sliode allegate al thread dove è postato il mio quaderno. Il clock collegato al registro non è altro che il clock della CPU; a ogni colpo di clock il registro cambia stato. Il registro può cambiare stati in due modi: o caricando i bit in parallelo modificando tutto il registro o shiftando verso destra. L'uscita corrisponde al bit posizionato nella posizione meno significativa del registro. Il segnale l/s è un segnale che serve per indicare al registro se deve acquisire i darti in paralello op se deve shiftare Come segnale di l/s ho utilizzato TRANSFER perchè secondo le specifiche quando transfer diventa alto l'interfaccia deve cominciare la trasmissione seriale...mentre TRansfer è basso il registro non shifta ma carica....Quando l'interfaccia genera ACK il TRANSFER è ancora basso quindi la CPU invia il dato sul DB e l'interfaccia accolgie il byte nel registro. Nel ciclo di clock successivo faccio diventare TRANSFER alto e il registro comincia a shiftare verso destra ed è insensibile ai bit messi in parallelo ai suoi ingressi. Il segnale TRANSFER può essere propagato ulteriormente alla linea telefonica(di cui non è richiesta nessuna implemetazione) come segnale di validità cioè la linea deve leggere la posizione meno significativa del registro( il bit meno significativo) solo mentre transfer è alto. L'uscita del registro è sempre il bit meno significativo ma ciò che vi è memorizzato può non avere senso se TRANSFER è basso .
P.S: L'unico dubbio è che non ricordo(mai saputo!) se l/s deve essere alto o basso per far shiftare il registro e viceversa; il problema però non esiste in quanto nel caso in cui il funzionamento fosse che il registro shifta per l/s basso basterebbe inserire una porta not su l/s.
Spero di essere stato chiaro
Fai ciò che vuoi : sarà tutta la Legge. Amore è la Legge, Amore sotto la Volontà.