• 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 ""