Algebre booleane e progetto logico dei calcolatori digitali/Circuiti di un calcolatore digitale (a): differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
wikifico |
m Bot: Correggo errori comuni (tramite La lista degli errori comuni V 1.1) |
||
Riga 42:
Per '''S<sub>i</sub>''', si può scrivere:
::::<math>S_i=(\bar X_i \bar Y_i+X_i Y_i) r_i+(\bar X_i Y_i+X_i \bar Y_i) r_i</math>
:::::<math>=\overline {(X_i\oplus Y_i)}+(X_i\oplus Y_i)\bar r_i</math>
Riga 54:
::::<math>r_{i+1}=\bar X_i Y_i r_i+X_i \bar Y_i r_i+X_i Y_i \bar r_i+x_i Y_i r_i+X_i Y_i r_i+X_i Y_i r_i</math>
:::::<math>=(\bar X_i+X_i) Y_i r_i+(\bar Y_i+ Y_i) X_i r_i+(r_i +\bar r_i) X_i Y_i</math>
:::::=<math>=X_i Y_i+Y_i r_i+r_i X_i</math>
Riga 60:
:::::<math>=X_i Y_i\oplus Y_i r_i\oplus r_i X_i</math>
Per comodità
::::<math>S_i=(X_i\oplus Y_i)\oplus r_i</math>
Riga 110:
Nella figura posta accanto '''n=3'''.
Si noterà che la lunghezza massima che i segnali devono attraversare è di '''n+1''' stadi
Per certe condizioni (X=2<sup>n+1</sup>-1, Y=1 per es.) la lunghezza di propagazione del riporto è effettivamente uguale a questo valore..
Riga 166:
::<math>Si\ ha\qquad X+C_1(X)=X+\bar X=2^n -1</math>
Infatti, se si costruisce la somma
:::::<math>\begin{cases}S_k=X_k\oplus\bar X_k\oplus r_k=r_k\oplus 1=\bar r_k\\r_{k+1}=X_k\bar X_k+r_k(X_k\oplus \bar X_k)=r_k\end{cases}</math>
Riga 244:
[[File:Complementatore a 2 seriale per numeri binari con segno.png|right]]
Nella seguente figura è descritto invece un complementatore seriale a 2 per numeri binari con segno: la sua caratteristica è determinata dal fatto che se il numero è negativo (bit del segno uguale ad 1), esso esce in output complementato a 2, se l'input invece è positivo
Si fa l'assunzione che il bit del segno arrivi come primo bit nella sequenza di input: gli seguiranno i bits delle cifre significative in ordine di peso crescente.
Quando il bit del segno, arriva in input
Nel frattempo un segnale di controllo del segno selezione la '''via c'''.
Riga 266:
Se consideriamo il circuito dell'accennata figura notiamo che il Flip-Flop interviene in due porte di AND: in una i bits di '''X''' entrano in forma negata e nell'altra no.
Ora, consideriamo un input seriale a partire dai pesi più deboli, i bit '''0''' non cambiano lo stato iniziale del Flip-Flop la cui uscita Z=0 interdcde la pota AND relativa negata dei bits di X, e questo fino all'arrivo del primo bit 1, dopo il quale lo stato del Flip-Flop cambia; si ha la situazione inversa della precedente
Si ha inoltre:
Riga 360:
Si piò fare un'altra convenzione e definire un bit di disparità, tale che il numero totale degli 1 sia dispari.
Con questa nuova convenzione
Questa combinazione risulta essere proibita, e la sua presenza può servire a mettere in evidenza certi difetti di funzionamento (come per esempio un difetto di alimentazione).
Riga 366:
Si ha la corrispondenza:
:::::<math>\begin{cases}P=1\ \ \ \ \sum_{i=1}^n X_i \ \ \
e quindi:<br>
Riga 413:
La cifra di parità '''P<sub>s</sub>''' di '''S=X+Y''' è quindi la somma modulo 2 delle cifre dparità '''P<sub>x</sub>''' e '''P<sub>y</sub>'''di '''X''' e '''Y''' e dei riporti '''r<sub>k</sub> (k=0, ..., n-1).
:''Nota''-Quando la cifra '''P<sub>s</sub>'' calcolatamediane la somma effettivamente ottenuta e la cifra '''P<sub>s</sub>''' calcolata mediante la (1.7.1) sono differenti, vi è errore. Poiché tutte le operazioni aritmetiche in un calcolatore sono effettuate, in ultima analisi, mediante addizioni
== Circuito per il confronto di 2 numeri binari ==
Riga 493:
Un comparatore parallelo sarà costituito da '''n''' circuiti comparatori in cui gli '''n''' bitsdi '''X''' e '''Y''' verranno confrontati separatamente e contemporaneamente.
La prima coppia di bits '''x<sub>i</sub>''' e '''y<sub>i</sub>''' (i=n-1,n-2,...,0) che differisce
Nel seguito viene costruito un circuito comparatore in parallelo di 2 numeri di 2 bit: un circuito relativo a parole a '''n''' bits, avrà l'uscita uguale a quello di figura 2.5.2 e 2 circuiti '''NAND''' in più per ogni coppia di bit addizionale.
Riga 511:
::::<math>\overline {\overline {x_1\bar y_1+x_0\bar y_0(x_1+\bar y_1)}}=</math>
::::<math>\overline {\overline {x_1\bar y_1}\cdot \overline {x_0\bar y_0 \overline {\overline {(x_1+\bar y_1
::::<math>\overline {\overline {x_1 \bar y_1}\cdot \overline {x_0 \bar y_0(\overline {\bar x_1\cdot y_1})}}</math>
Riga 585:
Se un contatore somma ogni qual volta arriva un impulso in input, esso pende il nome di '''forward counter''' o '''up counter'''. Se un contatore assume inizialmente una certa configurazione rappresentante un numero ed ad ogni impulso in input sottrae da questo numero, esso viene chiamato '''reverse counter''' o '''down counter'''.
Se un contatore è provvisto di due terminali di input in modo da addizionare se gli impulsi arrivano ad uno dei terminali di input e da sottrarre per gli impulsi che arivano all'altro input
I contatori vengono classificati anche in base alla maniera di memorizzare il numero del conteggio.
Riga 596:
Vi sono inoltre contatori capaci di esprimere il conteggio in altri codici binari (p.es.codice Gray). Pe ottenere le equazioni booleane di un contatore binario puro si può pocedee in due modi.
=== Primo modo per la determinazione booleana di un contatore binario ===
Line 639 ⟶ 638:
:::::<math>\begin{cases}x_k{''}=x_k\oplus\coprod_{i=0}^{i=k-1}\bar x_i\\r_{k+1}=\coprod_{i=0}^{i=k}\bar x_i\end{cases}\ \ \ \ \ (2.7.3)</math>
Le relazioni (2.7.2) rappresentano il meccanismo di un '''u-counter''' e le (2.7.3) quelle di un '''down-counter), entrambi un codice binario puro. Si noterà che si passa dall'incremento al decremento complementando le variabili che compaiono nella ritenuta.
Line 662 ⟶ 660:
Se si chiama con '''E''' la variabile d'entrata del circuito, con l'indice '''n''' si indica il tempo dell'orologio '''(n≥0)''', si ottengono le seguenti equazioni:
::<math>\ \ up -counter:\ \ \ \ \ x_k^{n+1}=x_k^n\oplus E^n (\coprod_{i=0}^{k-1}x_i) _n</math>
::<math>\ \ down- counter:\ \ x_k^{n+1}=x_k^n\oplus E^n (\coprod_{i=0}^{k-1}\bar x_i) _n</math>
[[File:Contatore a 16 stadi (up-counter).png|right]]
Line 695 ⟶ 693:
Comde si è appunto supposto nelle figure A e B).
Il disegno logico di un contatore binario può essere ricavato utilizzando una tavola della verità. La tavola mostra non solo le relazioni tra i successivi stati dei '''Flip-Flop''' ma anche gli stati di
[[File:Tvola della verita di un up-counter.png|right]]
Line 705 ⟶ 703:
Le tre colonne relative agli '''A''' mostrano la sequenza desiderata degli stati dei tre flip-flop. Le ultime tre colonne mostrano i valori veri richiesti per gli '''input''' '''a<sub>3t</sub>''', '''a<sub>2t</sub>''', '''a<sub>1t</sub>''', capaci di cambiare lo stato del contatore.
In queste tte colonne
Questi '''0''' e questi '''1''' sono ottenuti dalla commutazione dello stato dei '''Flip-Flop''' indicata nelle tre colonne relative agli '''A'''.
Line 791 ⟶ 789:
Quindi '''a<sub>1s</sub>''' e '''a<sub>1r</sub>''' sono rispettivamente la somma e il riporto di un '''half-adder''' i cui input sono '''A_1''' e '''p'''.
In modo equivalente
Il contatore binario utlizzante degli '''half-adder''' e dei '''flip-flop SR''', viene mostrat in figura '''F'''.
Line 822 ⟶ 820:
[[File:Tabella 2.8.2.png|right]]
Queste considerazioni e la conoscenza delle proprietà dei '''Flip-Flop T''' che vogliamo utilizzare per realizzare il circuito
Possiamo scrivere le equazioni di input '''a<sub>4t</sub>, a<sub>3t</sub>, a<sub>2t</sub>, a<sub>1t</sub>''' direttamente dalla tabella '''2.8.2'''.
Line 868 ⟶ 866:
::::::<math>a_{4t}=A_1 A_2 A_3 p+A_4 A_3 p</math>
[[File:Decade per codici ad eccesso di tre.png|right]]
Line 912 ⟶ 909:
Da cui:
::::::<math>y_i=x_n(x_{n-1}\oplus x_n)..(x_{k+1}\oplus x_{k+2}) x_{k+1}1\ 0\ 0.. 0\ 0</math>
::::::<math>y_{i+1}=x_n(x_{n-1}\oplus x_n)..(x_{k+1}\oplus x_{k+2})\bar x_{k+1}1\ 0\ 0.. 0\ 0</math>
Line 954 ⟶ 951:
Ponendo:
::<math>R^n_{-1}=\bar B^n_0\ \ \ \ \begin{cases}R^n_{-1}=0, R^n\
Si ha allora per <math>0\le k \le m</math>
Line 962 ⟶ 959:
<math>\bar R^n_{-1}=\oplus \sum_{k=0}^m\ R^n_k</math>
Nelle figure (2.9.4 e 2.9.4bis) sono rappresentati 2 contatori in codice binario riflesso ottenuti applicando le formule '''(2.9.3)''' o considerando una decomposizione analoga a quella fatta nel caso dei contatori in binario puro. È da notare inoltre il segno '''-''' su tutte le <math>R_i</math> salvo quella di rango '''k-1''' e la presenza della variabile <math>R_{-1}</math> rappresentata da un Flip-Flop supplementare di parità.
Questo Flip-Flop di rango '''-1''', commuterà ogni volta che si applicherà un '''1''' al suo ingresso.
Line 979 ⟶ 976:
Si può equivalentemente rappresentare il comportamento del circuito per mezzo di un grafo composto da vertici rappresentativi dello stato interno e da archi orientati tra le coppie di vertici.
Gli archi orientati sono rappresentativi dei valori di ingresso che determinano il passaggio dello stato interno dasl vertice di partenza a quello di arrivo, e recano, separati da una barra, oltre a questi valori
Nell'esempio in esame si ha quindi il grafo posto di fianco:
Line 989 ⟶ 986:
[[File:Diagramma di stato di un contatore decimale.png]]
Un contatore decimale
Se come visto nel '''§ 2.7.3''' con <math>a_{it}</math> (i=1,2,3,4) si rappresentano i valori di input capaci di cambiare lo stato dei quattro rispettivi Flip-Flop
::::::<math>a_{2t}=A_1\ A_2\ p</math>.
|