Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
vuoi
o PayPal
tutte le volte che vuoi
Descrizione del circuito
A A A A +3 2 1 0 B B B B =3 2 1 0 C S S S S3 2 1 0 Come descritto in precedenza il circuito è il seguente: Cin A S A S0 0 FA0 B B0 Cout C 0 Cin A S A S1 1 FA1 B B1 Cout C 1 Cin A S A S2 2 FA2 B B2 Cout C 2 Cin A S A S3 3 FA3 B B3 Cout Questa soluzione circuitale presenta il vantaggio di essere perfettamente modulare, ovvero facilmente estendibile per operazioni a più bits, ma potrebbe essere più lenta di una soluzione operata mediante l'algoritmo di somma di prodotti. Se il precedente circuito fosse, ragionevolmente, inserito in un'architettura a quattro bits, il bit C sarebbe escluso dal risultato ma sarebbe da intendere come un bit, o flag, di errore che, eventualmente, avvisa che il risultato ha ecceduto i limiti dell'architettura. Tramite un Full Adder è anche possibile realizzare un circuito sottrattore: infatti si considera la seguente espressione -A B = A + (-B) Per i numeri rappresentati al calcolatore si è già visto come l'operazione di cambio di segno siaequivalente al complemento a due. Dunque si ottiene -A B = A + (-B) = A + (B + 1) = A + B + 1
Quindi basterà collegare tutti i bits di B a delle porte NOT prima di collegarli agli ingressi dei Full Adder e mettere a uno il C del primo Full Adder, che era stato precedentemente incollegato a zero.
ALU La ALU è un circuito di logica combinatoria che presi in ingresso due numeri a k bits, può restituire il risultato di questi due operandi attraverso operazioni aritmetiche o logiche; nel caso in esame le operazioni fra cui è possibile scegliere sono la somma logica e il prodotto logico bit a bit, la somma e la sottrazione.
Come visto in precedenza si partirà con un componente base che lavora sui singoli bit; si partirà subito dallo schema logico poiché la tabella di verità risulta troppo pesante
A ∪ A B ∩ A B C in A+B FA' C in -A B FA'' C
Si noti come i due Full Adder che realizzano rispettivamente la somma e la sottrazione tra bits siano
collegati allo stesso C : questo segnale sarà da impostare a zero qualora si voglia invisualizzare correttamente la somma mentre a uno per avere la sottrazione.
Per permettere una più agevole lettura in uscita, i vari risultati, cosı̀ come i flags di carry, di tutte le operazioni saranno smistati tramite un MUX con due selettori AB y MUX C in FA S S1 00 C in C MUX out FA S S1 0
Lo schema precedente rappresenta una ALU a un bit che può essere impiegata, in cascata a altri componenti uguali, per creare una ALU a k bits.
La ALU a k bits prenderà in ingresso due numeri a k bits e ne restituirà uno a k bits, in base all’operazione scelta senza interrogare l’utilizzatore in merito all’interpretazione del risultato: insieme al risultato, la ALU dovrà essere in grado di fornire all’utilizzatore anche dei flag, come il carry o l’overflow, per aiutarlo a capire se c’è stato un errore.
Esempio 14. Si realizzi una ALU a quattro bits, grazie al componente
realizzato in prece-denza.
La ALU a un bit verrà rappresentata come segue
C in yA ALU CB out2S 16
Un primo schema per la ALU a quattro bits è il seguente
C inCin yA y 0A0 ALU 0B B0 CoutS 2S Cin yA y 1A1 ALU 1B B1 CoutS 2S Cin yA y 2A2 ALU 2B B2 CoutS 2S Cin OyA y 3A3 ALU 3B B3 CoutS 2S C
Per i futuri impieghi della ALU, potrebbero essere interessanti due flags che indichino rispet-tivamente se il numero in uscita è negativo oppure nullo. Il flag che indica se il numero ènegativo coincide con il bit più pesante del risultato, poichè i numeri in complemento a dueche hanno tale bit a uno sono sempre negativi.
Il flag che indica se il numero è nullo è realizzabile mettendo in NOR tutti i bit del risultatocosı̀ che il flag sia uno se e solo se tutti i bit in ingresso sono a zero.
Lo schema finale dell’ALU a quattro bits è il seguente
17C inCin yA y 0A0 ALU0B B0 CoutS 2S Cin yA y 1A1 ALU1B B1 ZCoutS 2S Cin yA Ny 2A2 ALU2B B2 CoutS 2S Cin OyA y 3A3 ALU3B B3 CoutS 2S
Lo schema è il seguente:
S A Q S Q Q B R Q
Circuito bistabile S/R
Simbolo bistabile:
(a) (b) S/R
Se, all'istante iniziale si ha S = 1 ed R = 0, si può concludere che la porta A darà in uscita un zero indipendentemente dal valore di Q; l'uscita di tale porta imposta il valore di Q a zero, così da fare uscire zero dalla porta B e settando il valore di Q a uno.
S A Q Q B R
Si noti come, una volta in questi stati, le uscite mantengano il proprio valore anche una volta che S viene riportato a zero.
S A Q Q B R
Se adesso viene impostato R a uno lasciando invariato S si arriva a una situazione speculare rispetto al caso in cui le combinazioni erano speculari.
S A Q Q B R
Anche in questo caso, rilasciando R le uscite non cambiano stato.
S A Q Q B R
La combinazione di...
disattivato, mentre è equivalente al bistabile S/R quando l'Enable è a uno. Questo e il bistabile S/R sono detti componenti asincroni in quanto l'uscita, se cambia, cambia non appena viene cambiato lo stato degli ingressi; nella pratica questi componenti presentano dei difetti dovuti alla non istantaneità della commutazione degli ingressi. I problemi dati dallo stato di transitorio degli ingressi si possono superare andando a costruire delle reti basate su un segnale di sincronizzazione nelle quali lo stato degli uscite può variare solo in specifici momenti, dettati dal segnale sincronizzante. Queste reti vengono chiamate reti sincrone e il segnale sincronizzante viene chiamato clock. In particolare, le reti sincrone valutano gli ingressi solo durante i fronti di salita del clock e agiscono di conseguenza lasciando invariato il proprio stato fino al successivo fronte. Il clock è un segnale digitale a onda rettangolare di periodo fissato e i fronti di salita sonoingressi entrambi a uno porterebbe entrambe le uscite ad essere zero e,visto che una rappresenta il complementare dell'altra, non è un comportamento accettabile; inoltre se si passa dalla combinazione S = 1, R = 1 a quella dove S = 0, R = 0 il comportamento del circuito non è prevedibile. Il comportamento del bistabile S/R può essere riassunto come segue:
S R Q(t) Nome 0 0 Q(t-1) Hold 0 1 0 Reset 1 0 1 Set 1 1 - Impredictable Se il circuito presente, appena acceso, presenta in ingresso la combinazione S = 0, R = 0, le uscite non avranno un comportamento prevedibile, quindi le reti sequenziali reali presentano delle sotto-reti dedicate alla inizializzazione.
Domanda 8. Descrivere latch S/R, FF SR, FF D, FF JK, FF T e spiegare la differenza tra reti sincrone e asincrone.
Risposta
Latch S/R: Il Latch S/R è un'evoluzione del bistabile S/R e il suo schema è il seguente:
S Q
Q
En R Q
Q
Questa rete permette di realizzare lo stato di Hold solo con il segnale di Enable.
Gli istanti in cui il segnale passa dallo stato basso allo stato alto sono 20CLK.
Il primo componente sincrono preso in esame è un'ulteriore evoluzione del Latch S/R il cui simbolo e tabella di verità sono:
S | Q(t) | S | R | Q(t-1) | Nome | |
---|---|---|---|---|---|---|
0 | 0 | Q(t-1) | Hold | |||
CLK | 0 | Reset | ||||
0 | 1 | Set | R | Q | 1 | Impredictable |
Simbolo FF S/R
Tabella di comportamento FF(a) (b)
Un possibile schema per la realizzazione del Flip Flop S/R a partire dal Latch S/R è il seguente:
QS S Q S Q En EnR QR Q R Q CLK
Se il segnale CLK è a zero, il primo Latch S/R è attivo mentre il secondo è disattivo; in questo stato le uscite del primo Latch cambiano in risposta alla combinazione in ingresso, ma le uscite Q e Q del circuito non vengono modificate in quanto il secondo Latch è in stato di Hold. Appena CLK passa a uno, il primo Latch si disattiva mentre si attiva il secondo cambiando le sue uscite in base ai suoi ingressi. Durante lo stato in cui CLK=1 le uscite del circuito non possono cambiare in quanto le uscite del primo Latch.
ovvero le entrate del secondo, non cambiano visto che tale componente è in stato di Hold. Appena CLK torna a zero vengono ascoltati gli ingressi ma non vengono abilitate le uscite del secondo Latch. Si noti come questa soluzione circuitale non funzioni dal punto pratico in quanto la porta NOT all'ingresso dell'Enable del primo Latch introduce un ritardo che sfasa la sincronizzazione. Flip Flop D Un componente più semplice del Flip Flop S/R e quindi più funzionale è il Flip Flop D, realizzato a partire da un FF S/R secondo il seguente schema: QD S Q CLK D Q(t) Nome 0 0 Set R Q 1 1 Reset Schema FF D Comportamento FF D (a) (b) to FF D Flip Flop J/K Il prossimo componente sequenziale di base è il Flip Flop J/K, ottenuto dal FF S/R grazie a uno schema tale per cui si riesce a riutilizzare la combinazione S=1, R=1 nella quale si realizza il Toggle, ovvero la negazione, delle uscite. Lo schema è il seguente: S QS J Q CLK CLK R R Q K Q Schema FF J/K Simbolo FF J/K (a) (b) Il suo comportamento èil seguente
J | K | Q(t) | Nome |
---|---|---|---|
0 | 0 | Q(t-1) | Hold |
0 | 1 | 0 | Reset |
1 | 0 | 1 | Set |
1 | 1 | Q(t-1) | Toggle |
Flip Flop T
Per chiudere l'insieme dei componenti sequenziali di base si presenta il FlipFlop T, semplificazione del FFJK il quale è in grado di realizzare solo lo stato di Hold e di Toggle
2 | 2Q | T | Q(t) | Nome |
---|---|---|---|---|
0 | Q(t-1) | Hold | K | Q |
1 | Q(t-1) | Toggle |
Simbolo FF T
Comportamento
(a)
(b)
FF T
Domanda 9. Descrivere l'automa di Moore.
Risposta
Certi tipi di circuiti sequenziali possono essere descritti facilmente grazie al metodo degli automi a stati finiti.
Esempio 15. Si pensi al circuito che controlla un motore elettrico. Un motore elettrico può