Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Implementazione in logica CMOS e passtransistor

Elettronica lineare e digitale: didattica ed applicazioni

Moderatori: Foto Utentecarloc, Foto UtenteDirtyDeeds, Foto UtenteIsidoroKZ, Foto Utenteg.schgor, Foto UtenteBrunoValente

1
voti

[11] Re: Implementazione in logica CMOS e passtransistor

Messaggioda Foto UtenteIanero » 1 mar 2018, 15:32

dadothebest ha scritto:La nego:
F=(D+\overline{B})\cdot(D+\overline{A})\cdot(\overline{A}+\overline{C})\cdot(\overline{B}+\overline{D})

Questa è F negata, non F.

Disegno il circuito...

Sarebbe corretto?


C'è qualche problema negli ingressi della rete di pull-up. Ad ogni modo prima di realizzarla in hardware si poteva semplificare l'espressione, riprova. :)

Per quanto rigurada i pass-transistor non so dove mettere mano, ho provato a cercare su internet ma ho trovato solo teoria e gli schemi del NOR e NAND, nient'altro. Non chiedo la pappa pronta ma un qualcosa con cui capire.


Intuitivamente come realizzeresti un multiplexer in pass-transistor? Scrivi anche la funzione logica.
Servo, dai a costui una moneta, perché ha bisogno di trarre guadagno da ciò che impara.
Euclide.
Avatar utente
Foto UtenteIanero
7.204 5 8 13
Master EY
Master EY
 
Messaggi: 3686
Iscritto il: 21 mar 2012, 15:47

1
voti

[12] Re: Implementazione in logica CMOS e passtransistor

Messaggioda Foto Utentedeltax » 2 mar 2018, 10:53

dadothebest ha scritto:
Per quanto rigurada i pass-transistor non so dove mettere mano, ho provato a cercare su internet ma ho trovato solo teoria e gli schemi del NOR e NAND, nient'altro. Non chiedo la pappa pronta ma un qualcosa con cui capire.

disclamair: non ho tempo per fare il circuito, e la soluzione che sto per darti potrebbe essere non ottimizzata.
Penso che partendo dalle due implementazioni classiche di AND e OR a pass transistor puoi sviluppare la tua funzione. Ci ho ragionato un po' e non mi smebra sia possibile ottimizzarla circuitalmente senza creare conflitto di nodi (non so se poi si possa semplificare dal punto di vista di pura algebra booleana), ma non è escluso comunque che la soluzione che sto per darti potrebbe avere un numero non minimo di transistor.
Segui questa immagine:
https://www.google.it/search?q=pass+tra ... 2JJH8wuymM:

Per le due funzioni B*!D e D*!C usa la AND, poi i due output mettili in OR sempre con il circuito in immagine. Noterai che hai bisogno di alcuni input negati per creare i circuiti, quello che puoi fare per ridurre la complessità è scegliere questi input in maniera intelligente in base alla tua funzione logica. In particolare puoi notare che nella funzione compare D e il suo negato, mentre input "singoli" sono A,B e C. Siccome nelle funzioni AND hai bisogno solo di uno dei due input che abbia contemporaneamente il suo valore e quello negato, scegli a questo scopo D, che appunto nella tua funzione compare sia come valore che come suo negato. Quindi avrai due circuiti AND: nel primo, l'ingresso che non necessita del suo negato sarà B, nel secondo !C (in realtà anche uno di questi due deve avere il suo negato, e ora vedrai perché).
Adesso hai la necessità di fare una OR tra gli output dei due AND, chiamiamoli output1 e output2. Sfortunatamente anche in questo caso hai bisogno di almeno uno dei due che abbia anche il suo negato. Quindi uno dei due circuiti AND precedenti deve essere ampliato, come nell'immagine, per dare anche il suo valore negato (4 transistor invece di 2) mentre l'altro può essere lasciato a dare solo la sua funzione senza negarla, con 2 transistor (ma attenzione, in questo caso uno tra B e D avrà bisogno del suo negato! come dicevamo sopra).
Il risultato di output1 OR output2, chiamiamolo output3, sarà messo in OR con !A. Una cosa importante da rimarcare qui è che nelle gate dei transistor devi mettere !A, perché se metti output3, che è già degradato da 2 stage di pass transistor, lo degradi ancora di più: è uno dei fondamentali problemi dei pass transistor, visto che l'nMOS transmette un 1 debole, e il problema deve essere minimizzato il più possibile evitando di collegare le uscite di un pass transistor al gate dello stage successivo del pass transistor.
Nel caso del nostro esempio, avrai due voltage drop. Assumendo il livello alto dei segnali Vdd e la tensione di soglia dei transistor Vt, nei primi 2 stage (AND) avrai output1 e output2 che avranno valori alti di Vdd-Vt. Output 3 avrà valore alto di Vdd-2Vt. Infine l'output finale, F, avrà valore alto Vdd-2Vt SOLO se metti !A come ingresso al gate dell'ultimo stage, facendo il contrario avresti valore alto di F pari a Vdd-3Vt.
A margine dell'esercizio, per risolvere i problemi sopracitati ci sono 2 modi: o usi level restorer, che caricano i nodi ai valori nominali quando alti; o usi la logica a transmission gate, dove al nMOS viene messo un parallelo di pMOS che permette di trasferire entrambi i valori logici forti. Ovviamente entrambe le soluzioni fanno aumentare il numero di transistor.
Avatar utente
Foto Utentedeltax
931 1 4 6
Sostenitore
Sostenitore
 
Messaggi: 562
Iscritto il: 12 apr 2013, 14:41

0
voti

[13] Re: Implementazione in logica CMOS e passtransistor

Messaggioda Foto Utentedadothebest » 3 mar 2018, 17:15

Ianero ha scritto:
C'è qualche problema negli ingressi della rete di pull-up. Ad ogni modo prima di realizzarla in hardware si poteva semplificare l'espressione, riprova. :)


\overline{F}=(D+\overline{B})\cdot(D+\overline{A})\cdot(\overline{A}+\overline{C})\cdot(\overline{B}+\overline{D})

Piccolo errore di trascrizione. Ho controllato se si potesse semplificare ma secondo me non può essere ridotta ulteriormente (è solo una mia personalissima opinione). Comunque nel testo dell'esercizio che solitamente sono molto precisi non c'è scritto di semplificarla quindi credo che il professore volesse farla rappresentare proprio così.
Questi errori quali sarebbero? #-o

deltax ha scritto:disclamair: non ho tempo per fare il circuito, e la soluzione che sto per darti potrebbe essere non ottimizzata.
Penso che partendo dalle due implementazioni classiche di AND e OR a pass transistor puoi sviluppare la tua funzione. Ci ho ragionato un po' e non mi smebra sia possibile ottimizzarla circuitalmente senza creare conflitto di nodi (non so se poi si possa semplificare dal punto di vista di pura algebra booleana), ma non è escluso comunque che la soluzione che sto per darti potrebbe avere un numero non minimo di transistor.
Segui questa immagine:
https://www.google.it/search?q=pass+tra ... 2JJH8wuymM:

Per le due funzioni B*!D e D*!C usa la AND, poi i due output mettili in OR sempre con il circuito in immagine. Noterai che hai bisogno di alcuni input negati per creare i circuiti, quello che puoi fare per ridurre la complessità è scegliere questi input in maniera intelligente in base alla tua funzione logica. In particolare puoi notare che nella funzione compare D e il suo negato, mentre input "singoli" sono A,B e C. Siccome nelle funzioni AND hai bisogno solo di uno dei due input che abbia contemporaneamente il suo valore e quello negato, scegli a questo scopo D, che appunto nella tua funzione compare sia come valore che come suo negato. Quindi avrai due circuiti AND: nel primo, l'ingresso che non necessita del suo negato sarà B, nel secondo !C (in realtà anche uno di questi due deve avere il suo negato, e ora vedrai perché).
Adesso hai la necessità di fare una OR tra gli output dei due AND, chiamiamoli output1 e output2. Sfortunatamente anche in questo caso hai bisogno di almeno uno dei due che abbia anche il suo negato. Quindi uno dei due circuiti AND precedenti deve essere ampliato, come nell'immagine, per dare anche il suo valore negato (4 transistor invece di 2) mentre l'altro può essere lasciato a dare solo la sua funzione senza negarla, con 2 transistor (ma attenzione, in questo caso uno tra B e D avrà bisogno del suo negato! come dicevamo sopra).
Il risultato di output1 OR output2, chiamiamolo output3, sarà messo in OR con !A. Una cosa importante da rimarcare qui è che nelle gate dei transistor devi mettere !A, perché se metti output3, che è già degradato da 2 stage di pass transistor, lo degradi ancora di più: è uno dei fondamentali problemi dei pass transistor, visto che l'nMOS transmette un 1 debole, e il problema deve essere minimizzato il più possibile evitando di collegare le uscite di un pass transistor al gate dello stage successivo del pass transistor.
Nel caso del nostro esempio, avrai due voltage drop. Assumendo il livello alto dei segnali Vdd e la tensione di soglia dei transistor Vt, nei primi 2 stage (AND) avrai output1 e output2 che avranno valori alti di Vdd-Vt. Output 3 avrà valore alto di Vdd-2Vt. Infine l'output finale, F, avrà valore alto Vdd-2Vt SOLO se metti !A come ingresso al gate dell'ultimo stage, facendo il contrario avresti valore alto di F pari a Vdd-3Vt.
A margine dell'esercizio, per risolvere i problemi sopracitati ci sono 2 modi: o usi level restorer, che caricano i nodi ai valori nominali quando alti; o usi la logica a transmission gate, dove al nMOS viene messo un parallelo di pMOS che permette di trasferire entrambi i valori logici forti. Ovviamente entrambe le soluzioni fanno aumentare il numero di transistor.


Ho provato a disegnare il circuito ma non ho capito cosa ci devo mettere in ingresso
Avatar utente
Foto Utentedadothebest
24 2 7
Frequentatore
Frequentatore
 
Messaggi: 226
Iscritto il: 25 nov 2013, 17:13
Località: Ascoli Piceno

0
voti

[14] Re: Implementazione in logica CMOS e passtransistor

Messaggioda Foto Utentedeltax » 3 mar 2018, 18:39

dadothebest ha scritto:Ho provato a disegnare il circuito ma non ho capito cosa ci devo mettere in ingresso

devi seguire le implementazioni delle immagini e adattarle ai tuoi ingressi, non c'è veramente nulla da capire/ragionare:

Avatar utente
Foto Utentedeltax
931 1 4 6
Sostenitore
Sostenitore
 
Messaggi: 562
Iscritto il: 12 apr 2013, 14:41

0
voti

[15] Re: Implementazione in logica CMOS e passtransistor

Messaggioda Foto UtenteIanero » 3 mar 2018, 18:43

dadothebest ha scritto: ...secondo me non può essere ridotta ulteriormente

F=\overline{D}\cdot B+\overline{D}\cdot A+A\cdot C+A\cdot D
F=\overline{D}\cdot B+A\cdot C+A\cdot (D + \overline{D})
F=\overline{D}\cdot B+A\cdot C+A
F=\overline{D}\cdot B+A

dadothebest ha scritto:Questi errori quali sarebbero? #-o

Quelli derivanti dall'errore di trascrizione.

dadothebest ha scritto: Ho provato a disegnare il circuito ma non ho capito cosa ci devo mettere in ingresso

Il mio consiglio di partire da un multiplexer rimane ancora :roll:
Servo, dai a costui una moneta, perché ha bisogno di trarre guadagno da ciò che impara.
Euclide.
Avatar utente
Foto UtenteIanero
7.204 5 8 13
Master EY
Master EY
 
Messaggi: 3686
Iscritto il: 21 mar 2012, 15:47

0
voti

[16] Re: Implementazione in logica CMOS e passtransistor

Messaggioda Foto Utentedadothebest » 4 mar 2018, 15:24

Ianero ha scritto:F=\overline{D}\cdot B+\overline{D}\cdot A+A\cdot C+A\cdot D
F=\overline{D}\cdot B+A\cdot C+A\cdot (D + \overline{D})
F=\overline{D}\cdot B+A\cdot C+A
F=\overline{D}\cdot B+A

Non avevo proprio notato quel raggruppamento... Ho disegnato il circuito con la nuova equazione semplificata:
\overline{F}=(D+\overline{B})\cdot\overline{A}

Ianero ha scritto:Il mio consiglio di partire da un multiplexer rimane ancora :roll:

Un multiplexer in pass-transistor non l'ho mai visto #-o , in fin dei conti non sarebbe lo stesso del disegnare lo schema completo?
deltax ha scritto:
dadothebest ha scritto:Ho provato a disegnare il circuito ma non ho capito cosa ci devo mettere in ingresso

devi seguire le implementazioni delle immagini e adattarle ai tuoi ingressi, non c'è veramente nulla da capire/ragionare:


Grazie per il disegno, non avevo capito quella cosa delle uscite degradate come si risolvono, provo a vedere qualche altro esercizio.
Avatar utente
Foto Utentedadothebest
24 2 7
Frequentatore
Frequentatore
 
Messaggi: 226
Iscritto il: 25 nov 2013, 17:13
Località: Ascoli Piceno

Precedente

Torna a Elettronica generale

Chi c’è in linea

Visitano il forum: Nessuno e 20 ospiti