570 likes | 714 Views
Calcolatori Elettronici Parte IV. Registri Progetto di Macchine Sincrone Contatori Registri a scorrimento. T 1. T 1. T 1. u 1. u 1. u 1. Registri. Un registro atto a memorizzare un dato tipo T a cardinalità k è una MS avente:
E N D
Calcolatori ElettroniciParte IV Registri Progetto di Macchine Sincrone Contatori Registri a scorrimento
T1 T1 T1 u1 u1 u1 Registri • Un registro atto a memorizzare un dato tipo T a cardinalità k è una MS avente: • k stati di uscita (u1,u2,…,uk) ciascuno associato ad un valore da memorizzare • t stati di ingresso (t>k) , T suddiviso in due sottoinsiemi: XN, con X=(x1,x2,…,xk) gli ingressi attivi per la memorizzazione; N=(n1,n2,…,nm) ingressi neutri per “mantenere l’uscita del registro, m1 T R U ….. nj conserva lo stato uj=f(xj) nel caso più generale
Ipotesi • Sequenza di ingresso di natura impulsiva • Basi corrispondenti agli ingressi neutri • b1x1b1 ….. b2x2b2 … b3x3b3 • Registro a Sincronizzazione esterna • Registro autosincronizzato
s=0 s=1 n1 n2 nk x1 x2 xk u q1 q1 q1 .. q1 q1 q2 .. qk u1 q2 q2 q2 .. q2 q1 q2 .. qk u2 q3 q3 q3 .. q3 q1 q2 .. qk u3 … … … … … … … … … .. qk qk qk qk q1 q2 .. qk uk Registro a S. E. I s I=(l1,l2,…,lk) s=(0,1) R
n x1 x2 xk u q1 q1 q1 q2 .. qk u1 q2 q2 q1 q2 .. qk u2 q3 q3 q1 q2 .. qk u3 … … … … … … .. qk qk q1 q2 .. qk uk Registro autosincronizzato Caso concreto: unica base e k ingressi Puramente impulsivi Gli istanti di caricamento sono determinati da uno degli impulsi X=(x1,x2,…,xk) N=(n)
Tempificazione dei Registri • Registri “latch” • Catturano l’ingresso per tutti il tempo in cui è presente una variabile impulsiva attiva • È valido finchè effettivamente gli ingressi sono impulsivi • Registri a “derivazione del fronte” • Es. Accoppiamento capacitivo • .. Per ottenere impulsi sufficientemente brevi
Tempificazione dei Registri (2) • Registri “edge triggered” • La variazione dell’uscita avviene in corrispondenza di una variazione di livello di una variabile impulsiva reale • Registri “Master Slave”
Modelli reali di Macchine Sincrone (1) • R è usato per memorizzare gli stati della macchina • I impulsivi • P uscite di posizionamento dello stato, impulsive e p=p(q,i) • U a livelli o imp. • Dritardo di posizionamento del registro D R M C P Q u I
Neutri Attivi Q0 Q1 Q2 … … Qn Q0 Q1 Q2 … … Qn Q0 Qx Qy … … Qz Stabili | p. sincrona Modelli reali di Macchine Sincrone (2) D R M C P Q I u
Tempificazione (1) • Occorre garantire che il ritardo D nel posizionamento dei registri sia maggiore della durata degli impulsi, di modo che lo stato non cambi durante la fase di posizionamento, d < D q i p D
Tempificazione (1) • Occorre garantire che il ritardo D nel posizionamento dei registri sia maggiore della durata degli impulsi, di modo che lo stato non cambi durante la fase di posizionamento, d < D q i d p D
Modello Sincronizzato dall’esterno s R D Non esistono problemi tipici delle Macchine a livelli (alee multiple, statiche) In quanto l’uscita P’ risulta inattiva (in assenza di impulso s) per il caricamento del registro occorre garantire che la variazione dei livelli non sia Sincrona con il fronte attivo di s es.. Apparecchiatura di clock a due fasi M C P Q I u
Modello Sincronizzato dall’esterno: uscite imp. s R D M C P Q I u
Esercizio • Si costruisca una rete nella quale entrano serialmente i bit di un codice decimale 8-4-2-1 a partire dal bit meno significativo e dalla quale esca un segnale che individui se i quattro bit costituiscono o meno una delle 10 parole-codice previste. ? Parola vera Parola falsa 0110
Specifiche • Si assegna ad un segnale a livelli x la rappresentazione del bit del codice, e ad un clock la tempificazione. • In sincronia con il 4 bit, z = 1 indica la correttezza del codice. • Macchina Sincrona a sincronizzazione esterna
Descrizione del Problema • z = 1 • 0000 • 0001 • 0010 • 0011 • 0100 • 0101 • 0110 • 0111 • 1000 • 1001 • z = 0 • 1010 • 1011 • 1100 • 1101 • 1110 • 1111
Paul&Unger S0= 0 S1= 1,2 S2= 3,5 S3= 4,6 S4= 7,8,9,11,12,13 S5= 10,14 4 6 1 2 3 5 7 10
0 0,1 1 1 0 2 3 1 0,1 0 4 5 0/1 1/0 0 0/1 1/1 Macchina a S.R.
0 1 000 101/1 101/1 001 - - 010 011 011 011 000 110 100 - - 101 010 010 110 101/1 101 111 110 110 Codifica degli Stati • Codificando gli stati con (nell’ordine: y3y2y1) • S0 = 101 • S1 = 010 • S2 = 111 • S3 = 011 • S4 = 110 • S5 = 000 Tabella in codice
RS 00 01 11 10 S S0 S0 S1 - S0 T S1 S1 S1 - S0 0 1 Fp 0 1 1 1 Infatti, per RS e T …
aD kj 00 00 01 01 11 11 10 10 S S S0 S0 S0 S0 S1 S0 S1 S1 S0 S0 S1 S1 S1 S1 S1 S1 S0 S1 S0 S0 Infatti, per D e JK … A=1
Tornando al progetto … • Scegliendo Flip Flop di tipo JK, bisognerà progettare 6 segnali di posizionamento: • J1= J1( y3y2y1x), K1= K1(y3y2y1x) • J2= J2(y3y2y1x), K2= K2(y3y2y1x) • J3= J3(y3y2y1x), K3= K3(y3y2y1x)
… ovvero per JK • Posso costruire mappe di Karnaugh per i segnali di posizionamento del JK e per le uscite!
y1x y1x 00 00 01 01 11 11 10 10 y3y2 y3y2 00 00 11 -1 1 - - - - - 1 - - 1 - 1 - 1 01 01 - 1 - 1 1 - 1 - 11 11 10 10 - - - - - 1 - 1 Per il primo FF JK ho: J1 = 1 K1 = 1
y1x y1x 00 00 01 01 11 11 10 10 y3y2 y3y2 00 00 - - - - - - - - - 1 - 01 01 - 1 1 - - - 11 11 10 10 - - - - 1 - - 1 Per il secondo FF JK ho: J2 ha diverse f.m. eq., Scelgo J2=y3
y1x y1x 00 00 01 01 11 11 10 10 y3y2 y3y2 00 00 11 -1 - 1 - - - - - 1 - - 1 - 01 01 - - - - 11 11 10 10 - - - - 1 - - 1 Per il terzo FF JK ho:
y1x 00 01 11 10 y3y2 00 1 1 - - 01 1 11 10 - - Per le uscite …. • Per quanto attiene le uscite, se si desidera un’uscita impulsiva, si ha che z’ = c z (y3y2y1x) • z si ottiene dalla seguente mappa
Contatori • Macchine fondamentali • Aritmetica • Funzioni di controllo • Diversi tipi di contatori • Tempificazione • Segnali di ingresso uscita
Contatore Astratto Generalizzato U • Macchina sincrona • .. Anche se la tempificazione interna può essere asincrona u/d div Counter-mod-M EN rp cp r l I
Esempio (2) cp 3 2 1 0 0 stato div rp
U u/d div Counter-mod-M EN rp cp r l I Contatore Astratto Generalizzato • Cp • Conteggio • u/d: up o down • EN: enable generale al conteggio • div • Divisore • Ho tutti 0 tranne un 1 tra i conteggi • rp • Ripple Asserito se ho “carry” oppure “borrow”
U div Counter-mod-M EN rp cp r l I Contatore Astratto Generalizzato (2) • U • Uscita • I • Ingresso omogeneo con U • L • Load: se attivo inizializza ad I l’uscita U • r • Reset, se attivo produce l’azzeramento di U • P: preset, pone il valoe M-1 ad U u/d
Sincroni e Asincroni • Asincrono • Macchina sequenziale avente come ingresso una variabile di conteggio, della quale conta solo i fronti di salita, di discesa oppure entrambi • Almeno uno dei bistabili non riceve in ingresso il segnale di conteggio ed il suo eventuale cambiamento dis tato è determinato solo dalla sua funzione stato prossimo, che dipende dallo stato degli altri bistabili • Sincrono • Macchina di Moore • Tutti i bistabili che costituiscono la memoria del contatore ricevono simultaneamente in ingresso il segnale di conteggio e tutti quelli che devono commutare commutano simultaneamente
Contatori Asincroni ( opp ) • Un contatore asincrono mod-n che conti i soli fronti di salita o di discesa può essere realizzato con 2.n stati 0 1 2 3 4 5 6 7 0
Contatori Asincroni ( ) • Un contatore asincrono mod-n che conti i fronti di salitae di discesa può essere realizzato con n stati, se n è pari 0 1 2 3 0
Contatori Asincroni ( opp ) • Un contatore asincrono mod-n che conti i fronti di salitae di discesa può essere realizzato con 2.n stati, se n è dispari 0 1 2 3 4 5 0 1 2 Il ritorno allo stato iniziale È possibile solo se L’ultimo stato è dispari
rp rp rp 0 1 9 cp cp cp mod10 mod10 mod10 Ripple Counter 3 cont. mod. 10 Mod 103 … il contatore del gas …. … non tutte le variazioni di stato dei flip flop sono sincrone con cp Contatore asincrono mod bk
Ripple counter mod 2k Contatore Mod-23 Ripple counter JK con J=K=1 funziona come T, contatore mod-2 Il ripple viene generato quando raggiungo 1. Collegamento in cascata di macchine asincrone
Contatori sincroni • Possono essere progettati con la teoria classica delle macchine sincrone pilotate da un impulso di sincronismo. 000 001 010 011 100 101 110 111 LSB: 0101 2 c.: 0011, passa Da 0 a 1 quando la 1.c. È 1. MSB 000 0 11110 Passa Da 0 a 1 quando la 2.c. è 1.
Contatori sincroni • Usando ff T sincroni come v. di stato, ho le funzioni di posizionamento: T0=1; T1= Q0; T2= Q0 Q1 Generalizzando… Tk=Q0 Q1 ….. Qk-1 000 001 010 011 100 101 110 111
Parallel out in a out b Parallel in Registri a Scorrimento • In/out • Ingresso e uscita seriale • a abilitazione allo shift • Parallel In/Out • Abilitato da b
1 1 1 0 0 0 1 1 0 1 1 1 0 0 0 1 1 logico 1 1 1 1 0 0 0 1 1 aritmetico Shift logico e aritmetico
0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 1 0 1 0 0 1 0 Proprietà dei registri a scorrimento 9 Right Shift Register 9 DIV 2 = 4 Left Shift Register 9*2 = 18
0 0 0 0 0 0 1 1 0 0 0 0 1 1 0 0 Serializzazione e Rotate b Rotate Left Rotate Right