•
Esercizio 1 - Simulazione di un Invertitore CMOS con
SwitcherCADIII
l.l
Disegno schematico del circuito.
La descrizione a livello transistor dell'invemtore CMOS et riportata nella Figura seguente:
JI ~~:
'" L:E'
T -'(L)N
MN1
-
Pcr una data tecnologia, gli unici parametri su cui il progettista può agire per modificare le caratteristiche
dcll'invcrtitorc sono le dimensioni dci due MOS. Dal corso di teoria, c' ben noto che in logica CMOS è
opportuno scegliere le lunghC'LZC di canale pari alla minima dimensione consentita dalla tecnologia
costruttiva, pari a: 2 x lambda. Inoltre, per garantire la simmetria delle caratteristiche dell'invertitore, molto
spesso si impone la condizione: {W/L)p = 2.5 (WIL)n , in modo da compeosare la differente mobilità di
elettroni e lacune. In definitiva, rimane un solo grado di libertà nella scelta delle dimensioni dei MOS, come
evidenzia la Figura seguente:
Si deve inoltre rammentare l'ulteriore vincolo, di tipo tecnologico, che impone che tutte le dimensioni
geometriche siano multipli interi di /ambda. Nel nostro caso faremo l'ipotesi che il dispositivo a canale N
abbia area minima, ovvero: Wn = l/ambda. Si ha inoltre, arrotondando per difetto: Wp = 7 /ambda.
Completato il dimensionamento del circuito possiamo procedere al disegno dci circuito in swcad, per poi
effettuarne l'analisi sia statica ehe dinamica.
!BL
Attiviamo swcad cd iniziamo il disegno di un nuovo schema, cliccando in alto a sinistra suU'icona
In
alternativa dal mcnù principale selezionare (File -> New
A questo punto e' necessario
aggiungere un nuovo componente allo schema, cliccando sull'icona
In alternativa e' possibile dal menù
principale selezionare (Edi! -> Component), o, ancom, utiliZ7..are il tasto funzionale F2. Compare la maschcra
relativa alla selezionc dei componcnti:
~ '0.'" "'I "'-",,,,,,,
r:J
-.,..,_o. -_...
-- --....- '
•
.-,.,•
.~
}
~
~
•m
~
"'"
.~
.
-~
z.
_
Esercizio 1 - Simulazione di un invcnilore CMOS oon SWi1CheTCAOIII
Selezioniamo omos4 per instanziare un NMOS in cui sia accessibile anche il terminale di substrato.
Posizioniamo il MOS all'interno dello schema cliccando con il tasto sinistro dci mousc; utilizziamo infine il
tasto destro del mouse (o premete il tasto di Ese)per terminare l'operazione. A questo punto lo schema
!-':.;:~_..._ _...
dovrebbe essere simile a quanto mostrato in fi g"W1l
r--J
'
.
j~:~OS
.
. h, . . .. .
E' ora necessario completare il circuito, introducendo nello schema il PMOS, il generatore di tensione che
rappresenta il segnale di ingresso dcll'invcrtitore ed il generatore di tensione di alimentazione.
Iniziamo con il PMOS. Procedendo come visto poc'anzi, utilizziamo l'icona che consente di aggiungere un
nuovo componente allo schema :[) o il tasto funzionale F2. Compare nuovamente la maschera precedente,
relativa alla selezione dei componenti analogici , fra cui scegJjamo pmos4. Dopo aver posizionato il PMOS
nel circuito, provvediamo ad attivare nuovamente la maschera di selezione dei componenti, fra cui
selezioniamo: voltage
--_.
·.,,
•- '
•
--- ---..
•
"•
~
~
-ilii...
-
'*'"
"<
~
Piazziamo ncl nostro circuito due IStanze del generatore di tensione: una per il seb,'llale di ingresso cd una pcr
l'alimentazione. Lo schema dovreb~. ~ 9.~~to. P.~!IJ .~~s~~ .~ip.]i)~. <! 9.~ty. !l10strato in fi gura:
.. .
"'.. .....
:j;o.;IIL
: . ;.1'
.. .. .
.. .
PIIOS.
,
:. :,
···· · P~1 · • ··::::· : . ~~:
:~v~:
~ir
: : ri~~ : ....
::::':Y::.i.
Per completare il circuito dobbiamo aggiungere il nodo di massa; a tal fine è possibile utilizzare l'icona: ~
In alternativa e' possibile dal menù principale selezionare: (Edit -> Piace GND), o, ancora, digitare sulla
tastiera il carattere G.
Infine, completiamo i collegamenti cliccando l'icona l..:;. in alternativa utilizzate il tasto funzionale F3 o il
menù Edit). Il circuito complessivo. s~~ s.~ ~l ~. ~ .q~~?~~t.ra~?I}~!I~ ~~ra seguente:
...
..:..... i
~
.
y . ,'
3
Esercizio ] - Simulazione di un invertitore CMOS oon SwitcheICADIII
In caso di errore, potete utiliuarc l'icona
~
~
er annullare l'uhimo comando; l'icona Jr,
r eliminare un
elemento dallo schema e l'icona
spostare un componente.
A questo punto è necessario specificare i parametri dei MOS e dei generatori di tensione. Clicchiamo con il
tasto destro del mouse sul MOS a canale N. Compare la maschera seguente, che serve a definire i vari
attributi del componente.
M O~f[T
MI
!!
Il
I
~I
PIolo _.IoIlSf'ET
~T~
-.
I
;;;;;;
fMls
_I
MMFtT
M=....
-I
--'lo
o
'"
----I
,...-~~~~~·
......., .I
-~I
Cliccando sul tasto Pick New MOSFET compare la finestra mostrata in figura, che ci consente di
selezionare il modello da associare al MOS. Nel nostro caso sceglieremo la sigla oret cui corrispondono i
parametri della nostra te~~!?g.i~ !l~ . llJcm.
~. I .çt
MO 'i fEl
El ,
A questo punto, nello schema elettrico, le indicazioni relative al MOS a canale N appariranno come mostrato
nella Figura seguente:
E' ora necessario definire i valori di larghezza e di lunghezza del canale. Cliccando con il tasto destro sulla
indicazione oret del MOSFET appare la finestra mostrata in Figura, che ci consente di specificare i valori di
WediL:
[ nl"" ne ... "'ClI",e "" !<Il
El
Irfet \1/: 1.50 L:1.[iì
Il circuito complessivo, a questo punto, sarà simile a quanto mostrato nella figura seguente:
4
EsercUio 1 - Simulazione di un in vertilore CMOS con SwilCbetCADlII
r :.
; ~': :
! - .+\:
. ...,... ...
..
..
1. -
-
Per il PMOS procediamo in maniera analoga, con l'unica avvertenza di selezionare, come modello, la sigla
pfet e di imporre come W il valore di 3.5J.l1Il.
Prima di procedere oltre sarà necessario impostare i due generatori di tensione presenti nel circuito. Iniziamo
con l' impostare i nomi di questi due generatori, premendo il pulsante destro sul nome di ciascuno di essi e
impostando il nomc Vin per il generatore di ingresso e Vdd per il generatore relativo all'alimentazione.
La seconda operazione riguarda l' impostazione del valore di tensione DC per ciascun generatore. Premiamo
il pulsante destro sul simbolo del generatore Vdd ed impostiamo un valore DC di 5V, come mostra la
seguente figura.
Procedete in modo analogo impostando un valore di OV per il generatore Vin (il valore effettivo del
generatore verrà specificato in seguito, al momento di effettuare la simulazione del circuito).
Lo schema elettrico sani ora simile a ~uanto mostrato in fig ura.:_
. .. ... ....• . . : : : : : : : :.1
Per completare lo schema, c' 1QP.:~rtuno assegnare dci nomi mncmonici ai nOOi più signHicativi dci circuito.
~ in alternativa e' possibile utilizzare il tasto funzionale F4 o anche utilizzare
il menù Edit). Compare la finestra di Figura, in cui inseriamo il nome prescclto per il nodo di ingresso (ncl
nostro caso: In):
A tal fil e utilizziamo l'icona:
r:J
Nel Name
Dopo aver posizionato l'etichetta sulla linea di ingresso, possiamo provvedere ad aggiungere una ulteriore
label per il nodo di uscita. Si ottiene in guesto modo il circuito fmale, mostrato in Figura:
In:: -
:\/DD
+. " . .
w-1.5u Uo1.OU. . . fIV .
5
Esercizi.., 1 - Simulaziune di un invertitull' CMOS oon
Swit<;~rCADlIl
Et ora necessario salvare il file, assegnando un nome mncmonico al circuito, utilizzando il menù: File ->
Save As. Possiamo, a questo punto, trnsforrtUlTe il disegno schematico in una netlist SPICE. A tal fme
-> Write to Disk.
utilizziamo il menù: File ->
Per visualizzare il listato SP'IC'E':~t
schema et riportato in figura:
corrispondente al nostro
l Out In o o uht W-1.5u l-l. Ou
2 NOOI In Out NOOI pfet W- 3.5u L- l Ou
in In O
(]V
O NOOI O '5V
.!!IOdel NHOS NMOS
.!!IOdel PMOS PWlS
• Lib E :-swcADIlt,l ib,,=,mp'-Steoudard .!!I08
.back"nno
.end
/.2
Analisi Statica
In questo paragrafo effettueremo l'analisi delle caratteristiche statiche dell'invertitore CMOS disegnato nel
paragrafo precedente.
Per effettuare l'analisi statica e' necessario semplicemente deflnire una direttiva che indichi il tipo di
I
simulazione da effettuare. A tal fine selezioniamo l'icona: .or (in alternativa possiamo utilizzare il menu:
Edit -> Spice Directive; oppure possiamo digitare la lettera S). Compare una finestra in cui possiamo
specificare un comando chc verrà aggiunto nclla ncllist SPICE. Nel nostro caso il comando sarà .DC che
consente di effettuare un'analisi stati ca:
f d,t I .... on Ihp
~ch,'m
, ••.
l parametri dopo .IX: sono:
Il nome del generatore variabile
Il valore iniziale di tensione
e
Il valore finale di rensione
• L'incremento di tensione
L'help di swcad vi offre, in ogni caso, la possibilità di consultare la sintassi di tutti i comandi SPICE
implementati nel simulatorc. A tal fine provate a selezionare la finestra di help come mostrato di seguito (in
e
•
~;mma
;;0~:~~~~
alternativa potete premere F I-(nella
fmestra princi~c del pr~gm
Bo ~ ... 5ItrUD l'" ~ tiIb
:-
{;15 (LboU:~m 'r]
A questo punto scegliete index e fate doppio click su .DC. Compare il seguente aiuto sul direttiva SPICE:
6
b ercino 1 - Simulazione di un invertitore CMOS çon SwitcherCAD lll
.DC - Perform aDC sollrCe swee., analy'sls
l'hi ~
DC " ... l l""i~ " bil .. """"p i n, t ko De
lt i .. y .... r.1 ror c "'l'"h.., tha ne
OlajI l ifi oor or p l e t t i ,,!! tu.
danc'to>MMjc cu ........ <>f • t r . .. jSUlr f or _ I
p<lI f c:rDò
~
""Iy .. o r
~
tnn ~f ..,.
C.... c ti •• c f n
"""...,.. .
_ d ri "", ti _
.
.dc <uc . .... > 'V~ h rt> <Vrtop> <V 'OCT'
SVDt .. :
+
j ".rcn_Z> <V"ta rt2> {V"""p2> <Vi acrZ>j
l'he <sroooa) '" e 1tl>er n indepeJl<leU vo l t oge o r
c y ,"u ot <::oan;a tha , 'c ..., b.. ~p t f ..... <Vctarl.> t "
<vn op> ; .. <V;nc r> atoop .. ; U O.. I .. t.he ' 0 11<>00;,.,
A questo punto possiamo iniziare la simulazione, cliccando I ·
alternativa possiamo utilizzare
il menu: Simulate -> Run)
Compare a questo punto una finestra in cui selezionare le fonne d'onda da visualizzare al tennine della
simulazione . Nel nostro caso selezioniamo la tensione di uscita Y<9ut).
or;
S8ed:\II........ m~
ClIHki. mtl!UI:
CaocoI
. . .~0;1!.~_.,~_;;;...::. .:'~____-===~
Completata la simulazione compare, oltre alla frnestra con lo schema elettrico, una finestra con i risultati
dclla simulazione stessa. E' possibile aggiungere ulteriori fanne d'onda cliccando con il mousc i nodi dello
r
scbema elettrico. 11 SimbolO " consente l' aggiunta di una corrente, mentre il simbolo
ci consente
l'aggiunta di una tensione . È anche possibile eliminare una fonna d'onda selezionata m precedenza tenendo
premuto il tasto Control mentre si effettua il cliek. La figura seguente mostra il risultato della simulazione
S./N
~'''''-r- ~
,
-.
~
~
~
''I,
~ . "V
3.''''
~
r-
--
I .W
".~
j -
u,uv
..
o.,
~
l .. uv
-1 .W
z.uv
"
..
2.,V
~ ..
-
uv
,
~ . ~v
4 ..11V
4 .W
b .UV
Si noti ehe l'escursione logica è completa, con Voh =OV e Vo/= Vdd. La caratteristica è moltre quasi
perfettamente simmetrica rispetto al valore Vdd/2 .
Sfortunatamente, swcad non consente di visualizzare la derivata di una foona d'onda . Pertanto, per valutare i
valori di Vih c Vii dobbiamo procedere manualmente, dopo aver stampato il grafico della caraneristlea di
trasferimento. Lasciamo al leUore la valutazione di tali valori ed il loro raffronto con le formule studiate in
teoria. Valutiamo ora la corrente assorbita dall'invertitore. A tal fine , attiviamo la finestra che mostra [o
schema circuitale, e posizioniamo il eursore del mouse s ul generatore di tensione di alimentazione:
7
Eserewo 1 - Simulazione di un invertilore CMOS con SwitcllerCAD1J1
1:4 "''0'7
d"
-
-
--
. . . . . . '!'In
: : :oy . .
.. M'I .
Pcr convenzione, swcad considera positiva la corrente entrante nel generatore, ~r cui il grafico della l(Vdd)
mostra valori negativi. Per visualizzare
generatore, posizioniamo il cursore del mouse
nella fin estra che mostra le forme d'onda, in
sulla scritta I(Vdd)
Effettuando un click con il tasto dcstro dci mouse .
finestnl seguente, che consente di definire una
espressione algebrica da rappresentare graficamente. Nel nostro caso, la fun zione da rapprescntare è
semplicemente: - l(Vdd)
r""
L'andamento della corrente assorbita dall'invcrtitore è mostrato in Fib'llra. Si noti che la corrente assorbita è
nulla per Vin < VI e per Vin> Vdd-VI. 11 valore massimo di corrente si ha per V;n ~ Vdd!2; lasciamo allettare
il calcolo della corrente massima ed il confronta fra il valore calcolato cd il risultato della simulazionc.
:,. ... ,
E
x
"I\'d~l
)1101'"
'1 °1....
I
I
U OI"
f
,
I
I
" 01....
I ~ O IlA
\ ~ O IlA
12011A
'"~
I
.> ~
"~
>1·
o.W
U.bV I .W
I.~y
, .W BV
J.W J .~V < N
,
.
- ..,
~s~
Per completare l'analisi statica dell'mvertttorc CMOS c mteressante analizzare la earattcnstlca di
trasferimento dci circuito per diffcrenti tensioni di alimentazione. A tal fine è opportuno introdurre degli
opportuni parametri nel circuito da simulare. Come primo passo, (utilizzando l'icona: .• 1'" o digitando la
lettera S) introduciamo nello scbema un comando .PARAM, in cui viene definito il nome del parametro ed il
suo va1ore:
8
Eser<:i zio I - Simulazione di un in vertilore CMOS coo SwilcherCADlll
l d iI I ,,~, OR Iho ,chem","c
I·I""&"'V.~
In questo caso, il nome del parametro è Vsupp/y ed il suo valore è fissato a 5V. Possiamo ora modificare il
generatore di tensione di riferimento, eome mostra la figura seguente:
oc .......,.,']:
I (;'~)
s-.fI~ 1
-I
In questo modo, la tensione di riferimento sarà uguale al valore del parametro Vsupply. Infine, modifichiamo
il comando .DC come mostrato in figura, in modo da variare la tensione di ingresso fra O e Vsupp/y con
passo Vsupp/y/200
tM I,.,
'or, ,1\.
'" ,,,,,. ,'o
Si ottiene in questo
:.~: vlnO~.., «v...~tC.·1)
:
. MZ . . . . . . . - . .
...
..
,r:
W!o<l.Iu 1.-:1.0...
Invitiamo il lettore a simulare il circuito per Vsupp/y=5V, verificando ehe i risultati siano identici alla
precedente simulazio ne. Per analizzare il circuito con un differente tensione di alimentazione è sufficiente
modificare il comando .PARAM, assegnando un valore differente al parametro Vsupp/y.
In fine, provi il lettore ad eseguire una simulazione parametrica facendo assumere a Vsupply i valori 1.8v,
2.5v, 3.3v, e 5v con la direttiva SPICE .STEP.
1.3
Analisi Dinamica
Per studiare le caratteristiche dinamiche dell'invcrtitorc CMOS, partiamo dallo schema elettrico realizzato al
tcrmine dell'esercitazione precedente. Per effcttuare una corrctta analisi statica è necessario stabilire il carico
che l'invcrtltorc deve pilotare. Nel nostro caso assumeremo come carico un analogo inverter CMOS (fanout= 1) ed inoltre ipotizzcrcmo la presenza di una capacità di l OfF, che porta in conto sia le capacità
drain-substrato dei due MOS che formano l'invertitore, sia l'effetto della linea di interconnessione che
collega i due invertitori. Rimandiamo all'esercitazione sul layout delI'inverter un calcolo più accurato del
valore di questa capacità.
Dopo avere richiamato in swcad lo schema elettrico della precedente esercitazione, modificatelo in modo da
ottenere il circuito mostrato in Figura:
9
&m:izio l-Simulazione di un invertitore CMOS con Switc he.cAD lII
Per modificare il circuito è opportuno dapprima spostare a destra il generatore di tensione (utilizzando per il
l$)i o il tasto funzionale F8) per poi copiare i due MOS che costituiscono l'invertitore
di carico (util izzando per il comando duplicate l'icona t~J o il tasto fun zionale F6).
comando drag l'icona
Per introdurre il condensatore C l è possibile utilizzare l'icona ..L. o digitare il carattere C. Per definire il
valore della capacità, cliccate con il tasto destro sulla C in basso a destra del condensatore, attivando la
finestra di figura:
I
n ' ~,
n....
~" I ~ ..
I", l 1
,........,
r.
Lil
r, ..
r ....
r ......
~ l'''"
•
Dobbiamo ora definire il comportamento in tmnsitorio del generatore di ingresso. Clicchiamo con il tasto
destro sul generatore c selezioniamo il pulsante Advaneed. Imposteremo uno stimolo di tipo VPULSE, come
mostrato nella seguente figura:
.~
• nO" "
'-
_ ",," • •
~.
,~
....
~
~
_..__ . _
f'lLSE,..,V2,_ t_'Wt ..."",... _
r -..-~_r,..'.T_""""""",
r l>PtII
."
_"""
_,f,.lO
f..,J
''''AIlI
r -"""N...I
....
....."~, _
. .. r (
_ _ _>h_
In questo modo definiamo un generatore di tensione di tipo impulsivo. l parametri indicati sono:
• Ii valore di tensione basso - Vinitia/
• Ii valore di tensione alto - Von
• Un tempo di ritardo per la prima della transizione basso-alto - Tde/ay
• /I tempo di salita - Trise
• Il tempo di discesa - T/ali
• Ii tempo durante il quale la tensione si trova a livello alto - Ton
• Ii periodo del segnale- Tperiod
Nel nostro caso: il livello d i tensione basso è di OV, quello alto coincide con il parametro Vsupply che
rappresenta la tensione di alimentazione, i tempi di salita e di discesa sono d i O. lns, il periodo è di 3ns, il
segnale generato è ad onda quadra (il tempo durante il quale la tensione si trova a livello alto è pari alla metà
del periodo) e la prima transizione O-l si ha al tempo t=O.2os.
IO
EserciriQ 1 -Sim\.llazione di un invertiton: CMOS oon SwitcheICADll1
Da notare che il campo denominato Make this information visible nn schematic non è selezionato, per evitare
che l'ingombrante scritta: pu/se (O, {Vsupp/y}, 0.2ns, 100ps, 100ps, 1.5ns, 3ns) sia visualizzata sullo schema
elettrico,
Dobbiamo ora introdurre nello schema il comando SPICE relativo ad una simulazione in transitorio, Lo
schema da cui siamo partiti già include la direttiva .DC utilizzata in precedenza per effettuare l'analisi statica.
Possiamo dunque semplicemente modificare tale direttiva, cliccando sulla scritta con il tasto destro del
mouse. I parametri da inserire sono quelli mostrati in Figura:
Il comando .TRAN corrisponde ad un'analisi in tr.msitorio. I parametri dopo .TRAN sono:
• L'intervallino di tempo con cui verranno salvati i dati della simulazione
• 11 tempo complessivo di simulazione
Si ottiene in
I
_-
....
.
:
.. .
~tef!.~:
.
,;,~~~~
.
la!~~~§~~~~§g~~~~~~~~~~~~~e
Possiamo ora eseguire
maniera analoga a quanto visto nella esercitazione precedente. Il risultato
Figura:
H
)
."
~"'
\1olll!
•.sv
;w
di uscita, operando in
simulazione è riportato in
="
.~
•.w
1.W
,w
,
v.':
2 .• ':
,
I.W
,.w
,W
V.W
·Q .W
O .D n ~
1."30,7
D.6n.
0.9 ••
1.2n.
I. ~ ...
1. Su
~.l n s
>Am
~.1no
1.1".
.
.
I risultati della simulazione
eVidenzIano la sunrnetna del tempi di propagaziOne.
Questi ultimi possono
essere valutati accuratamente effettuando uno zoom sulle forme d'onda. Ad esempio, la figura seguente
riporta una vista espansa
propagazione: Tphl=62ps.
le formule approssimate
riportate sul libro di testo, cd il raffronto fra i risultati analitici e le simulazioni .
AI fine di valutare la potenza dissipata dall'invertitore aggiungiamo alle fonne d'onda visualizzate la corrente
di dmin dci PMOS M2 (a taJ fme è sufficiente cliccare con il mouse sul dispositivo e selezionare quindi
11
Esercizi.., l - Simulazione di un invenilorc: CMOS con SwitehctCAOIII
id(M;~) ) .
Per visualizzare la potenza istantanea dissipata dall'invcrtitore, posizioniamo il cursore del mouse
mostra le fonne d'onda, in corrispondenza della scritta id(M2):
EffetMmdlo un click con il tasto destro del mouse si attivala finestra che consente di definire una espressione
algebrica da rappresentare graficamente. Nel nostro caso, poiché la tensione di alimentazione è di 5V, la
funzione da rappresentare è semplicemente: 5 * id(M2). La forma d'onda della potenza istantanea dissipata
...
'0.
' _w
....,
>.•
o•
0.0
"
"
, .OY
•.0.
o.,.
_1.0.
. ....
_
1.10 .
. ..........
, .•• •
, .•••
,.-
.. , ...
1 ._
" '_
n_
l.",
Si noti che si ha dissipazIOne di potenza, m pratica, soltanto ID com spondcnza della tranSIZIOne O- l
dell'uscita, durante la quale la capacità equivalente all'uscita dell'invertitore viene caricata daJ PMOS. Il
contributo alla potenza dissipata dovuto alla non-idealità del segnale di ingresso (tempi di salita c di discesa
diversi da zero) è in questo caso trascurabile. Per valutare la potenza dissipata dall'invcrtitore dobbiamo
valutare il valore medio della potenza istantanea, con un intervallo di integrazione pari al periodo del segnale
di ingresso. A tal fine posizioniamo il cursore del mousc nella fmestra che mostra le forme d'onda, in
corrispondenza sulla scritta 5 * id(M2) ed effettuiamo un click con il tasto sinistro del mouse, tenendo
contemporaneamente premuto il tasto Contrai. Compare la fmestra di Figura:
1t1..... SWt:
lo.
I l'IIlIrYeIE~
I..
--
RMS·
lo.IJIr.5JB
liI·anl51
Nella fincstrd. sono riportati l'intervallo di integrazione (fra O c 3n.'\, c quindi pari ad un periodo dci segnale di
ingresso) ed il valore medio della fonna d'onda, paria: Pd=O.25mW. Anche in questo caso, lasciamo al
lettore il compito di calcolare analiticamente il valore deUa potenza dissipata, utilizzando le formule
approssimate studiate durante il corso di teoria, ed il raffronto fra risultati analitici e simulazioni.
12
Esercizio 2 - Layout di un invertitore CMOS con Microwind2
2.1
Disegno thllayout - approccio fuJ/~lIStom
In questa esercitazione realizzeremo il layaul di un invertitore CMOS, utilizzando illayout editor microwind.
Faremo riferimento ad una semplice tecnologia ad 1J.U1l. con singola tasca di tipo N (N-weif) caratterizzata
dalla disponibilità di due livelli di metaL
In microwind tutti i parametri e le regole di progetto che caratterizzano la tecnologia con cui verrà realizzato
illayout sono definiti in Wl opportuno file di tecnologia. Il file di tecnologia che utilizzeremo nel seguito è
denominato: edu.ru!.
Le regole di progetto più importanti definite ncl file di tecnologia prcscclto sono le seguenti (potete
utilizzate il vostro editor preferito (ad esempio il notepad) per aprire il file di tccnologia c vedere in dettaglio
tutte le regole implementate):
Dimensioni minime
Melal2 (secondo livello di metal) : 4 lambda
Metall (secondo livello di meta/) : 3 lambda
Poiy (poiisilicio) .- 2lambda
Diffusioni (sia di tipo N che P) : 3 lambda
Contatti (fra metai l e diffusioni) : 2 iambda
Via (fra metalJ e meta/2) : 2 lambda
N-well: /3 lambda
Distanze minime
Metal2-Melal2 : 3 lambda
Metall-Metall : 3 lambda
Poiy-Poly : 3 lambda
Ndiff-Ndiff: 3lambda
Pdiff-Pdiff: 3 lambda
Contacl-Conlact : 3 lambda
Via- Via .- 3 lambda
Nwell-NweJJ : 181ambda
Regole di "Composizione"
Estensione minima Nwell allorna a Pdiff: 6 lambda
Distanza minima Nwell-Ndiff: 5lambda
Estensione minima del Poly oltre la regione di gote di un MOS: 2lambda
Estensione minima Diffosione oltre lo regione di gote di un MOS : 4lambda
Distanza minima Via-Contaci : 4 lambda
Distanza minima Via-Po!y : 4 lambda
I parametri parassiti più importanti definiti nel file di tecnologia sono:
Resistenze
Poly .- 25 ohmlquadro
Metall : 0.075 ohmlquadro
Meta!2 : 0.040 ohmlquadro
Capacità verso il substrato (per unità di area)
Poly su ossido sottile (gare) .- 2.3 fFlJ1m2
Poly (interconnessione) : 0.070 fFlJ1m2
NdifJ .. 0.400 jF/pm2
PdifJ . OAOO jF/pm2
MeralJ .- 0.028jFlj1m2
Metal2 : 0.013 jFlj1m2
Esercizio 2 - Layout di un invertitorc CMOS con Microwind2 .
Capacità verso il substrato (per unità di lugheu.a)
Poly (interconnessione): O.032p'/pm
Ndiff .. 0.050 jFlpm
Pdiff .. 0.060jFlpm
Meta/! : O.042jF/pm
Metal2." O.036jF/pm
Come noto dal corso di tcoria, le resistenze sono aSSCb'llatc in ohm/quadro. Pcr le capacità si portano in
conto, con pesi differenti, sia l'area della regione che il perimetro. Per le capacità delle regioni diffuse che,
come noto dal corso di tcoria dipendono non-linearmente dalla tensione, i valori si riferiscono alla
condizione worst case in cui la tensiooe ai capi della capacità è nulla. Ad esempio, consideriamo un
rettangolo di polisilicio avente lunghezza: T~}J.Dl e larghezza: H=IJ.1m. Per la valutaziooe della resistenza
parassita abbiamo: N (numero di quadrati) = T/H =' 6, da cui si ricava: R = 6 * 25 = 150 obm.
Per quanto riguarda la capacità parassita verso il substrato abbiamo: Area = T'" H = 6 ).1m2; Perimetro = 2 *
(T+H) = 14 J.1m, C = 6*0.070 + 14*0.032 = 0.42 + 0.45 = O.87fF
Analizzercmo più in dettaglio il problema dell'estrazione dei parametri parassiti nel paragrafo successivo.
~
Siamo ora pronti ad operare con microwind. Attiviamo il programma cliccando sulla icona:
11 primo passo da compiere consiste nella scelta del file di tecnologia. A tal fine dal menù "File"
selezioniamo "Sclcct Foundry" e scegliamo il file denominato: edu.rul. Nella parte inferiore della fmestra di
tecnologia:
"-.'~.. bar":
l
••
A destra della finestra principalc di microwind compare una "palette", in cui sono disponibili dei comandi
(parte superiore della palette) ed in cui sono inoltre evidenziati diversi tipi di layers. llayers che utilizzeremo
nel seguito sono: metal2 (blu), metall (azzurro), I.!ontatti metall-diffusioni (bianro), polisilicio (rosso)~
diffusione P (giallo), diffusione N (verde), Nwell (verde tratteggiato). Da notare che non tutti i layers sono
riportati nella palette (non è riportato, ad esempio, il layer per le vie di collegamento fra metall e metal2;
vedremo in seguito come operare per disegnare una via di collegamento fra metall e meta12).
I comandi disponibili nella parte superiore della "palette" sono mostrati nella figura seguente:
14
Esercizio 2 - LayoUI di un invertitme CMOS con Microwind2.
della~;Y~O~u;t~;~:V,,,ti'to,,,.
Siamo ora pronti ad iniziare il vero e proprio '
Le dimensioni dei dispositivi che compongono
CMOS sono quelle già utilizzate nella precedente
esercitazione in cui abbiamo effettuato la simulazione dell'invertitore CMOS a livello transistor. Per il MOS
a canale N: (W/L)=(312), mentre per il PMOS: (W1L)=(712).
Il layout fmale cui vogliamo pervenire è mostrato nella figura seguente:
Il layout è compreso fra due linee orizzontali di metall: quella superiore è dedicata alla tensione di
alimentazione (Vdd), mentre quella inferiore rappresenta la linea di massa Il MOS a canale N è posto in
prossimità della linea di massa, mentre quello a canale P è nelle adiacenze della linea di alimentazione.
Questa disposizione è dettata sia dalla necessità di semplificare i collegamenti, sia della necessità di disporre
un numero adeguato di prese dì substrato in prossimità dei dispositivi, al fine di prevenire fenomeni di
lutch-up.
Sia il PMOS che il NMOS sono progettati in modo tale che la linea di gate (in poly) corra verticalmente, in
modo da semplificare al massimo il collegamento fra le due gate. Un contatto poly-metall consente di
applicare il segnale di ingresso, sulla sinistra del layout, sia in metall che in poly. l segnale di uscita è
disponibile in metall, sulla destra dellayout.
Vediamo ora in dettaglio i passi da seguire per realizzare il layout. Dopo aver attivato microwind, il primo
passo consiste nel caricare il file di tecnologia (e2.rul). Possiamo ora iniziare a tracciare il rettangolo di
metall che rappresenterà la linea di massa A tal fine clicchiamo sulla palette e selezioniamo Metall, per poi
tracciare un lungo rettangolo di altezza pari a 5 lambda (la lunghezza effcuiva dci rettangolo potrà essere
fissata al termine della esercitazione, in modo da adattarla a quella dci Iayout complessivo). Per disegnare il
MOS a canale N, utilizziamo illasto .
di MOS
Compare la finestra di Figura in cui, dopo avere
(in questo caso a canale N) e le
unità di misura (in lambda), è necessario specificare i valori di W e di L. 11 valore minimo di W utilizzabile
nel generatore di MOS di microwind è dì 4 lambda, per cui sceglieremo questo valore riservandoci di
modificare manualmente in seguito la larghezza di canale del dispositivo.
15
Esercizio 2 - Layout di un invertiton: CMOS oon Microwind2.
l •...,'i'.,..,_",,,
1'11'-0
Posi:doniamo il dispositivo in prossimità dclla linea di massa, come mostrato in Figura:
E' ora opportuno disegnare il contatto di suhstrato del NMOS. A tal fine utilizziamo nella palette il tasto
adibito alla generazione di contatti fra Pdiff e Metall:
contatto
PdiIT-rr.."lull
-::i~
-u::: ::
~ ~
*...,.,.~
-&- nI .fio '\I «
Piazz iamo il contatto sulla linea di metal1 , come mostrato in Figura:
Possiamo ora avvicinare il MOS a canale N alla linea di massa, al fine di compattare il layout, per poi
collegare il source del NMOS a massa. 10 questa operazione possiamo utilizzare il tasto "move" della barra
dci comandi: i> . In questa fase dobbiamo prestare attenzione a non violare alcuna regola di progetto. In
particolare, la regola più stringente da rispettare è quella che impone una distanza minima di 4 lambda fra
diffusioni N (come quelle di source c drain del NMOS) c diffusioni P (come quella del coniano di substrato).
Si giunge in questo modo al layout di figura:
16
Es~rcirio
2 - Layoul di un invertiloI1: CMOS cOn Minowind2 .
Per la verifica dclla corrcttezza dclle regole di progetto possiamo utilizzare il tasto it della barra di
comandi. In easo di errori, il layout può essere rapidamente modificato utilizzando sia vari eomandi della
toolbar, sia i comandi daJ menù Edit:
.::;:.!S~ ~
--_.._M
-- -"'"
- .
, "''""
"'""
"'"
~
............__
_ f l.L _t:
•
~
-w-~
...,..,
Possiamo ora passare al disegno del PMOS, realizzato in maniera simile al MOS a canale N, con l'ausilio del
tasto adibito alla generazione di MOS nella palette. Come mostra la Fib'Ura seguente, il PMOS deve essere
posizionato nel layout in corrispondenza del NMOS, avendo cura di rispettare la regola di progetto che
impone una distanza minima di 5lambda fra Ndiffed Nwell (il PMOS è stato reso perfettamente simmetrico
rispetto al NMOS, con l'ausilio del comando: Edit => Flip and Rotate => Flip Horizontal/y)
E' ora necessario aggiungere il eontatto ehe collegherà la Nwell con la tensione di alimentazione. Dobbiamo
quindi generare un contatto Metall-NdifT (utilizzando l'apposito tasto della palette) da posizionare in
prossimità del PMOS. Le regole di progetto più stringenti da considerare in questo caso sono quelle relative
alla distanza minima di 4 lambda fra Ndi ff e Pdiff e quelle che richiedono che la Ndiff sia circondata dalla
Nwell per almeno due lambda. Illayout, a questo punto, avrà l'aspetto riportato i figura:
Possiamo ora aggiungere la linea di metall dedicata all'alimentazione, di larghezza 5 lambda, ehe verrà
collegata sia al source del PMOS ehe al eontatto della Well. Inoltre, possiamo collegare in Metall i tenninali
di drain dci due MOS in modo da realizzare il morsctto di uscita dell'invertitore:
17
Esercizio 2 - Layou! di un inver!Ì!ore CMOS con Microwind2.
E' ora necessario includere la linea di poly che collegherà le gale dei due MOS ed il contatto poly-Metall
necessario per poter collegare il segnale di ingresso all'invertitore in Meta\. Possiamo, inoltre, ridimensionare
la lunghezza delle due linee di alimentazioni in modo da allinearli ai morsetti di ingresso e di uscita del
circuito. Come mostra la figura seguente, l'area complessiva del nostro invertitore è di 1350 lambda quadri.
-.\--
~~~JiOIliii~1
L'ultima modifica da apportare al layoul riguarda il ridimensionamento dci NMOS. Dobbiamo a lal fme
cancellare il rettangolo di NditT che realizza il MOS, per poi ridisegnarlo con larghezza pari a 3 lambda. Per
cancellare la ditTlL"ione N dci MOS, clicchiamo con il tasto destro del mouse sulla gate del MOS, per poi
selezionare: lJclete => DiflN
Dopo la modifica le dimensioni del MOS saranno
Figura:
Possiamo, ora, aggiungere delle etichette al nostro layout. A tal fine utilizziamo i tasti della palette per
etichettare le linee di massa e di alimentazione:
Palette
'IjI
.JliI
EJ
~P,iI ~
-It i *+'"Alimenlllziane
Masw
l tenninali di ingresso e di uscita possono invece essere etichettati utilizzando l'apposito tasto della barra dei
A 0-, come mostra la figura seguente:
comandi """--'
18
Esen:i zio 2 - Layout di un ;nvcrtitore CMOS con Mi crowind2_
H
... , ,"'". 0_
" IO ' .....
N"· U . . ..
' ...."" ......~~ .... _ , n I,."
Si ottiene cosi illayout fmale dell'invertitore, mostrato in Figura:
2.2
Generazione automatico dellayout
La realizzazione "artigianale" (full custom) del layout di un circuito richiede, come abbiamo appena visto,
notevole cura e risulta quindi molto onerosa per quanto concerne i tcmpi di progcttazione. E' possibile ridurre
notevolmente i tempi di progettazione ricorrendo a programmi che generano il layout in modo automatico.
Questo approccio, d'altro canto, fornisce spesso circuiti meno ottimizzati in termini di occupazione di area
rispetto ad una progettazione full cuslom.
microwind include due tools che consentono di trasformare in maniera automatica una descrizione
comportamentale di un circuito in un
. . . tramite il menù "Compite":
...
in questa esercitazione vedremo come
one Line" che consente di realizzare
in maniera automatica delle semplici porte logiche, mentre l'utilizzo del comando "Compile Vcrilog File"
(che consente di passare da una descrizione schematica ottenuta con dsch ad un layout) verrà presentato nella
prossima esercitazione. Come passo preliminare è necessario definirc le dimensioni dci dispositivi.
Sfortunatamente, questa operazione non è del tutto immediata e richiede i tre passi seguenti:
I) Utilizzando i comandi di Windows, create un file di testo vuoto nclla cartella in cui volete realizzare il
layout:
.....
-2) In microwind invocate il comando "Compilc => Compile Verilog File" e selezionate il file di testo, vuoto,
creato in precedenza.
3) Compare la fmestra di Figura, in cui dopo aver stabilito le dimensioni dei MOS, è necessario attivare il
tasto "Compile". Si noti che le larghe-ae minime di canale previste per i MOS sono le seguenti: Wmin=6
19
Esen:izio 2 - La yout di un invertitore CMOS con Mino wind2.
lambda (NMOS); Wmin=16 lambda (PMOS); se si tenta di imporre un valore inferiore per le W i
dispositivi verranno comunque realizzati con W=Wmin. l valori di Wm.in possono sembrare molto elevati,
ma si deve considerare cbe le celle realizzate in maniera automatiea sono previste per poter pilotare
efficacemente gli elevati carichi capacitivi che nascono dalla presenza di lunghe interconnessioni.
--_. -
-1~i1
-'
_
...
_ - . . o . .. ,....
........
-."
-
=- ~
d'
-_.
__ o
_
,r
"l _ I
»1 _ ... 1; .....
-.-1..1.1
_
--
o
.-
Dopo aver chiuso la finestra di compilazione, possiamo finalmente procedere alla realizzazione automatica
dell'invertitore. Attivate il comando: "Compile => Compile one line". Compare la fmestra mostrata in Figura.
in cui inserire l'equazione dell'invertitore : out = / in.
__..
1
El
I Mtl ~ I d ii "'''Vo~,
i
, )( Cantel
I
Un elenco contenete la sintassi da utilizzare per le principali funzioni logiche è mostrato di seguito:
J Funzione
Ilnvertitore
IAND
IOR
Sintassi "Co mpile One Line"
out=/in
out=a.b
out=a+b
JNAND
n=/(a.b)
jN OR
s=/(a+b)
.-
_ ___
~
vic~n~'~~;~~~~~;;~~ii~~;;;;;;;;;;;;;;;;;;;;;;~
.
Dopo qualche istanlc
Logica
. _
JoOIoJo!!I
Alcune caratteristiche dci circuito generato sono simili al nostro progetto full (.1Js tom: il layou! è compreso
fra due linee orizzontali di metall per Vdd e massa, con il MOS in prossimità delia linea di massa, ed il
PMOS vicino alla linea di alimentazione.
20
Esen:izio 2 - Layout di un invertitQrc CMOS con Microwind2.
A differenza del progetto jùll custam, sia il terminale di ingresso che quello di u.scita sono accessibili in
metall sia sul lato superiore che sul lato inferiore della cella. Per il segnale di uscita, si noti l'utilizzo di una
linea in metal2 necessaria per "scavalcare" le due lince di alimentazione e di massa. Si noti ehe l'area
occupata dal circuito è di poco inferiore a 4000 lambda quadri ed è pertanto circa tre volte maggiore rispetto
a quella del circuito full cuslam (in cui avevamo peraltro utilizzato dispositivi con larghezze di canale molto
inferiori). La figura seguente raffronta le dimensioni dei due layoul:
Nel caso del layoul generato automaticamente, la particolare disposizione dci tenninali di 110 è quella
tipieamente utilizzata nei circuiti con "celle slandard in cui si alternano delle "righe" ove sono disposti i
dispositivi attivi e dci "canali" dedicati alle intcrconncssioni. Torneremo su questo punto in maggior
dettaglio nella prossima esercitazione; per il momento è interessante osservare cosa accaòc quando si effeltua
la compilazione di ulteriori celle. La figura seguente mostra il layout ottenuto invocando tre volte il
compilatore di microwindper rca1izzare tre invertitori :
N
,
1.3 Estrazione del circuito e simulazione con Sw;tcherCADlIl
In questa esercitazione studieremo i pa.'>Si da seguire per estrarre il circuito equivalente a partire da un layout.
tenendo in conto la presenza dci parametri parassiti (essenzialmente, capacità) introdotti dai vari elementi
che compongono il layout stesso. Vedremo inoltre come simulare il circuito estratto dal layoul utilizzando
swcad (micrawind include un proprio simulatore circuitale, che peraltro non utilizzeremo nel seguito viste le
sue numerose limitazioni).
Partiamo dall'invertitore jùJl custom realizzato nel paragrafo 2.1:
21
Esercizio 2 - Layout di un
inv~rtitorc
CMOS çon Microwind2.
Per effettuare una simulazione realistica, consideriamo una condizione di fan-out unitario, in cui l'invertitore
sotto esame pilota una un altro invertitore identico. Il layout complessivo, mostrato in Figura, si ottiene
.-
molto facilmente utilizzando il comando di copia di microwind:
~
:
Le uniche accortezze da seguire sono le seguenti:
Verificare l'assenza di violazioni di regole di progetto che potrebbero derivare, ad esempio, dalla eccessiva
vicinanza delle due Nwell. in questo caso è opportuno unire fra di loro le due Nwell, eome evidenziato nella
Figura precedente.
Modificare le etichette in quanto a seguito dell'operazione di copia vengono duplicate anche le labels
presenti nel circuito. Le eticbette apposte aJ layout rivestono notevole importanza in quanto consentono di
identificare i vari nodi in fase di simulazione.
Per valutare i parametri parassiti corrispondenti ad un nodo del circuito è sufficiente effcttuare un doppio
click sul nodo stesso. Ad esempio, la Figura seguente mostra le caratteristiche elettriche del nodo di uscita
dci primo invertitorc
:;
.~
~,­
ZD-11.T_
_ ·fOlJ
... g::..
La capacità totale del nodo ammonta a circa 26.3fF, di cui
sono
alla capacità di gate
dell'invertitorc di carico, mentre la restante parte di capacità è da attribuirsi alle regioni diffuse di drain dei
due MOS, oltre che alla regione in metal. (Si noti che nel rcport di microwind nella "Metal capac." viene
22
Esercizio 2 - Layout di un invenitore CMOS oon Microwind2.
inclusa non solo la capacità delle regioni di metal ma anche il contributo perimetrale delle altre regioni (poly
o diffusione) collegate al nodo).
Come accennato in una precedente esercitazione, ncl calcolo degli clementi par'dssiti microwind porta in
conto la presenza delle regioni diffuse mediante capacità costanti. In realtà, sappiamo che la capacità di una
giunzione inversamente polarizzata è una funzione non-lineare, decrescente, della tensione inversa applicata.
Considerare le capacità di diffusione come costanti, con un valore corrispondente a quello con tensione
applicata nulla, rappresenta una approssimazione che consente di ottenere una stima worsl case dei tempi di
propagazione e della dissipazione dei potenza. Una analisi più accurata richiederebbe il calcolo dei parametri
geometrici (Area e Perimetro) delle regioni diffuse di Souree e di Drain dei MOS, lasciando a SPICE, nella
simula:tionc in transitorio, il compito di portare in conto la non-Iinearità delle capacità source-substrato e
drain-substrato. Poiché microwind non prevede questo tipo di estrazione circuitale, nel listato SPICE
generato dal programma non troveremo riferimenti ai paramctri gcometrici delle regioni di source c drain dei
MOS (AS, AD, PS, PO).
Prima di eseguire l'estrazione della nellisl SPICE è utile prendere nota dei nomi che microwind ba assegnato
ai MOS. Dal menù del programma selezionate: "Yiew => MOS List". Nellayout compare a fianco di ciascun
MOS, la sigla atnib.,;ta ~.!'!1~:!!:!!?!É.. _______________..,.,,..,,.
- -I
•
I ;'-_;;:~ ' .000
' .000
' .000
NOTA: Le sigle attribuite da microwind possono variare di volta volta, per
è necessario
verificare puntualmente l'effettivo nome assegnato dal programma ad ogni MOS
Possiamo ora procedere alla estrazione della ne!lisi SPICE. Dal menù di microwind selezionate: "File =>
Convert Into => SPICE netlist". Compare una finestra simile a quella riportata in Figura. Il listato SPICE
viene salvato, con
l " m';c.-o";n.;.
E........ . l· 0 0100 , Ilpno . 1 '"
-
P_.~ " _--
r ____
Wo'-50.H .. . .OW
w- ' .5W l.- ' IIOJ
....... . . . ,..,
... H ........ ' .......
-
Prima di effettuare la simulazione con .~wcad è necessario apportare alcunc piccolc modifichc alla nctlist
SPICE. Aprite dunque il file della netlist con il vostro text editor preferito. Nella parte iniziale del file
possiamo subito individuare una serie di commenti (ovvero di linee con un asterisco come primo carattere).
Tali commenti riportano la corrispondenza fra i nodi dellayout ed i numeri utilizzati per individuare i
nodi nella netlist SPICE. Un possibile esempio è il seguente:
* List or nodes
* "out2" corresponds lo n04
* "oul" corresponds to n05
* "In" corresponds to n06
Pertanto, in questo caso, il nodo denominato In ncl layout (il morsctto di ingresso dell'invcrtitorc)
corrisponde al nodo 6 della netlist SPICE.
23
F_~rcizio
2 - Layaut di un invertitore CMOS OOn Microwind2.
NOTA: I numeri attribuiti da m;crow;nd possono variare di volta in volta, per CUI e necessario
verificare nel file estratto l'effettiva corrispondenza fra nome e numero del Dodo Da notare che il nodo
di massa dellayout corrisponde sempre con il nodo numero O della netlist SPICE, mentre per l'alimentazione
il nodo corrispondente ha il numero 1.
La prima modifica da effettuare alla netlist SPICE consiste nella introduzione del generatore di tensione di
ingresso. Poiché l'ingresso corrisponde, in questo esempio, con il nodo numero 6, la riga da introdurre nella
netlist SPICE sarà la seguente:
Viu 6 O PULSE(OV, SV, 0.2n5, 0.105, 0.105, 150s,30s)
Il comando può essere inserito in una riga qualunque del file, con l'eccezione della prima e dell'ultima.
La seconda modifica da apportare riguarda le schede mode' dei MOS. E' necessario pertanto cancellare le
righe della nettist che iniziano con: .MODEL NI NMOS e con: .MODEL PI PMOS e le successive righe
di continuazione (con un + come primo carattere). AI loro posto si deve inserire il comando seguente, che
richiama le stesse schede .MODEL utilizzate nelle precedenti simulazioni :
.Lm E:\SWCADrnlLmICMPlSTANDARD.MOS
NOTA: TI percorso da specificare dopo .Lm dipende daUa directory in cui è stato m,taU.to swcad.
L'ultima modifica riguarda il comando. TRAN che deve essere modificato come segue:
.TRAN 3.00ps 3ns
Possiamo ora attivare swcad. Dal menù del programma selezionare: "File => Open". Nella finestra che
compare, selezionare come "Tipo l'ilc" l'opzione: NetJists (*.cir; *.net, *.sp). Selezionare quindi il nomc
della nctlist modificata in precedenza:
" •••• ~
,o.
DI:!
Possiamo ora far partire la simulazione, utilizzando il
toolbar. Tenninata la simulazione,
compare la finestra eon la richiesta delle forma d'onda da visllaliz7JJre. Sceglieremo i due nodi corrispondentì
ai morsetti di ingresso e di uscita del cireuito (i nodi 5 e 6 nel nostro caso).
I! risultato della simulazione, riportato in figura, dcvc esserc confrontato con quello ottenuto dalla
simulazionc a livcllo transistor effettuata nell'esercizio precedente. Si riscontra un aumento dei tempi di
propagazione, dovuto alla presenza delle capacità parassitc che, nell'esercitazione svolta in precedenza, erano
state approssimativamente stimate in 10fF
~ .sv
,~
.,,,
VI_ I
.
. ~
. ~
,
.... ,"
,
o.w
3.11'.'
,
,
~
,,
~
, .~
,.~
.w
~::WO_ID O
.~ .
,
o_l..o o_i...
0_.... 1_1D' 1_.....
l _B. .
V ..
~ .• u
u~
1 0,,,,
Si lascia al lettore il compito di valutare la potenza diSSipata; anche ID questo caso alla precisa
valutazione della capacità di carico corrisponderà un aumento della Pd.
24
Esercizio 3 - Schematic editor dsch2 e generazione
automatica del layout
3.1 - Descri'{.Ìone compOl1flmenJale allivello gate
Lo scopo di questa esercitazione è semplicemente quello dì vedere come s ia possibile utilizzare dsch per
effettuare )'anruisi comportamentale di un circuito logico descritto come interconnessione di porte elementari.
Attiviamo dsch cliccando sulla icona dci programma:
m
Compare un la finestra principaJe del programma. Sulla destra della finestra appare la libreria dei simboli
utilizzabili:
... ...
iiM@iti;'A x l
'&ltl- I
'"
~
{i}@-&
IDI!I_
I!l-&&
I!-I!-!!t
..
8-ItUl
~ .:
Qualora la finestra dci simboli non dovesse apparire automaticamente aJl'avvio dci progmmma, c' possibile
attivarla cliccando sulla icona
. In alternativa daJ menù principale selezionare (View -> Symbol Library).
Possiamo ora aggiungere un nuovo componente aJlo schema. Nel nostro caso si tmtta di un invcrtitorc,
individuato dalla icona .fiJ- d ella libreria di simboli. Cliccate sulla icona dell'invertitorc e trascinatela suUa
finestra principale d i dsch. In questo modo il componente viene inserito nello schema.
E' ora necessario completare il circuito, introducendo nello schcma un segnale di ingresso ed un tcnninale di
uscita. A tal fine aggiungiamo dam:~rima al nostro circu.ito un clack ehe nella libreria dei simboli e'
individuato dall'icona seguente: •
. Clicchiamo sulla icona del dock e trasciniamola sulla finestra
principale di dsch, posizionando il componente alla sinistra dell'invertitore. Inoltre, per visualizzare l'uscita
~
lI!
dell'inve rtitorc, aggiungiamo allo schema un led, rappresentato nella libreria di simboli dalla icona:
led verrà posizionato alla destra dell'mvertitore. Per completare il progetto, dobbiamo collegare fra loro i vari
componenti. A tal fme utilizziamo l'icona
per introdurre due linee di collegamento fra il generatore di
segnali (dock) c l'ingresso dcll'invcrtitorc c fTa l'uscita dell'invcrtitorc cd il lcd. Il c ircuito complessivo sarà
simile a quanto mostrato nella figura seguente:
In caso di errore, potete utilizzare l'icona
spostare un componente.
~ per eliminare un elemento dallo schema e l'icona
cl lp er
Le tre icone liiJ ~ ~ consentono di modificare lo zoom con il quale viene visualizzato lo schema.
Completato lo sehema, c' necessario salvarlo attivando il menù: (File -> Savc As) cd introducendo il norne
del file.
Esercizio 3 - Shcematic editor dsch2 e genmll':ione automatica dellayout.
Prima dì procedere alla simulazione del nostro circuito, e' o pportuno verificare quali sono i parametri che
verranno utilizzati da dsch in fase di simulazione. Tali parametri sono contenuti in un opportuno file di
tecnologia. Util izzate il vostro editor preferito (ad esempio il notcpad) per aprire il file denominato edu.tec
che contiene i parametri che utilizzeremo nel seguito (il file risiede nella stessa directory di dsch) . I parametri
più significativi definiti ncl file di tecnologia sono i seguenti:
TDelay: Tempo di propagazione intrinseco di ogni porta (0.05 ns)
TWireDelay: Ritardo introdollo dal falUml (0.1 ns)
11 ritardo dì una generica porta logica viene calcolato come:
Tp "" TDelay + TWireDelay x N
dove N rappresenta il fanout della porta logica. Nel nostro c ircuito di esempio, il fanout è unitario (il Led) e
pertanto il ritardo dell'in vcrtitorc sarà: Tp "" TDelay + TWireDelay = O.15ns
Siamo ora pronti ad effettuare la simulazione del circuito. Il primo passo consiste nel caricare il file di
tecnologia attivando il menu': (File -> Select Foundry) e selezionando: etlu..t«.
Dobbiamo ora stabilire le carattcristichc dci segnalc d i dock. A tal finc fare doppio click sul componente.
Compare la finestra di figura:
- I
--~
IiLwu
1-
<40.,
St'/ "' U;r.q
$OOV"!IfIo~
IlI1Ml
Modifichiamo i parametri in modo che il dock sia un segnale ad onda q uadra con periodo di 405.
Per iniziare la simulazione clicchiamo sulla icona:
(in alternativa dal menu' principale selezionare:
Simulate -> Star! Simulation o, ancora, e' possibile digitare Conlrol+S). Immediatamente compare la finestra
di controllo della simulazione:
e la simulazione ha inizio. Sullo schema i nodi a livello logico alto verranno evidenziati con un colore rosso,
mentre quelli a livcllo logico basso appariranno di colore blu, Dopo avcr simulato il circuito per alcuni
periodi di dock possiamo chiudere la finestra di controllo, arrestando cosi la sinlul;",
Pcr visualizzare le forme d'onda prodotte dalla simulazione, clicchiamo sull'icona:
modo la finestra seguente:
,_. ".-
. ....
'
~
"
,
I~r"-jj-~,",,,,,
""'_ H
~-
.. ...
,HM ,HU "H
,:
:
'
:
.
l.W:
'
, , '!"."' ..,;
,u
:
:
:
••
,.
,... :
1'1,.-r.:J
.' ••• ' p '
:
:
:
:
:
:
:
:
E' possibile cambiare la scala di visualizzazione agendo su i due pulsanti: ;1111
.1
mentre i due
pulsanti: ~I ,~_. Monseotono di traslare verso sinistra o destra la finestra di visualizzazione.
Aiutandoci con il cursore, che si attiva cliccando sul diagramma temporale, possiamo valutare il ritardo di
propagazione e verificare la sua corrispondenza con il valore atteso.
..
26
Esercizio 3 - Shcematic editortlsclrl e generazione automatica dellayout.
Il diagramma temporale riporta una stima approssimativa della corrente assorbita dal circuito, qualora fosse
realizzato in tecnologia CMOS. La corrente ha un andamento di tipo impulsivo, in corrispondenza delle
transizioni da zero ad uno dell'uscita dell'invertitore. Si deve qui sottolineare che una stima attendibile della
potenza dissipata può essere in realtà ottenuta solo dopo una simulazione dci cireuito a livello lransislor.
Per familiarizzare con dsch, invitiamo il lettore a realizzare ed a simulare il circuito mostrato in figura,
valutandone i ritardi.
··rn
·· ···
-
. '. .
.
----
o,~]
1
Per completare questa parte di esercitazione, provvederemo a simulare un oscillatore ad anello. Il circuito da
simulare è riportato in figura.
o..p .. [J
[J .. [J .
Rispetto allo schema classico di un oscillatore ad anello abbiamo introdotto una piccola modifica, costituita
dalla porta NANO, che ci consentirà di controllarc la partcnza dellc oscillazioni con un opportuno scgnale di
comando. Quando il scgnale di ingresso in! è basso, infatti, l'oscillatore e' bloccato, mentre le oscillazioni
hanno inizio quando il segnale di inf:,'fcsso alto. Lasciamo al lettore la semplice dimostrazione cd il calcolo
del periodo di oscillazione, tenendo conto del fanout delle varie porte logiche.
[j ],
In dsch la NANO è rappresentata dal simbolo:
mentre come segnale di ingresso utilizziamo un
"bottone" il cui valore in fase di simulazione può essere commutato fra zero ed uno con un click del mouse.
~
Il simbolo di questo componente è il seguente:
Il risultato della simulazione, riportato nella figura seguente, evidenzia il corretto funzionamento
dell'oscillatore ad ancllo.
fil -- --- ------; -- ----; ------ ------,-------:----.
~
002 (ioJ't4J
"" """
in1 (WItm1J
~-
o ~ -----~------:---
I ~t
o ~' -----~------:---
.,r
,
o~
"
n
-
_____ ~- -----~-- ___ ~------~------~-------:-----
.• ~ I
"
"
3.2 - Descrizione allivello transistor
In questo paragrafo utilizzeremo il programma dçch per il disegno schematico allivello transistor.
1 simboli da utilizzare in questo caso sono quelli evidenziati nella seguente figura:
27
Eserà,io 3 - Shce matic editordsch2 e generazione automatica dellayoul.
..
iiiIdmt N
Ba*
,2!f
1-- .. 1
...,"''''
., J.
~
....
.... ...
fil fil •
€l- .. '"
~
Procedendo da sinistra verso destra, i simboli rappresentano un NMOS, un PMOS cd una porta di
trasmissione.
Seguendo il procedimento mostrato nel precedente paragrafo, reruizzate il seguente multiplexer 2 ad l:
,
"
"
.
.,
'
.,
",
""
"-
,
Durate la simulazione, dsch considera tutti i MOS accesi e per ciascun dispositivo trasferisce il vruore logico
presente sul tennrnalc di source sul terminale di drain. Purtroppo, il sUnulatore non prevede che avvenga il
contrario. cioè che un eventuale valore presente su drain venga trasferito sul source. Questa assunzione.
ovviamente, non corrisponde a quanto avviene realmente in un MOS, in quanto, all'accensione di
quest ' ultimo, esso si comporta trasferendo il livello logico sia dal source al drain sia viceversa. A causa di
questo limitazione di dsch, è indispensabile disegnare il circuito in modo cbe tutti i terminali di source siano
diretti verso gli ingressi, mentre i tenninali di drain vanno rivolti verso le uscite.
Dopo aver disegnato il circuito seguendo questa regola, è possibile eseguire una simulazione dello stesso
fml
Nel nostro caso realizzate una simulazione nella qua1e il segnale S resta basso per
cliccando sul pulsante
i primi istanti, e successivamente va alto. Come indicato nel precedente paragrafo, lo stato di S può essere
variato durante la simuladonc cliccando sulla sua icona nello scbematico.
Il risultato della simulazione è quello mostrato nella seguente figura:
T~....,,,,<?,,,.,,r
Q..I;
_
"''''''am ... ,d<è>lh;·JO(Il".....O<t>
.,-
~--- _1!l
101 It$
m
$-1 1OIl 1.
-:;;]"+'1
U
11lO
lcna
l!1l0
2IIOJl
250JI
DD
lIIlO
GI.II
.,,0
IU lll lll lh llllll!lh llll ll lll lllf lll l lhllllllllllll lll llllu llI llIIll llI1 Ili lllll l lIUlllULI
,*11_1)
... 1 1i!t>'1)
l
,. __ u .. u'........ .J. mmn;. m ..
-.-...tO,_
_.-
3.3 - Generazione automatica dellayout
In questo paragrafo illustreremo come sia possibile ottenere direttamente il layout di un circuito disegnato
mediante dsch. Considereremo sia il caso di circuiti allivello gate, che quello di circuiti allivello transistor.
Cominciamo con il considerare il caso di un circuito descritto allivello gate. Come esempio consideriamo il
circuito oscillatore ad anello realizzato ncl paragrafo 3.l.
In dsch aprite il disegno di questo circuito e selezionate Make Veri/og File nel menù File:
28
Esercizio 3 - Shcematic editordsclrZ e generazio ne automatica dellayout.
-_ .....
---...-
Comare la seguente fmestra
--.-....-
del vostro circuito:
~_ 1 _ 1
''''''''
...
--...... ........,
---,
-"'-'.. ..........."
"'--_........-...__
Lo ' ' ' ' ' '' ' ' " ' . _ _ . _ ' "
-..._"
-"",
_ ....
-..,'_1..., '
I
.,
""_ ...,-
' '"' 01." 1.0 , .
~
li linguaggio che viene utilizzato per descrivere la netlisl è il verilog. L'interpretazione della netlist risulta
molto semplice. Ad esempio la riga:
module inv-ring(in,out1,out2);
Indica che la netlist descrive un circuito di nome inv~ring, i cui tcnninalì di inputloutput sono in I, out2 cd
out/. Nelle righe successive viene specificato che in I è un input., mentre out] ed out2 sono delle uscite.
Invccc, la riga:
noI notl(w2,wl)
descrive uno degli invcrtitori utilizzati nel circuito, indicato che la sua uscita è connessa a w2 mentre il suo
ingresso è connesso a w I. Il significato delle restanti linee è del tutto simile.
Quando premete il pulsante OK. viene generato un file dal nome inv~ring.txt, che contiene la netlist dci
vostro circuito.
A questo punto potete aprire microwind e selezionare ~om~i:: Veri/og Fil"ncl menò Compi/e:
l'h 'I4eW I!:cI; 5IJJdate cOMpie
~
liBtI
_ .,,:
..,-....,.
-~_
... ' .... ~w ' l
... _ to".~l1
..... _(10'1.00<1.101)
'-_
:---=-..
r
....0
5' -:-:-'--A questo punto avete la possibilità di selezionare le dimensioni per i dispositivi NMOS e PMOS chc
verranno realizzati. Dopo aver impostato i valori come illustrato procedete con il cliccando sul pulsante
Compi/e.
29
~rçizio
3 - Shçematic alitor dsclrl e generazione automatica del layoot.
Il layout generato automaticamente è quello mostrato nella seguente figura:
Notate la disposizione dci MOS. Gli NMOS sono tutti posizionati al di sopra della linea di massa, allineali
orizzontalmente. Lo stesso vale per i PMOS cbe si trovano al di sotto della linea di alimentazione. In fine, le
interconnessioni sono realizzate attraverso due canali, presenti al di sopra ed al di sotto rispettivamente
dell'alimentazione e della massa.
Prima di procedere oltre, individuate nellayout tutte le porte logiche presenti nella nettist veri/og.
Procediamo ora nell'iUustrare la generazione automatica dellayout a partire dal disegno schematico allivello
gate. A tal proposito, riaprite dsch è caricate il multiplexer realizzato nel paragrafo 3.2.
La procedura da seguire è la stessa rispetto a quella già illustrata nel caso precedente. Dovete selezionare
Make Veri/Dg File nel menù File:
,. ~
.. , 1010 ' .. '"' .h, ,,,,c _, u ..
~-..... I -I
N
Dst:1I
- ----~ I
'.~b
_ _ fliclw. •
"
07/0. /.002 Zl: 1 0:JO
/1 C:IPcog.:_"'<UCb ll1d_20021...." .• c ..
1-
" uo l alkl • ., 1k2,_, aut.1f'
ln:put el ltl.c l I<2 ,5 :
d~ l~
OUUU<
outl:
-'B1 1 " ,.tl ." I"',~ f
p _ ....... 2 1 "~t1,a l l<3 ,~ )
. -..
rlll: ........ t.ls ....
n. dooV> òdoIIoo li .,...Ido
e_de
r~_
"
"
! U.dat1oD p""uetu o
clU CL K l O l O
/I clJtl CLIC 50 . 000 50. 000
/I
~
... 5 _
CLK .0 lO
La netlisl verilog generate questa volta contiene direttamente i dispositivi NMOS e PMOS che compongono
il vostro circuito. Ad esempio la riga:
nmos nmosl(outl.clkJ,s)
deserive un dispositivo NMOS con drain collegata a outi, source collegata a clki e gate collegata ad S.
Dopo aver aperto microwind, procedete selezionando Compi/e Veri/og File nel menù Compi/e. 1llayout
generato automaticamente è mostrato nella seguente figura:
30
Esercizio 3 - Shcemalic editor ds<'h2 e genera7.ione aulomalica dellayout.
La logica per la generazione
simile a quella utilizzata nel caso de livello gate. l dispositivi
sono posizionati orizzontalmente e i canaJi al di sopra ed al di sotto delle linee di alimentazione e massa sono
utilizzati dalla interconnessionc. Notatc, che il generatorc allivcllo transistor riesce a compattare illayout
molto meno di quando facci a il generatore allivello gate.
31
Pr o{. V. PQUQro; EIe./IrQI1/CQ 11 - COf"loA (A-l..) - LAurM ;n
EJerc/faz /onl I1l1merlcha o cu ra di ;l1g. F. ~ Let:»wrdil
lng~Mrlo
1l1jonoolico
Corso di Laurea in Ingegneria Informatica (N.O.)
Esercitazioni numeriche di Elettronica II - Co rso A (A-L)
J) Convertire il numero binario 101001 in decimale sommando le appropriate potenze del l .
Soluzione:
10100 1 (in base 2) ~ Ixl + 0x2 + Ox4 + Ix8 + 0. 16 + 1.32
~
41 (in base lO)
2) Detltrminare gli equivalenti decimali dei seguitI/ti lIumeri binari: (a) lODI, (b) J I I I, (c)
11000101. (d) 1100011101101001
Soluzione:
(a)
(b)
(c)
(d)
1001 ~ 1+8 ~ 9
IIII ~ I +2+4 + 8 ~ 15
11 000 101 ~ I +4 + 64+ 1 28 ~ 197
1100011101101001 ~ 1+8+32+64+256+512+ 1024 (2 10)+ 16384 (2 14 )+32768 (2 15) ~ 51049
3) COllverlire i lIumeri 483, 13 e 75 iII binario IIsondo il metodo della sottrazione ripetuta.
Soluzione:
perciò la conversio ne fornisce : 48310 = 1111000 112
ancora: 13 - 8 (2 3) ~5 -4 (22) ~ I -I (2 0) ~O
75 - 64 (2 6) ~ II - 8 (2 3) ~ 3 -2 (2 1) ~ I -I (20) ~O
13 ~ 1101
75 ~ 1001011
4) Conwrtire il numero 483(0 130 75) in binario usando la Iltcnica della divisione ripetuta per 2.
Soluzione (R indica il resto):
483/2 ~ 241 (RI) /2 ~ 120 (RI)/2
~ 60
(R0) /2 ~30 (RO) /2 ~ 15 (R0)/2 ~ 7 (RI )/2 ~
~3 (RI)/2 ~ 1 (RI)/2~O(RI)
quindi 483 10 ~ 11 11 000 11
ancora: 1 3 /2 ~ 6 (RI )/2~3(R0) /2~ 1 (RI)/2 ~ O(R I )
13 ~ 1101
75 /2 ~37 (RI) /2 ~ 18 (RI) /2 ~ 9 (RO)/2 ~4 (RI) /2 ~2 (RO) /2 ~ I (RO) /2 ~ O (RI) 75 ~ 1001011
5) Determinare il lIumero di bit richiesti per rapprltselltare i1l1umero decimale 837.
Soluzione:
Pro! V. Panaro: Elettronico 1/ - Corso A (A-L) - LAurea In Ingegneria Informatica
Esercitazioni nunreriche O ClIro di Ing. F. De LeonardiJ
poiché il numero é tale che 512 (2 9) < 837 < 1024 (2 10 )
sono necessari lO bit; infatti 837 = 1101000101
6) Addizione Ira 1/umeri binari
Soluzione:
101 +01O ~ III
101 + 10 1 ~ 1010
1101 +0 111 ~ 10100
11 01 + IIII ~ 11 100
(5+2 ~ 7)
(5+5 ~
IO)
(13 +7 ~ 20)
( 13 + 15 ~ 28)
7) Sottrazione Ira lIumeri binari
Soluzione:
110 -
100 ~ 01O
(6-4~2)
101-011 ~ 01O
(5-3 ~ 5)
10001 - 01010 ~ 00 111
1100 1 - 10010 ~ 00 111
(25 -18
(17-1O ~ 7)
~
7)
8) Operazioni con i numeri oltali e esadecimali
Soluzione:
. confronto
0123456789
01
01234567
0123 456789ABCDEF
. conversione binario - ottale
I 101 010 1 ~ 0110 10 101 ~ 32 5Q
I 1010100 ~ 011010 100 ~ 32 4Q
- conversione ottale - binario
20Q ~ 010 000 ~ 10000
377Q ~ 011 III III ~ 1111 1111
527IJ3Q ~ 101 010 III 001 01 1 011
decimale (peso cifre = l O), simbolo D
binario (peso cifre = 2), simbolo B
ottale (peso cifre = 8), simbolo Q
esadecimale (peso cifre = 16), simbolo H
(ottale)
~
101010111 0010 110 11
- conversione ottale . decimale
23 Q ~ 2x8 1 + 3x8 0 ~ 19
377 Q ~ 3x82 + 7x8 1 + 7x8 0 ~ 192 +56 + 7 ~ 255
- conversione decimale - ottale
39 /8 ~ 4 (R 7) /8 ~ O (R4) ~ 47 Q
82 /8 ~ 10(R2) /8~ I (R2) /8~0(RI)
~
122Q
2
Pro[. V. Pallaro: Elellronica 11 - CorJo A (A-L) -Laureo in Ingegneria Informatico
Esercirazicml n,,,,,erlch. o Cllro di Ing. F.
~ ~ord;J
418 /8 = 52 (R2) /8 = 6 (R4) /8 = O (R6) = 642 Q
- Addizione e sottrazione in ottale
177 Q + 36 Q => 7 +6 = 13 -8 =5 (RI); 7 +3 +RI = 11 -8 =3 (RI); I+RI =2
Ris. = 235 Q
2754 Q + 5266 Q => 6 +4= 10 -8 =2 (RI); 5+6 +RI = I2-8 =4 (RI); 7+2 +RI = IO-8 =2 (RI);
R; s. = 10242 Q
2 +5+RI = 8-8=0 (RI); RI +O= I
325 Q - 257 Q = 46 Q
- conversione binario - esadecimale
1101 0 10 1 = 1101 010 1 = D516
- conversione esadecimale - binario
2016 = 00 IO 0000 = 100000
3CI6=00111100= 111 100
- conversione esadecimale - decimale
2C I6 = 2xl6 1 + 12xl60 = 44
A091 6 = Axl6 2 + Ox l 6 1 + 9x l60 = 1Ox256 + 9 = 2569
- conversione decimale - esadecimale
94 / 16=5(RI4); 5116 = 0(R5)
941O =5 E16
41 8116 = 26 (R2); 26/ 16 = 1 (RIO); 1116 =O (RI)
795116 = 49 (RII); 49116 =3 (RI); 3/ 16 =O (R3)
41810 = 1A2 16
795 1O =3 IBI6 = 00 11 0001 10 11
- addizione tra esadecimali
3C9F5 + 25 => 5 +5 =A; F +2 = 17-16 =1 (RI); 9+ 1 =A
R;s. = 3CA IA
B204 + E96C => 4+C = 16- 16 =0 (RI); D +6+RI =20-16 =4 (RI); 9+2+R I = 12; B+E =25-16 =9 (RI)
R;s. = 19C4016
- sottrazione tra esadecimali
E93 - AF8 = 39B (ogni cifra precedente pesa 16 !)
9)
Numeri relativi
/I numero hinario è invertito scamhiando J COli O e O COli I
Notazione modul o-segno: -3 = 100000 11 (8 bit con MSB per il segno)
+3 = 0000 0011
-3 = 10000000000000 11 (16 b;t con MSB per ;J segno)
Notazione in complemento a 2: la regola é di invertire tutti i bit e aggiungere 1:
-3 = ;nvers;one(OOOO 00 Il) + I = 1111 1100 + I = 1111 110 I
;nfatt;: ;nvers;one( 1111 110 I) = 0000 00 IO + I = 0000 00 Il = 3
3
Pro{. v.1'{l$l ara: EI,IIN»1ica " - Carl a A (A·L) - Lollrea i" Ingegneria Infarma r/ca
E, ereltarlanl ""m,rich, a Clln> di ;"8. F. De I~nardil
. convertire in deci male i numeri binari relativi:
1101 000 1 (-) -> 0010 1110 + 1 - 0010 1111 - 2FH - 2x I6 + 15 - -47
0 10 1 0000 (+) - 50H - 5x l6 - 80
1000 IIII 0 10 1 11 0 1 (-) -> 0 111 0000 10 10 00 10 + 1 - 0 111 0000 10 10 00 11 - 70A3 - 7x 16 3 + IOx l 6 +3 - -28835
- aritmetica del co mplemento a 2
14 - 0000 111 0
-20 - inversio ne(OOO I 0 100) + 1 - 1110 11 00
0000 111 0 + 11 10 11 00 - 1111 101 0 - FAH
FAH - IIII 101 0 - 0000 0 101 + 1 - 0000 0 110 - -6
- overflow
+64 +96 :: 0 100 0000 + O11 00000 = IO l O0000 segno MSB cambiato: siamo in overflow !!!
IO)
Codici
codice BCO (hillaJy - coJed - decimal), usato nel display a sette segmenti consiste nel convertire ogni cifra deci male in cod ici binari a 4 bit o 8 bit (ecc.), fino a 9
9 = 100 1 (binario non negativo) = 100 1 (BCO)
26 - I 101 0 (binario) - 00 10 0 11 0 (BCO)
243 - IIII 00 11 (binario) - 00 10 0 100 0011 ( BCO)
- som ma di numeri in codice BCO
si effett ua come la so mm a di binari, ma aggiu ngendo 0 110
=
6 se il risult ato è superiore a 9:
16 + 18 - 000 1 01 IO + 000 1 1000 - 0010 111 0 - 2E non valido !
allora 00 I O 111 0 + OIl 0 - 00 Il 0 100 - 34 (BCO)
quella eseguita é una operazione a correzione aut omati ca dell'errore
codice ASCI I
LSB
O
0 0000
I 000 1
2 00 10
3 00 11
4 0 100
5 0 10 1
60 11 0
70 11 1
8 1000
9 100 I
A 10 10
B 10 11
C 11 00
D 11 0 1
E 111 0
FIIII
I
NUL OLE
SOH OC I
STX OC2
ET X OC3
EOT OC4
ENQ NAK
ACK SYN
BEL ETB
BS
CAN
HT
EM
LF
SUE
VT
ESC
FF FS
CR
GS
SO
RS
SI
US
2
SP
•
#
$
%
&
(
)
•
3
O
2
3
4
5
6
7
8
9
+
<
>
I
?
4
@
A
B
C
O
E
F
G
H
I
J
K
L
M
N
O
MSB
5
6
P
Q
a
R
b
C
S
T
d
U
e
f
V
W
g
h
X
Y
Z
J
k
[
\
I
m
l
A
n
o
7
P
q
r
s
t
u
v
w
x
Y
z
{
I
}
OEL
Pro{. v. PIJJUlro: E/el/ronica 1/ - Corso A (A.L) - lAureo in Ingegnerio InforlltOtico
Eserr:ltazioni nu_,iche o curo di Ing. F. lÀ Leonardll
p.e. la lettera
Q ha codice: 51 H o anche 010 I 000 I = IO I 000 I binario
- liSO del bit di parità:
prendiamo la lettera F da trasmettere: F =46H = 0100 0110 (numero di spari di I)
per avere parità pari, bi sogna aggiungere un 1 in MSB = 11 00 0110 (bit di parità l)
nel caso della lettera A = 41 H = 0 100 000 I (parità pari, bit di parità O)
- riceviamo in parità pari E I H = 1110 000 I (parità pari)
20H = 00 10 0000 (parità di spari, in errore)
72H ~ 01110010 (parità pari)
codice Gray e confronto con altri codici
O
O
I
2
3
4
5
6
7
8
9
IO
Il
12
13
14
15
B
0000
0001
0010
00 II
0100
0101
0110
0111
1000
1001
1010
10 11
11 00
11 01
111 0
1111
Gray
0000
000 1
00 11
00 10
0 11 0
0111
0101
0100
1100
1101
1111
1110
1010
1011
1001
1000
BCO
0000
0001
0010
0011
0100
010 1
0110
0111
1000
1001
la variazione tra due cifre limitrofe é solo su un bit (codice a distanza unitaria) - riduce gli errori nei
calcoli
- conversione codice binario - Gray
appendere uno O a MSB e sommare a coppie i bit, ponendo 1 se diversi e O se uguali :
13 ~ 1101 ~> 0110 1 ~ 1011 (Gray)
52 ~ 110100 ~> 0 11 0100 ~ 101110 (Gray)
J J)
Algebra boolealla
Si tratta di uno dei due metodi usati per trovare la configurazione più semp li ce di un circuito logico:
l'altro metodo é rappresentato dalle mappe di Karnaugh. L'algebra booleana applica un insieme di
regole e teoremi all'equazione logica descrivente il circuito .
5
Pro{ V. Panaro: EI~ffrOltlca 11 - Corso A (A -L) - Laurea
a C1Ita di ;"g. F. ~ urnrordjs
j"
Ingegnerja Informolica
u~n:jfazI01/I num"lch~
- Teoremi booleani a singola variabi le
l) F - A x D - D (i l "x" o un puntino ind ica l'operazione logica di ANO)
2) F = A x l = A
3) F = A + D = A (i l "+" indica l'operazione logica di OR)
4) F = A + l = l
5)F = AxA = A
6)F = A + A = A
7)F = Ax A =0
8) F = A + A = l
- Leggi dell 'all;ebra booleana:
- commutativa
Al + AD = AD + Al ; Al x AD = AD x Al
• associativa
(AB)C = A(BC)
o
(A +B) +C = A+ (B+ C)
- distribut iva
(A +8)C = AC + Be
- Altri teoremi booleani a molte variabili
A+AB=A
A + AB = A + B
(A +B)(C+ D) = AC + AD + BC + BD
X = AB + AB = A(B +B ) = Ax l = A
OUT = X +xy = X (I +Y) = XCI) = X
OUT=X(X +Y) = xx + XY = o+XY = XY
OUT = X (X+ Y) = XX + XY = X + XY = X (1+Y) = X ( l) = X
OUT = XYZ +XYl = XY(Z +l)= XY(I) = XY
- Esempio: semp li fi care ciascu na delle seguenti equazioni
X = A + A BC = A + A (BC) = A + BC
X = A + A (B+ C ) = A+ AB+ AC=A+B+AC = A + B+ C
x = ABC + B = B(AC)+B= AC+ B
OUT = (X +Y)(x+Y) = xx +XY + YX +YY = o+XY +YX +o = XY +YX
. OUT = XYZ+XY2+Xyz= Y(XZ+Xl + XZ) = Y(l(X+X)+XZ)=
= Y( l(I)+xz) = f(l+X)
OUT = X +xy + X Z = X +XY +Z = X (l +Y) +Z =X (l) +Z = X +Z
- teoremi di DeMorgan
(l)
AB =A+ B
(2)
A+B=AB
sono teoremi che servono a semplificare ulteriormente le funzioni logiche e mostrano che ogni porta
AND ha una port a OR duale (e viceversa)
- semplificare le seguenti equazion i logiche
OUT = A +BC = ABC = ACB+C) = AB + AC
OUT = A . B+ C = A + B+C = A+(BxC)
OUT = AB C +A = A(BC + 1) = A( I) = A
6
Pro{. V. PDJWrO: Elellronico 1/ - CDrJOA (A -L) - LDureQ in Ingegnen'QInfDrmorlctl
Estlrcfla:ionl numoic~ Q curo di Ing. F. De L«murdiJ
OUT ~ (A +B)A C + ABC ~ A AC+ BA C + ABC~ (A A +BA) C + ABC ~ (BA +A +B)C ~
~ (B+A+B) C ~ ( I + A)
12)
C ~(I) C ~ C
Progetto di circuili logici di tipo combinatorio
I passi da osservare sono i seguenti:
(l)
(2)
(3)
(4)
(5)
Dato il problema. creare una tavola della verità;
derivare una equazio ne logica dalla tavola della ve rità~
sempl ificare l'equazione logica con l'algebra booleana;
tracciare il circuito logico corrispondente all'equazione logica;
partizionare il circuito in modo da usare il numero minimo di porte logiche.
Esempio A:
progettare un circuito logico con tre ingressi con uscita alta se é alta la maggioranza degli ingressi:
passo (I):
caso
mintermini
A B C (mO)
2
ABC(ml)
ABC(m2)
3
4
ABC(m3)
5
6
7
8
IN
OUT
O
O
O
l
O
000
001
0 10
OI I
100
AB C (m4)
ABC(m5)
IOI
l IO
I I I
A B C (m6)
ABC(m7)
l
i mintermini del problema sono ciascuna delle teroe di ingresso (in questo caso 8)
passo (2):
notando che l'u scita é alta in corrispondenza di m3 o m5 o m6 o m7, si può scrivere:
OUT ~ m3 OR mS OR m6 OR m7 ~ ABC+ ABC + ABC + AB C
passo (3)
applichiamo l'algebra booleana:
ABC+ABC+AB C + ABC ~
~ (A+A)BC + ABC + ABC ~
~ BC+ABC+AB
C ~ (B+AB)C + AB C~
~ BC +AC +A B C
~ BC+ A (C + B C ) ~ BC + AC + AB
passo (4):
il ci rcuito logico é immediato, rappresentando ogni addendo con una porta AND a due ingressi e
sommando tutti i termini con una porta OR. Da notare che l'equazi one semplificata non corrisponde
alla tavola della verità originaria.
7
.----
Pro[. Y. PQU QnJ: E I"'ttronicQ /1- Cen e A (A-L) _ LA ..rea in Ingegnt!rla InfOf'mariC4
Es~ita:i<J.ni n .."..,richt! Q C1IrQ di Ing. F.
~rdis
o.
passo (5):
un'i spezione finale al circuito tracciato permetterebbe di riconoscere quali elementi possono essere
assemblati in un unico circuito integrato (C.I.) o in più C.l.
La procedura mostrata porta sempre allo stesso tipo di circuiti, cioé somma di mintermini con porta
OR., ogni mintermine essendo formato con porte ANO e invertitori NOT: questo tipo di circuito é detto
"somma di prodotti".
Lo stesso risultat o può essere ottenuto utilizzando porte NANO invece di ANO e OR. Questo a volte
permette di ridurre il numero di C.I. necessari.
Esempio B: progettare un circuito logico in grado di rivelare i numeri BCO non validi
la tavo la della verità é la seguente:
D
O
O
O
O
O
O
O
l
2
3
4
5
6
C
O
O
O
O
O
O
l
7
8
9
lO
ll
l
O
O
O
O
B
O
O
A
O
l
l
O
O
O
O
l
l
O
O
l
l
O
O
12
13
14
15
ERROR ~
OUT (ERROR)
O
O
O
O
O
O
l
l
l
O
l
I
~
O
O
O
O
O
l
O
l
O
l
O
+ D C BA + DCE A + DCE A + DCB A + DCBA ~
~ DCB(A +A)+DCE(A+A)+
+ DCB (A +A) ~ D C B + Dce +DCB ~ D C B +DC ~
~ D(CB +C) ~ DB +DC
DCBA
é chiaro che il circuito logico comprenderà 2 porte ANO e l porta OR. Tuttavia possono essere usate
anche porte NAND o NOR., che vengono dette "universali" perché qualunque circuito logico può
essere realizzato usando solo porte NANO o solo porte NOR.
Tuttavia, la sostituzione con porte NOR non é immediata per equazioni logiche scritte nella fonna
"somma di prodotti" : a tal fine é più conveniente esprimere il risultato nella forma "prodotto di
somme" . Consideriamo a tal fine l'equazione X = AB +BC, con tavola della verità:
8
r--
Pro! V. Panaro: Elettronica li - Cor$oA (A-L) - Loureo in Ingegneria Informalica
Esercitazioni numeriche O rora di ing. F. De Leonurdis
A
B
O
O
O
O
l
O
O
l
l
O
O
C
O
l
O
l
O
l
O
X
O
O
O
l
l
l
O
l
l'equazione con i mintermini riferiti all'uscita O (noti come maxtermini) é:
X = AB C+ABC+A BC+ABC = AB+BC=>
=> AB + Be = Ali BC = (A + B)( B + C)
che é l'equazione logica in forma di "prodotto di somme", interpretabile immediatamente con un circuito
avente sole porte NOR.
Nessuna dell e due tecni che é sicuramente migliore dell'altra, e la più conveniente deve essere
riconosciuta caso per caso, tracciando i due circuiti finali e comparandoli al fine di trovare il mmor
numero di porte logiche.
13) Semplificare la seguente
e~pressiofle
booleana:
w = xy+yxz
Soluzione:
Applicando' la proprietà commutativa si ha:
yx = xy; ponendo v = xy l'espressione booleana diventa:
-
-
-
w = v+vz = vl + vz ; dalle relazi oni notevoli si ha v+v = 1 =>
-
-
-
-
-
-
w = v(v + v) + vz = vv + vv + l'Z = l'V + v(v + Z) = v + v(v + z)
ponendo v + Z = b e applicando la relazi one v + vb =
-
v+ vb
-
l'
si ha:
-
= v + vb+ vb = v + b(v + v) = v+ b;
Quindi:
w = xy+xy+z =xy + z
14) Semplificare l'e!>pressione:
w =x(x+ y)
9
,...
Pro{. V. PaSJQro: E/~lIrrHl/CQ Il - CQI"w A (A-L) - u JUretJ in Ingeg neria Inj()f"nla/icQ
Eserc/UlZlon/ n~ _rich/l a curo di Ing. F. Dc u.anardls
Soluzione:
w = xx+xy=O + xy = xy
J5) Semplificare la seguente espressione booleana:
-
-
w = x(x+ y)+z +zy
Soluzione:
- - -
w =xx +xy+z +zy
-=O+xy
+z +zy;
Applicando la relazione z + zy = z ; si ha:
---
--
---
-
-
w = xy + z + zy + zy = xy + Z + y(z + z)=xy + z + y =y(x + I) + z;
Infine si ha :
w = y+z
J6) Data lafilllZiolll! logica di qua/Ira variabili:
frA, B,C,D) =
(A + BC )(B + CD)
Esprimere f come somma di prodotti.
Soluzione:
Applichiamo la legge distributiva:
f = AB+ACD + BCB+BCCD;
Poi chè valgon o le seguenti relazioni:
(BC )B = B(BC ) = BBe,
BB = B;
CC = 0;
si ha :
f = AB + ACD + Be,
J 7) Dala lafimziol1e logica di cinque variabili:
frA, B,C, D, E) = (A + BC)(D + BE )
&'primere
f
come somma di prodotti.
Soluzione:
lO
,--
Pro! V. PDJlDro: él~//ronlcD 11 - C{)f"sDA (A.L) _ Lmm!a in Ingeg1tl!ria 'n[orma/ica
&ucllazi()ffl nllmerlcH a COOrD di Ing. F. ~ Lean"rdis
Applichiamo il teorema di De Morgan :
f = (A +B+C)(D· BE) = (A +B+C)(D·(B + E» = (A +B+C)(DB+DE);
Sviluppando si ha :
f = ABD+ADE+BBD+BDE+CBD+CDE = ABD + ADE+BD+BDE+CBD+CDE
18) Data la fimzio1le logica di tre variabili:
f(A , B ,C) = A + BC
Esprimere f in modo che tutte le variabili siano presenJi in ciascun termine.
Soluzione:
RicordiamocheA·) = A; B+ 8= l::::::)
f = A·' · , + Be. , = A(B + B)(C + C) + BC(A + A);
Sviluppando si ha :
f = ABC + ABC + ABc + ADC + AllC
19) Data lafill/zione logica di quattro variabili:
f(A ,B , C,D) = (A + BC)(B + CD)
&primere f come prodotto di somme.
Soluzione:
Applicando la seguente identità (x + yz) = (x + y)(x + z); si ha:
f = (A + B)(A +C )(B + C)(B + D);
20) Data la junzione logica di cil/que variabili:
f(A ,B ,C , D,E) = (A + BC)(D + BE)
Esprimere f come prodotto di somme.
Solu;jone:
11
r-
Pro{. V. pQJSQro: Elllllro,,/CQ lI - COt"IO A (A .L) - Laurea i" 1"gegmm·a 1,,[ormallca
EsU c/laz/on/ " umi!ricn. a cwro di i"8. F. De L.i!OItardi~
Applichiamo il teorema di De Morgan :
I = (A +B +C)(D · BE ) = (A +B +C)(D(B + E» = (A + B+ C )(BD + D)(BD + E) =>
I = (A +B +C)(D + D)(D + B)(E + B)(E + D) =>
I = (A + B +C)D(D + B)(E + B)(E +D)
2/) Data lafimzione logica di tre variabili:
1 = A(B+C)
Riscrivere f iII modo che ciascuna variabile compaia in ciascunlermille.
Soluzione:
-
Ri cordiamo che: x + O = x ; xx=O;
I = (A +0+ 0)(8+C + O) = (A +BB +CC)(8 +C +AA) =[(A + B8) +CC ][(C + 8)+ AA] =>
I = (A +BB+ C)( A + BB + C)(A +B +C)(A + B +C) =>
I = (A + B +C)(A + B +C)(A +B +C)(A + B +C)(A + B +C);
22) Trovare l 'implementazione fisica della seguente funzione logica:
I(A , B,C ) = ABC + AC + AB
Soluzione:
Supponendo di avere a di sposizione AND e OR, l'implementazione è:
A
c
-
-
I
A
B
./
Esprimiamo, ora, la funzione/come prodotti di somma e detenniniamo il corrispondente schema
circuitale.
12
r---
Pro[. V. Panaro: Eletrronica /1 - COl'loA (A-L) - UJure<J in Ingegnerio f"fQl'mo/iC<J
EurcitazlOl/i "umeriche a C1<nl di i"g. F. De LuJ"a rdi,
J = (ABC + A(B + C )) = (ABC + A)(ABC +(B + C)) =>
J = (A +A)(A + B )(A +C)(B +C + A)(B +C + BX B +C + C) =>
- -
--
J = (A + B+ C)(A +C)(A + B)
Lo schema circuitale è il seguente:
A-~--­
B ---1
C-L-~
J
A
-s;----
B-L-~
Un modo alternativo di esprimerefè il seguent e:
J = ABC+ A(B +C)
A
B
C
J
c -------,~
Detenniniamo ora lo schema circuitale utilizzando solo porte NANO e solo porte NOR.
J = ABC + AC+ AB = ABC+ AC + AB
"'Mopo
)
ABC· AC- AB
Questa espressione dif consente di ottenere l'implementazione co n sole NANO:
13
r--
Pro[. V. Pamlra; Elellrcmicall - CrNJo A (A-q -LAurea in Ingegneria Informatica
Esercitazioni nw_rlcM a clU'a di Ing_F. De lAonardjJ
A
B
C
'\
A
\- f
B
A
c
23) De/erminare lafllnzione logica! descritta dalla seguente mappa K:
Soluzione:
AB
00
CD
01
Il
IO
00
01
"
IO
f
= ABC + ACD + ABC +ACD +BD
( \)
Il raggruppamento da quattro è superfluo . Possiamo quindi utilizzare soli
due:
f
= ABC +AcD+ABC+ACD
(2)
24) Da/a lafimzione booleana di quattro variabili:
f(A, B, C. D) = Lm(O, 2, J, 4, 5, 7,8, 9, \3, \ 5)
Minimizzare la f e determinare lo schema circuitale a dlle livelli.
AB
Soluzione:
00
CD
O]
Il
IO
---oI
00
01
(f
\!
IO
14
Ì\
j/
I
raggruppamenti da
r
Prof. II: Pauaro: Elellronica 11- Corso A (A-L) - Laurea in Ingegneria Informatica
E.ercitazioni numeriche a Curo di jng. F.lk L<wnardi,
La funzionefè quind i data da:
f = BD+ACD + ABC + ABC
A
S;
D
/
A
B
"-
II
C
A
B
C
/
f
0
B
D
25) Data lafimzioue boolealla di q/lattro variabili:
frA, B, C, D) =
Usare la mappa K per minimizzare
con sole porte NOR.
TI M(O, 3, 4, 5, 6, 7, Il, 13, 14, 15)
f e determinare lo schema circuitale con porte a due livelli e
Soluzione:
AB
00
CD
01
Il
00
Ilo
;)
"
IO
Ò\
'>!!...
f = (A +C +D)(C + D)(B +D)(B+C)
15
iY
IO
r--
Pro! V. POSJoro: Elellronico 11 - Corso A (A-L) _ wr.rea in Ingegneria Informatica
Esercirazioni numeriche a cura di ing. F. ~ Leonardis
Realizziamo la funzi onefcon porte NOR. Sviluppiamo la funz ionef nel seguente modo:
j = (A + C +D )(C + D )(B + D)(B + C) = (A + C + D)(C + D)(B + D)(B + C )
De Morgon
)
j= (A +C+D) + (C +D)+(B+ D )+(B+C )
26) Determinare la funzione minimizzanle relativa alla segue1lfe tabella di verità e
determinarne lo schema con sole porte NAND.
A
B
C
D
f
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
1
1
1
1
1
1
I
1
1
1
1
1
O
O
O
O
1
1
1
1
1
1
1
O
O
O
O
1
1
O
O
O
O
1
1
O
1
1
O
1
I
O
O
O
O
1
1
1
1
O
O
O
O
16
I
1
1
1
1
1
O
O
O
O
r'
Prof v. Passaro: Elellronica 1I - ConoA (A.L) - LAurea in/ngegneTia Informatica
uercilazioni numeriche a Curo di ing. F. De /.eonardis
Soluzione:
Tracciamo la mappa K:
AB
00
CD
01
Il
lO
00
oI
,
1
o
1
1
La funzione min imizzata è:
j = ABC + ACD+BCD
Manipolando la funzione ottenuta si ha:
j = ABC + ACD+BCD
Do M • •,"
,
ABe. ACD·BCD
L' imp lementazione con porte NAND è:
A
B
C
A
C
D
B
C
D
r---
~
P- j
~
~
, 27) Calcolare la dissipazione di potenza di
1111
v
invertitore ideale.
T
Soluzione:
RL
Consideriamo l'interruttore ideale di figura :
VI •
~
.
17
Va
•
i
.
Pro! V. Passam: E /el/m nlea li - Corso A (A-L) - Laurea in Ingegneria Injo,malica
E!Iercitozioni numeriche O curo di Ing. F De Leona, di!I
Esso si comporta come un circuito aperto quando è OFF e come un corto circuito quando è ONo
Se la tensione di ingresso VI = O logico allora l'interruttore è aperto, non potendo scorrere
corrente in RL la tensione di uscita è Va = v+ ed inoltre la potenza dissipata è nulla, PD = O;
Se la tensione di ingresso è VI = 1 logico, allora l'interruttore è un corto circuito, pertanto la
tensione di uscita Va = O . La potenza è di ssipata sulla resistenza RL :
'
V+
(V +)
I = - =,> P = V' l = - L
R
D
L
R
,
,
Se l'invertitore si trova per metà del tempo in ciascuno stato la potenza complessivamente
dissipata è :
Valutiamo ora la potenza dinamica dissipata se IO uscita all'invertitore ideale è collegata una
capacità CL.
Supponiamo che la capacità sia scarica al tempo 1= 0 e che VI = O logico: la tensione di uscita si
porterà quindi alI' l logico in un tempo pari al tempo di carica della capacità. Il circuito da
considerare in questo caso è:
RLC, dVc + V = V"
.. dI
c
Risolvendo si ottiene:
VJt)
= V·(! -
-'V·
e "c, ) ='> l e (t) = Re
,
18
Prof. V. POlsoro: ElellrOtlico Il - Corsv A (A-L) - LAurea in Ingegnerio Inron""rica
Erercirazioni numeriche a cura di i"g. F. De Leonordis
La potenza dissipata sul condensatore è:
Analogamente la potenza dissipata sulla resistenza è:
f•,
(V· )'
P:-~ ' R(t)VR(t)dl ~ - 2 -
pdJ·>lanliC<J ::: pdJ·namiC<J
ahm .
c
+ pdinamiCO
:::
R
C,
(V· )' C
L
La potenza dinamica totale dissipata dall'invertitore è:
p"'oo~~
~f
INV
(V·)' C
L
28) Un invertitore logico caratterizzato da ulla dissipazione a riposo trascurabile viene
commutato allafreqllenzaf = lMHz. Se l'illvertitore vielle fallo funzionare con alimentazione di
lOVe pilota una capacità di 50pF, trovare la dissipazione dinamica di potenza e la corrente
media assorbila dall'alimentaziolle. Si assuma VaL = O e VOH = /O.
Soluzione:
Utilizziamo i risultati ottenuti per l'invertitore ideale:
La corrente media assorbita dall'alimentazione è data da :
P DdinamiC<l :::
v+l => l :::
p dJ·"""'ica
D
V·
:::
0.5 mA
29) Si consideri l'illverfitore di figura
Determinare i valori di VOL e VoH .
COli
V
Soluzione:
19
=
5.5V, RL =10 kn,
RoN =
lk. Sia Voff= OV.
,..--.,
Prof V. Passaro: E/errronica 11- CanoA (A-L; - Laureo in Ingegneria Informorico
E8ercirazioni numeriche o cura di ing. F. De Leonardi~
Quando la tensione di ingresso è al valore alto l'interruttore è chiuso quindi il circuito diventa:
V'
T
va
VOL --
V'
J)
' 'ON
f}
' 'ON
+
= 0.5 V
R
L
Se l'ingresso è al valo re basso, l'interruttore si comporta come un circuito aperto e quindi:
. 30) Si di~poJlga due intermUori ideali come mostrato in figura. Il nuovo interniltore così
ottenuto sarà controllato da due segnali. Che cosa succede se uno o entrambi gli ingressi sono
alii? E se sOfia bassi?
V'
Soluzione:
T
'i J il'
va
V/2
Se le due tensioni di ingresso sono al valore alto allora i due interruttori SI comportano come
corto circuiti collegando l'uscita a massa.
La stessa cosa accade se uno dei due interruttori è pilotato da un ingresso alto.
Se, invece, i due ingressi sono bassi gli interruttori sono dei circuiti aperti. Non potendo scorrere
corrente la tensione di uscita deve essere uguale alla tensione di alimentazione.
20
Pro[. V. POIIOro: ElellfOllicall - COI'lo A (A·L) - LA~rea in Ingegneria In[ormlltica
E,ercirazicmi n~_ricllll Q Cllro di Ing. F. 011 LeonardiJ
Possiamo, quindi scrivere la seguente tabella della verità:
VII
VII
Va
O
O
l
l
O
l
O
l
l
O
O
O
3 1) Un particolare inverti/ore logico ha una caratteristica di trasferimento p er cui p er VI
uguale a 1.4V e 2.6V lo p endenza vale - 1. Se VOL e VOH valgono rispellivamenle 0.6V e 3.7V.
trovare i margini di rumore nello stato alto e iII quello basso.
Soluuon e:
App lichiamo la definizione di margini di rumore:
NMIf = VOIf - V/H = 3.7 - 2.6 == I. IV
NMl. = V/l. - VOl. = 1.4 - 0.6=O.8V
• 32) Quali sono i margini di rumore che si riscontrano iII 11110 particolare famiglia logica nella
quale l'alimentazione è V,VOL = 0.1 V, VOH = 0.8 V, VIL = 0.4 V, V/H = 0.6 V. Qual è
l'ampiezza della regione di trasmissione ? Per avere Wl margine di rumore minimo di iV quale
valore è necessario che assuma v+?
Solu zion e:
Applicando le definizi o ni:
NMIf = VOli - V/H = O.8V" - O.6V" = O.2V"
NMl. = ~L - VOL = O.4V" - O. lV" = O.3V"
Larghezza = ~H - Vn = O.6V" - OAV" = O.2V'"
M iII . {NMH.NM, ) = NM H = l => l =~V· =>V· = SV
lO
33~
Determinare i pllllti caral/eristici della curva di trruferimento di
UII
illverlitore CMOS.
Solu zion e:
I punti caratteristici dell a curva di trasferimento sono VI/{ e V/l.
Richiamiamo le espressioni della corrente per le diverse zone di funzionamento dei MOS
nMOS : {lo.
~k.. [2(VG~ - V,; )Vv, - V,;,] zona triada Vos S VGS -V",
l Dn- k,, (Vas
V/>t)
zonasaturazloneVDS~ VOS
21
_
Vin
Pro! V. PossaTO: Elerfronica JJ - Corso A (A-L) - Laurea in Ingegneria Informatica
Esercitazioni numeriche a CUra di ing. F. De Leonardis
zona triodo Vso :-:;; Vsa
- 1v,p l
zona saturazione VDS 2! Vso
-Iv,p I
Assumiamo che la tensione di ingresso sia al livello alto . In questa ipotesi, l'nMOS lavora in
zona triodo mentre il pMOS in saturazione. Data la connessione serie dei due MOS occorre
sempre imporre l'uguaglianza tra la corrente che sco rre nel pMOS e quella dell'nMOS. Tale
condizione produce la seguente relazione:
k, (VDD -V,
-lv.O' =k" [2(V, - V.)Vo - vd] => :' (V
DD -
V,
-lv.l)' = [2(V, -V.)Vo - v~ J
"
.
dVo = - \.
Per calcolare VIII occorre Imporre
-
dV,
Derivando ambo i membri dell'espressione precedente rispetto a VI si ha:
- 2k,
- (V
k
DD
I Il = [2 (V - V l -dV"
- + 2V
dV
- V - V
I
Ip
I
a
'"
- 2V -dVo ]
o dV
"
"
·
\dV
o
QdVV
uan o 1= IH SI la - - = -1 =>
dV,
-lv.O = -2 (V", - v.l + 4V
- 2 k, (Voo _ V'"
Q
~
Iv I=v =V e k =k
Se
Ip
In
Va = ( VIII
-
n
I
VDD
2
p
=> Vo = ~ [2(V", - V.l - 2 k, (Voo - V",
~
-IV.O]
la precedente espressione diventa:
)
Sostituendo tale espressione nella uguaglianza di partenza e sviluppando si ha :
(
l
(
Viii 4V/ - 2VDD =- VDD- V/
Nel la ipotesi in cui IVtpl =Vrn
l
, +VDDV,---=>
V;o
4
=v, e k =k p la curva di trasferimento è simmetrica.
n
Possiamo quindi scrivere:
~II
_
VDD = - VIL + Vnn =>
2
2
34) Ricavare VIL VJII e i margini di rumore per
VO/J
= 5V e i MOS SOl/O bilanciati e caratterizzati da
Soluzione:
22
V,
1111
inverti/ore CMOS nel caso in cui
= IV .
Prof V. PassaTO: Elerrronica 11- Corso A (A -L) - Laurea in Ingegneria Informatica
EurcHazioni numeriche a cura di ing. F. De Leotlardis
Abbiamo dimostrato che valgono le seguenti relazioni :
Sostituendo i valori numerici nelle precedenti formule si ha:
1'"
I
I
=- (3VDD +2V,)= -(15+2)=2.IV
8
8
I
V,. = - (5VDD
8
I
-
2V,) = - (25 - 2) = 2.9V
8
Applichiamo la definizione di margine di rumore :
NM/{ = VOH
NM L
= V 1L -
-
V/H = VDD
V OL
-
VJH = 2. 1V
= 2. 1-0= 2.1V
35) Si consideri lIn inverti/ore CMOS con:
V. =1v,, 1= 2V,
(~l = 20, ( ~), = 40, fI"C~ = 2f1,C~ = 20;1 , V
DD
= IOV
Per ~ = VDD , determinare la massima corrente che l'inverti/ore può assorbire senza che Vo
superi 0.5 V.
Soluzione:
Poiché la tensione di ingresso è pari alla tensione di alimentazione allora il MOS di tipo n è in
zona triodo mentre il MOS di tipo p è in saturazione.
La corrente di zona triod o dell'nMOS è data dalla seguente formula:
Per calcolare la massima corrente assorbita dobbiamo sostituire a Vo il valore di 0.5 V.
36) Determinare il valore di picco della corrente assorbita da VDD durallte la commutazione
dell 'invertitore LYOS descritto lIell 'esercizio precedente. Determinare, inoltre, la potenza
dinamica dissipata SII ulla capacità di carico di 15 pF a 2 MHz. Qual è la corrente media
assorbita dali 'alimelllaziolle?
23
Prof v. Panaro; Elerrronica 11 - Corso A (A -L) - Laurea in Ingegneria fnformatico
Esercitazioni numeriche a cura di ,.ng. F. De Ù!onard,..
Soluzione:
La teoria sull'invertitore CMOS ci indica che il punto di simmetria della caratteristica di
trasferimento è VI = VDD /2 .
Vediamo come si comportano i MOS per tale valore della tensione di ingresso:
nMOS:
pMOS:
-V- D D
V --j -V-DDv:S O
{
Vso = VDD - Vo
= V~D -V
Dn
Supponiamo che nMOS sia in zona triodo e che pMOS
l'espressione delle due correnti :
Sia In
saturazione, ed uguagliamo
-v)v -v']=>vO =VDD_V
'
2
DD
- V)'
, = [ 2( V2 / 0 0
( VDD _VDD
2
II precedente valore conferma il fatto che pMOS è in saturazione, infatti: Vso :::: Vso
-IV,pl.
nMOS è al limite tra saturazio ne e zona triodo infatti è automaticamente verificata l'uguaglianza
tra le due correnti di saturazione:
k. (v, - v,)' =k, (vDD -v, - V,)'.
La corrente di picco assorbita durante la commutazione è pertanto data dalla seguente
espressIone:
1= k. (V, - V,)' = k. (V;o-V, J= 200(5 - 2)' = 1800!,A
La potenza dissipata su una capacità di carico è data da:
Per calcolare la corrente media assorbita dall'alimentazione utili:zziamo la seguente relazione:
37) Un dato inverti/ore CMOS utilizza d;~posilivi a canale Il e a canale p di identiche
dimensioni. Se Pn = 2/-1". IV, I = IV, VDD = SV, trovare VIL ~H e i margini di nlmore.
24
,...
Prof. V. PaSSaTO: E:Jellronica Il - CorsaA (A-L) - Loureo in Ingegneria Informat'ca
Eserciloziorri numeriche a cwra d' 'ng. F. De Leonurd's
Soluzione:
(W)
Poiché (:l =(:), e
k~
=1
2 J.i~
Co:c -L
n'
(W)
k p --1 C 2 J.i p a< L
l'.
p
=21', =:,k. =2k,
Calcoliamo VJlf imponendo l'uguaglianza della corrente di triodo dell 'nMOS e della corrente di
saturazione del pMOS .
k, (VDD - V, - V,)'
=
k. [2 (V, - V, )VD- Vn =:, (vDD - V, - V,)'
=
2[2(v, - V,)vD- V';]
derivando ambo i membri dell'espressione precedente ri spetto a V, si ha:
- 2 (VDD
- V, -V, ) = 2[2(V, -V,) dVD+ 2Vo _ 2VDdVo ]
dVI
d~
Quando VI = V,H si ha dVo = - I :::::)
dV,
- 2(VDD - V", - V,) =-4(V", - V,)+8Vo =:, Vo =.!.[4 (V", - V,) - 2(VOO - V,H- V,)]
8
Sviluppando l'espressione precedente e sostituendo i valori numerici di VDD e
~
si ottiene:
1
VD = - (6V", -12)
8
Sotituendo la precedente espressone di Vo nella prima uguaglianza ricaviamo V,H :
(4-VJH )'
=
2[2(VJH
- 1) (é1.4 V"_é1.)_(é1.
v _é1.)']
2
4 /H
1
2
La precedente relazione rappresenta una equazione di secondo grado nell 'i ncognita V,fI >
la cui soluzione fornisce :
V/H = 2.5 4
Per calcolare V,L si procede in modo analogo. si impone cioè l'uguaglianza della corrente di
triodo del pMOS e della corrente di saturazione del nMOS .
25
r-.....
Pro! V. Passaro: Ektrronico 1I - Corso A (A-L) - Laureo in Ingegneria 'n[orma/ica
Esercilazioni numeriche a curo di Ing. F. De Leonardis
k.(V, -<-;)' ~k,[2(V= - V, - V,)(V= - Vo)- (V=- vol' J""
2 (V, -V,)'
~[2(V= - V, -V,)(V= - Vo)-(V=
-vol'J
derivando ambo i membri dell'espressione precedenlc rispello a VI si ha:
4(V
- V) ~[-2V
I,
Quando VI
-2V
DD
::=
DD
VJ1. si ha dVo
dV,
dVo + 2V +2V dVo +2V dVo -2V dVo +2V dVo ]
dVI
o
' dV
'dVI
°dVI
DD dV
I
I
=
- I
~
4(Vu. - V, ) = [- 2Vl)D + 2Vro +2Vo - 2VJ1. - 2V; + 2Vo - 2VDD ]
, -
Semplificando e sostituendo i valori numerici di VDD e VI si ottiene:
J
Va = - VIL +2
2
Sostituendo l'espressione di Va nella uguaglianza di partenza otteniamo la seguente equazione
di secondo grado nell'incognita
~L:
5~~ +20~L -52=0
che ri solta da :
Ricavati i valori di
NM H = VDO
-
~H
V /H
eVJL possiamo ricavare i valori dei margini di rumore:
= 5 - 2.54 = 2.46
NM L = ~L -O = 1.80
38) Trovare lafifllziofJe logica implementata dal seguente circuito.
C-j
y
26
,,-..
Pro[. V. POJJoro: E/ellfOll/ca 11 - Cono A (A.L) -LAurea in Ingegneria Informatica
EJerc,'azlonl numeriche Q cura di Ing. F. D« UonardiJ
S oluzione:
Dal circuito osserviamo che gl i ingressi A e B sono in configurazio ne OR tra loro, mentre
l' ingresso C è in configu razione N AND con A e B, qui ndi:
Y = C( A + B).
Detenniniamo Y attraverso la tabella della verità. I pMOS si comportano come interruttori aperti
se il segnale è alt o mentre come interruttori chiusi se il segnale è basso. Gli nMOS hanno un
comportamento duale. Quindi in linea di principio, qu ando A., B e C sono all ' uno logico gli
nM OS sono corto circuiti mentre i pMOS sono circuiti aperti, il contrario accade se i segnale
sono all a zero logico.
La tabella dell a verità e qui nd i:
A
B
O
O
O
O
I
I
I
I
O
O
I
I
O
O
I
I
Y
I
I
I
C
O
I
O
I
O
I
O
I
O
I
O
I
O
La mappa K è:
AB
00
Ol
Il
IO
C
Y=C + AB
DeMorg3l1
)
Y = C(A + B)
39) Si consideri una tecnologia CMDS iII cui lo lUI/ghezza del callaie di lulli i dispositivi sia
5pm ed iII cui si desidera che la corrente minima dispollibile i" uscita sia quella olleln/ta con
(WIL),=2.
a) Per 11110 NOR a dlle ingressi determinare la larghezza di ciascun MDS a callaIe 11 e p
e l 'area complessivamente occupa la.
b) Si ripeta per I/na NAND a due ingres.,"i.
Soluzione:
Dalla teoria, sapp iamo che in una NOR a due ingressi le correnti di push-down e pull -up sono
uguali se è verifi cata la seguente relazio ne:
27
r--
Pro{. V. Panaro: Elellronica Il- COI'so A (A·L) - w llrea i" t"gegMria InfOl'IIIa/ica
EJerciraziOlfi "lImerich" a CJlM di I"g. F. Dtll.AO>Iardis
l -4[Wl
[W
L
p
L
n
Inoltre, la minima corrente nella porta NOR si ha quando uno dei due ingressi è alto e l'altro
basso. Tale corrente è proprio quella relativa alla conduzio ne dell'nMOS. In base alle specifica
del problema si ha:
Dalla prima relazione otteniamo:
L'occupazione di area è:
A = (40. 5) . 2+(10 . 5) . 2 = 500 ~m2
Nel caso di una NAND a due ingressi, l' uguaglianza delle correnti di push-down e pull-up
produce:
Anche in questo caso, la mi nima corrente si ha quando solo uno dei due ingressi è alto. Tale
corrente è quella relativa all a conduzione del pMOS. Poiché tale corrente deve essere uguale a
quella fornita da un nMOS con (WIL) = 2, (specifi ca del problema), si ha:
L'area occupata è:
A = 400 ~m2
40) Ripetere l' esercizio precedente con NOR e NAND a quattro ingressi.
Soluzione:
a) Per una NOR ad N ingressi l' uguagli anza delle correnti di push-down e pull-up produce la
seguente relazione:
28
Prcf.
II: Puswro: Ek lrroniCD 11- C()f'wA (A..L) _ LD"~eD in Ingegneria In{ormalioo
EstmlaziDJIi n14lt1ericht Il Cl/rD di ing. F. CH ~rdlS
La minima corrente che scorre nella porta logica è quella dovuta alla conduzione di un nMOS .
Poiché il problema richiede che tale co rrente deve essere uguale a quella di un nMOS con (WIL)
= 2, si ha:
( ~)" = 2 => W, = 2 · 5 = lOl'm
Quindi :
Wp = 2NW" =80 "m••
~
L'occupazione di area è data da:
A = (80. 5) . 4 +(10.5). 4 = 1800!'ffi'
b)
Nel caso di una NANO a N ingressi vale invece la seguente relazione:
In base alla cond izio ne sulla corrente minima che deve scorrere nel dispositivo, dobbiamo
imporre la seguente relazione:
Quindi :
N
Wn =2 Wp = 40 "m
r-
A=(40·5) · 4+(20·5)· 4= 1200 l'm'
Come si osserva, in una tecnologi a CMOS l' occupazione di area di una porta NANO è sempre
inferiore a quell a di una porta NO R.
41) Progeuare 1111 circuito per convertire IIIII/WI/ero a 4 bit espresso in complemento ad J in
un numero a 4 bit e~presso in complemento a dlie.
Soluzione:
La tabella della verità che realizza la conversione richiesta è la seguente:
x,
o
x,
o
o
o
I
29
Y,
o
o
o
Yo
,,--.
Prof v. Passara; E/errro.,;ca II - Corso A (A-L) - Laurea in Ingegneria Informari.:o
Esercitazif)J1j numeriche Q cura di ing. F. D e u onardis
o
O
O
O
l
l
l
l
O
O
O
O
l
l
l
l
O
O
O
O
O
O
l
l
l
l
l
l
l
l
l
O
l
O
l
O
l
O
l
O
l
O
l
O
l
O
l
l
O
O
l
l
O
O
l
l
O
O
l
l
O
O
O
O
O
O
l
l
l
l
l
l
l
l
O
O
O
l
l
l
l
O
O
O
O
l
l
l
l
O
l
l
O
O
l
l
O
O
l
l
O
O
l
l
O
O
l
O
l
O
l
O
l
O
l
O
l
O
l
O
Sintetizziamo le uscite V i con le mappe K a quattro vari abi li :
00
01
00
Il
lO
1
1
00
N
01
I)
1
r
lO
w
00
\J
OL
01
lO
1
lO
01
11
00
y
01
1
1
1
1
1
I( I
,
~
lO
:r
1
Y,
00
01
Il
lO
1
1
1
1
1
1
1
1
,
Y,
~- ~~~~+~ ~+ ~~ +~ ~ - ~ ~~ffi ~
Y2
::::::
X l X O X 2 + X 1X 2 + X OX 2
Y1
:::::
X 1X o + XOX 1 ::::: X o Efl Xl
:::::
X 1X o G) X 2
Yo ::::: Xo
30
IO
,---
~
o1
"
00
.]i
ì)
Y,
00
Il
r--
Pro{. Y. ?ouoro: E/ef/ronica /1 - ConDA (A -L) - Lo."nD in /ngegneri o Informotico
furcilo:ioni numericMo. curo di "'g. F. lH l..eo'l(mJi,
Lo schema circuitale è:
x,
x,
D- v'
:JD-v'
D- v'
X,
x.
V,
42) Progettare
1111
Ellcodrtr utilizzando 1/11 solo tipo di porte.
Soluziolle:
Indichiamo con Ii gli ingressi del dispositivo e con Ai le uscite. Assumiamo che il cod ice di
parola in uscita sia ad 8 bit. Le diverse paro le possono essere scelte arb itrariamente ma diverse
l'una dall'altra.
La tabella della verità relativa al funzionamento dell'Encoder è la seguente:
I,
l,
l
O
O
O
A7
A"
A,
A.
A,
A,
A,
Ao
l
l
O
l
O
l
l
O
I
l
l
l
l
l
O
O
l
lo
O
O
O
O
l
O
O
I
l
O
O
I
I
l
O
l
l,
O
O
O
l
O
O
O
I
I
l
O
Utilizziamo le mappe K per sintetizzare le si ngole uscite:
h 12
00
"
lO
00
01
11
LO
1/
I
f'J....
x
, "'\
, ../
x
x
x
,
O
x
,
,
" 1/
X
w
00
00
Ul
x
f '\
, , ,
O
k
Il
LO
O
x
\
x
A,
JI
'"-Y'
00
I,
~
11
01
00
01
"
lO
A,
W
,....
Pro! Y. POMaro: Elerrronico /1 - COl', oA (A-L) - WllrilO i .. J..gegl1f!f'io IltformQIlCO
Eurcirazioni IIII_n ehe Q curo di i ..g. F.
Uonardi,
o.
00
00
01
X
/
" X-
" "---
01
Il
O
X
X
,
X
X
X
X
00
IO
O
'"
I><
V
00
01
"
00
01
"
01
f Ì\,
l
"
,
"
Il
IO
X
O
x
X
, , , .,
\ j x ,
X
O
O
,
O
,
X
X
01
,
X
X
X
l
,
" V
X
X
l
Il
IO
00
" l""-
f \
X
X
X
X
X
'"
\ 3"
A,
01
00
Ir '
l
01
1"--
X
IO
01
l
00
"
00
I, '"
,
\
A,
00
01
, ,
O
X
Il
IO
, ~
, ./
X
X
X
,
Le uscite sono qui ndi :
.4.o = 11 0ppure13 + l l + / u;
AI = / ] +II;
~ = I2 +Io ;
~ = 11+10 ;
A4 = l o oppure Il + 12 + Il ;
A, = 04, ;
~
= Il oppure l o + Il + 12:
A, = .4,, ;
Notiamo che le uscite Al. A2. A3 sono espresse come somma di termini (porte OR), le restanti
uscite possono essere espresse come NOT o OR. Poiché è richiesto l'utili zzo di un solo tipo di
porte, scegliamo l' imp lementazione con porte OR.
32
r-
Pro! V. Passaro: Elellronico Il - Corso A (A-L) - La~reo in Ingegneria Informatica
Eserr:irazioni nu meriche a curo di ing. F. De LeonorJiJ
~
Ao
"
~
L
1>D
c
A,
"
c
I
L
42) Progettare Wl circuito decodificatore
segnale e 23 linee di uscita.
COli 1111
ingresso di abilitazione, Ire ingressi di
Soluzione:
Indichiamo con Ai gli ingressi di segnale, con En l' ingresso di abi litazione e con Yi le uscite del
decoder. La tabella della verità è la seguente:
E"
A,
Al
Ao
Y,
y,
Y,
y,
Y,
Y,
Yl
Yo
O
O
O
O
O
O
O
O
O
O
O
O
I
I
I
I
O
O
I
I
O
O
I
I
O
I
O
I
O
I
O
I
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
]]
O
O
r-"
Prc{. V. PQJsQro: Elellronlco 11 - CCKloA (A-L) - Laurea ùllngegtK!riQ Informo/ico
EHm/azioni "u",ericMo 01,., di i"g. F. De L«N!ordil
l
l
l
l
l
l
l
l
O
O
O
O
l
l
l
l
O
O
l
l
O
O
l
l
O
l
O
l
O
l
O
l
O
O
O
O
O
O
O
l
O
O
O
O
O
O
l
O
O
O
O
O
l
O
O
O
O
O
O
O
O
l
O
O
O
O
O
l
O
O
O
O
O
O
l
O
O
O
O
O
l
O
O
O
O
O
O
O
O
l
O
O
O
O
O
O
Sintetizziamo le uscite con le mappe K:
E" A,
00
01
Il
IO
o
O
O
O
O
O
O
"
O
O
IO
O
O
00
00
01
\I
IO
00
O
O
O
O
O
01
O
O
CD
O
O
O
"
O
O
O
O
CD
O
"
O
O
O
O
00
01
Il
IO
00
O
O
O
O
O
01
O
O
O
CD
O
"
O
O
O
O
"
O
O
A,
A"
Y,
Y,
IO
00
01
Il
00
O
O
O
O
O
01
O
O
O
O
O
O
"
O
O
O
CD
O
O
"
O
O
O
O
00
01
00
O
O
01
O
O
O
"
O
O
"
O
O
IO
Il
CD 'O
Y,
IO
Il
-
00
01
Il
IO
O
00
O
O
O
CD
O
CD
01
O
O
O
O
O
O
O
"
O
O
O
O
O
O
O
"
O
O
O
O
O
O
O
01
O
O
"
O
"
O
Y,
Le singole uscite sono:
Il
\O
00
O
O
O
O
01
O
O
O
O
"
O
O
O
O
"
O
O
O
CD
Y,
E" A,
01
01
-
Y.
00
00
Pro{. V. Pouoro: Eleuran;CQ 11- CorIO A (A.L) -Wllr ilD in Ingegneria Informatica
E,ercifazicmi nllmeriche o cura di Ing. f: De I...«mardil
Y, = E.A,A,A,,;
Y, = E.A,A, A,,;
Y, = E.A,A,A,,;
Y. = E.A,A,A,, ;
Y, = E.A,A,A,, ;
Y, = E.A, A,A,,;
Y, = E.A, A,A,, ;
---
Y. =E.A,A,A,, ;
42) Simetizzare
1111
MUX COli due ingressi e lilla linea di indirizzi.
Soluzione:
Indichiamo con S l' ingresso di selezione, con Ii gli ingressi e con Z l'uscita del MUX.
La tabella della verità è:
S
I,
O
O
O
O
O
O
l
l
l
l
I,
O
Z
O
l
O
l
O
O
l
l
l
O
l
O
l
O
l
l
l
O
O
l
l
Utilizziamo la mappa K a tre variabili per sintetizzare l'uscit a Z.
't
S II
00
01
•
O
O
l
l
Il
l'
IO
~
l
O
l
O
S
•
Z = SI , + SI;,
lo
.-----l---.~L-:s~
Z
35
Pro! v. Pm8aro: ElellrOnica Il - Corso A (A.L) - Laureo in Ingegneria Informatico
Eserci/azioni numeriche a Curo di ing. F. De [.eonurdis
42) Flip-jlop e reli sequellziali
I circuiti logici combinatori sono quelli in cui l'uscita dipende da una combinazione degli
ingressi, mentre nei circuiti sequenziali sono presenti celle che ricordano la sequenza di
applicazione degli ingressi, per cui l'uscita dipende dalla stessa uscita, oltre che dagli ingressi.
,...
Sintesi della cella SR
Il circuito fondamentale di memoria digitale si ottiene collegando due porte NOT (o due
NAND) in modo incrociato, ottenendo un sistema con reazione chiamato LATCH, in cui
l'informazione viene fissata o bloccata (latched). Il FLlP-FLOP è un latch temporizzato (cioè con
dock). Esso ha due stati stabili ed é anche detto multivibratore bistabile o binario ed anche unità,
o cella, di memoria a l bit.
Una cella di memoria con porte NAND (latch SR asincrono) ha la seguente tavola della verità:
S
R
nextQ
nextQ
I
O
O
O
I
I
I
O
I
O
I
O
Q
Q
descrizione
AMBIGUO
SET
RESET
CONSERVA
descritta dalla funzione logica: nextQ = S + RQ, dove Q indica lo stato attuale, nextQ lo stato
futuro e nextQ lo stato futuro negato.
Il corrispondente circuito con porte NOR dellatch SR ha la seguente tavola della verità:
S
R
nextQ
nextQ
descrizione
O
O
O
Q
Q
O
I
O
O
CONSERVA
RESET
SET
AMBIGUO
O
O
Sintesi di un DFF
a) illatch RS con porte NANO di tipo D (DFF) é un flip-flop RS con un circuito di controllo
(flip-flop si ncrono): quando il segnale di dock d'ingresso é basso, lo stato Q non cambia.
Quando l'ingresso di dock é alto, lo stato Q segue l'ingresso dei dati D:
CLOCK
D
nextQ
next Q
descrizione
O
O
Q
Q
Q
Q
CONSERVA
O
I
O
O
O
l'equazione logica descrivente é
36
CONSERVA
RESET
SET
Pro{. Y. Pauara; EI.rff"O/'lica fI - COI'so A (A-L) - LAIlrM in Ingegneria Informarica
Est/rciraziani ""mtlrlche a CIIra di Ing. F.!)tI uOtrOroj$
Q ~ D(CLOCK ~
Q
~
Q (CLOCK ~
I)
O)
~>
nel caso CLOCK = l , si ha la tavola della verità di eccitazione, in cui l'uscita Q segue l'ingresso
D (abilitazio ne al livello alto)
Qn
O
O
I
I
descri zione
RESET
SET
RESET
SET
D
O
Qn+ 1
O
I
O
I
O
T
nextQ
I
nextQ
O
Q
Q
descrizione
RESET
CONSERVA
O
Q
Q
O
NEGATO
SET
Q"+1
I
O
I
O
Sintesi del flip-fl op tipo T
T
O
O
O
I
l'equazione logica descri vente é
(CLOCK ~ I) ~>
nextQ ~ TQ +
Q ~ Q (CLOCK ~ O)
f Q
Sintesi del flip-flop tipo JK
K
J
nextQ
nextQ
descrizione
O
O
O
Q
I
O
Q
CONSERVA
SET
RESET
NEGATO
O
O
I
Q
Q
l'equazione logica descrivente é
(CLOCK ~ I) ~>
Q
~
Q (CLOCK
~
nextQ ~ JQ +
KQ
O)
Ma ster-Slave
MASTER - SLAVE D flip-flop, é formato da due flip-flop in cascata. La tavola della verità in
condizioni di eccitazione é data da
J
K
Qn
Qn+ 1
O
O
O
O
37
descrizione
CONSERVA
Pro[. Y. POIlOI"(}; EI.ttTOniCQ 11 - COf"soA (A.L) - Lnll.reo in /"gcgnerio /,,[wmolico
~ercita;:iOllj
OlIl.",ericJt. o ,""FO di jng. F
De UOIIordiJ
o
O
O
O
42) Progettare
1111
l
O
l
O
l
O
l
O
O
CONSERVA
RESET
RESET
SET
SET
TOGGLE
TOGGLE
l
O
O
l
l
l
O
contatore sincrono MOD-4.
N'd
Soluzione:
Tracciamo il diagramma di flus so di tale coniatore:
Conteggio O
<Uscita "'00
Conteggio 3
Uscita s ii
~
T
COIllCggiO I
Uscita =0 1
r-----
Conteggio 2
Uscita : :1 10
Passia mo dal diagramma di flusso al diagramma di stato. 11 diagramma di stato è rappresentato
da tanti cerchi quanti sono gli stati della macchina, collegati da frecce che ne individuano la
direzione di evoluzione. Ciascun cerchio è del tipo :
statoJ
0ut
Associamo al singolo conteggio del contatore, uno stato della macchina. Indichiamo questi
quattro stati con A,B,C,D.
AJOO
DI II
Gli stati di una macchina sequenziale possono essere fi sicamente realizzati tramite Flip-Flop. li
num ero di FF necessari deve sodd isfare la segu ente disuguaglianza:
38
Prof v . Panaro: Elerrronica 11 - Corso A (A·L) - Loureo in Ingegneria InfomlOrica
Esercifazioni numeriche a cura di Ing. F. D e u onardiJ
dove:
111
è il numero di FF e
Il,
è il numero degli stati della macchina.
Le uscite dei due FF producono i quattro stati seguenti:
Q,Q" = 00, 01, IO. 11.
I passi successivi sono: a) assegnazione degli stati, b) scelta del tipo di FF, c) realizzazione della
tabella di transizione.
Facciamo la seguente assegnazione:
A = 00
B = 01
C = IO
D
= Il
Utilizzando i FF di tipo Dj la tabella di transizione è:
Stato presente
Uscita presente
2 12 0
00
01
lO
Il
Q,"Q;
00
01
lO
Il
Stato futuro
on'l Q"+l
-, "
01
lO
Il
00
D,
D"
O
l
l
O
l
O
l
O
La tabell a di transizione serve per progettare la rete combinatoria che piloterà gli ingressi dei
DFF. Usiamo a tal scopo le mappe K a due variabi li:
Qo"
o
I~~I
D,
D,
D"
=Q,Q" +Q,Q"
D" =Q"
Il circuito che implementa il contatore sincrono MOD-4 è il seguente:
D,
Q,
-
Q,
cl ock
,
I--J
I- L..}
l
'-
)
L
39
D,
Q,
.
-
Q,
r--
Prof. V. Pas$aro: Elel/romca fl - Corso A (A-L) -Laureo in ingegneria Informatica
E$ercilaziani numeriche a cura di ing. F. De uanardis
42) Progettare 1111 contatore Up-Down MOD-4 sincrono.
/110
Soluzione:
Questo tipo di contatore ha un ingresso di controllo M che seleziona il modo di funzionamento.
Supponiamo di avere:
M = l Up: 0,1,2,3,0, ..
M = O Down : 0,3,2, 1,3, .. .
Come visto nel caso del contatore sincrono MOD 4, gli stati della macchina sono quattro e
l'uscita della macchina coincide con lo stato presente dei FF.
~
In questo caso, però, il diagramma di flu sso deve inglobare
Conteggio
i rombi di decisione che permettono di ramificare il
~O
diagramma a seconda del valore dell ' ingresso M.
Uscita=OO
M
°0
-.l
Conteggio
=1
Uscita=Ol
°<2>
~
Conteggio
=2
Uscita= 10
0
I
Conteggio
~3
Uscita= ll
40
~~?
I
Praf V. PO$$aro: Elel/ra/'U.:o 11 - CanoA (A-L) - La..reo in Ingegneria [,,[orl1lOli.:o
E$ercitazioni nUl1leriche a cura di ,ng_F. De Leonardi$
Dal diagramma di flusso passiamo al di agramma di stato :
.M~I.A
NOO
M =O V
M- l
M- O
M-O
B/O I
i
M=
M=l
C/IO
M=l
Analogamente a quanto visto nell'esercizio precedente,
l'assegnazione degli stati è la seguente :
FF da utilizzare sono due e
A~OO
B
~
01
C~1O
D
~
11
Se supponiamo ancora di utilizzare i DFF, si ha la seguente tabella di transizione:
M
O
O
O
O
l
l
l
l
Stato presente Uscita presente
Q,"Q;
21 2 0
Stato futuro
00
01
lO
lO
11
00
01
11
00
01
ll
lO
00
01
01
lO
lO
lO
ll
11
ll
00
M
ICi>
O
l
O
O
l
O
l
l
O
l
O
l
O
l
O
l
O
QrQ; M:
Q"Q"
, o
o
D,
Ql"+IQ;'l
00
01
Le mappe K sono a tre variabili
D,
O
CD
Ci)
O
()
00
" "
O
O
O
O
:1B1
1(0
D,
D,
41
w
lta
Pro{. V. Pallaro: Ekllronlcall - C(N'loA (A- L) _ Lawrea in IngegnerialnfomltJ/icQ
Enw:ilM.;onl nwmt:rlchtt a Cllro di fnR. F. Dt: UiJnQrdis
D, = Q,Q,M +MQ,Q, +MQ,Q, +MQ,Q,
D, = Q,
42) Progel/are 1111 riconosci/ore sincrono di sequenza che fornisca J in uscita quando e solo
qual/do l'ingresso X ha aS57111to l 'uno logico per tre o più illterva//i di dock successivi.
Soluzione:
Assumiamo che l' ingresso X sia sincrono, cioè cambia valore in accordo alla forma d'onda di
dock. Tracciamo ora il di agramma di stato della macchina. Per fare questo, occorre prima
definire tutti i poss ibili stati attraverso i quali la macchina a stati finiti evolve:
Stato A= stato in cui X [ll"~ed~nle = O;
Stato B= stato in cu i X[lI"ecc<i~nl e = I;
Stato C = stato in due Xprc ecdelllc = l ;
Stato D"" stato tre o più ~coocllte =!;
Osserviamo che la precedente assegnazi one degli stati permette di descrive in modo completo il
funz ionamento logico del riconoscitore di sequenza richi esto .
x ~O
NO
X~ I
BIO
X~O
X~ I
x =O
CIO
X~ I
Dii
L' implementazione fi sica del riconoscitore (nella forma di macchina di Moore) richiede due FF,
poiché la macchina evolve attraverso 4 stati.
Facciamo la seguente assegnazione degli stati:
42
,.-.
Pro! V. Passaro: EleUMnica 11- Corso A (A.L) - Laurea in Ingegneria In[orma/iro
B erci/azioni numeriche a cura di ing. F. De Leanardis
A =00
B =0 1
C= 1O
D = 11
Scegliamo i FF di ti po JK, la cui tabella dell a verità è:
l"
O"
O"
.I
O
O
I
I
O
l
O
l
O
l
K
x
x
l
O
x
x
Nota la tabella della verità dei JKFF possiamo realizzare la tabell a di transizione della macchina
In esame:
Stato
presente
X
Q,"Q;
Uscita
presente
Z
00
01
O
O
O
O
l
l
I
I
Stato
futuro
11
00
01
lO
lI
K,
.I,
Ko
O
O
x
x
O
x
x
I
x
x
l
I
O
x
x
l
O
l
x
x
l
x
x
I
x
x
O
O
l
x
x
O
Q"~IO"+1
, -o
00
00
00
00
01
O
O
O
I
O
O
O
I
lO
.I,
IO
Il
Il
Detenniniamo il circuito co mbinatorio attraverso le mappe K a tre variabili:
K,
l,
0"0
"
- I -o
X
00
01
Il
lO
Q· 1"O"
-o
00
01
11
X
z
43
lo
lO
r--
Pro! V. PO$$oro; EJeuronico 11 - CanoA (A·L) -Laurea in Ingegnrmo Informatica
E.erei/o:ioni numeriche <I Cl<rO di irlg. F. De Leonardi.
J, = XQ,
K1 = X
J, = X
K, = XQ,
Z =Q,Q,
_)-z
~
t--D
J,
K,
:r-/
Q,
-
QI
J.
K.
Q.
,
Q.
~
Clock
x
42) Progettare come macchina di Mealy il riconosci/ore sincrono di sequenza dell'esercizio
precedente.
Soluzione:
Nella macchina di Mealy gli stati da considerare sono i seguenti:
Stato A quando arriva X=O ;
Stato B quando arriva X= l;
Stato C quando arrivano due l successivi;
Il diagramma di stato è il seguente:
Scegliendo i JKFF la tabella di transizione è la seguente:
44
r""
Pro{. Y. PQnQro: ElerrronicQ Il - Corso A (A-LJ - LAllr"" in Ingegneria /n[orlnariCD
furalazioni nllmericlteQ Cl/f'Q d i ;..g. F. ~ l.eon<Jrdis
0/0
A
0/0 110
B
0/0
110
c
1/1
Per poter sintetizzare
assegnazio ne degli stati :
X
Uscita
presente
Z
Stato
presente
Q,"Q;
00
01
lO
00
01
O
O
O
l
l
l
01
01
O
O
,
O
I
"
r-
V
Jo
Ko
x
O
x
x
x
l
l
x
O
l
x
x
lO
O
O
x
O
l
x
x
l
lO
x
O
O
x
00
00
00
01
01
o
,
K,
Qt1Q;+1
x
x
J,
Stato
futuro
O
O
O
O
O
l
lO
o
tre stati del1a macchina occorrono 2 FF. Facciamo la seguente
, x
, , ,
~
00
Q,"Q;
"
X
01
Il
X
IO
Q,"Q;
o
45
01
lo
00
01
Il
O
O
x
O
O
,
z
Ko
01
O
X
o
00
]:
K,
l,
Q;'Q;
01
IO
rx
I
"
Pro{ V. Ptnl Qro: ElellroniCQ I1 - COf"IQA (A-L) - LaUTM
es"cflllti01li numttricl!e .. CIJ .... di l'IS. F.1)e L«maTdi'
j'l Jl1geg~riQ
ItIj"Of"mQfJCQ
J , = XQo
K, = X
J O = XQ,
KO= l
Z = XQ,
42) Progettare 1111 contatore M OD-7. lneludere ilei progetto un circuito che consenta, se si
finisce in uno slato iuulilizzalo, di riportare CDII l'impulso successivo il cOlllatore nello stato di
azzeramento (resel) Q1QJQo = 000.
Soluzione:
Poiché il contatore rich iesto è MO D-7, il numero di stati è
richiesto è tale da verificare la seguente disuguagl ianza:
2'" ~ ".
=> IIF
n~
= 7, quindi il numero di FF
= 3.
Facciamo la seguente assegnazione degli stati:
Conteggio
Q,Q,Qo
000
00 1
010
O
I
2
3
4
5
OII
6
100
101
11 0
7
III
Supponiamo di utilizzare i FF di tipo JK . La tabell a di transizione è:
Stato
presente
Stato
futuro
Q"O"Q"
2_1
o
000
00 1
010
011
100
Q"O"Q"
, , o
00 1
010
011
100
101
110
000
000 I
IO I
11 0
I II
J,
K,
J,
K,
J,
K,
O
O
O
I
x
x
x
x
x
x
x
x
O
O
I
I
O
I
x
x
O
I
x
X
x
x
I
x
I
x
I
x
O
x
x
I
x
I
x
I
x
I
00\'\110 al conteggio
nonnale
Dovuto al reset
richiesto
Stato non utilizza.to
46
O
I
x
x
I
I
Pro! V. Pouoro: E/el/ronica 11 - Corso A (A-L) - lAurea in lngeg"er;a Informatica
Esercitazioni n""'eriche a c"ro di Ing. F. De Leonardis
Sintetizziamo gli ingressi dei JKFF attraverso le mappe K a tre variabi li .
Il
01
l,
.
~.
Q;QI" 00
Q;
o
I~
O
IO
I~
K,
Q;Qr
O"
-,
00
Il
01
IO
:m ~
Q;Q,"
O
x
l,
QIQO
K, =Q,
J2
l,
K,
Il
01
IO
=
J 1 = Qo
K , = Q, +Q,
J, = Q,Q,
Ko = I
47
Q;
o
00
Il
01
IO
ICB 1351
""