Disseny Microelectrònic I. Pràctiques.

Pràctica 1: Introducció a l'SPICE

1.- INTRODUCCIÓ

    L'objectiu d'aquesta primera pràctica és familiaritzar-se amb l'eina de simulació de circuits que s'usarà al llarg del curs així com amb l'entorn de treball on es desenvoluparan les pràctiques. Es presenta, a més el concepte de disseny jeràrquic, a través del propi exemple de simulació.

    El treball de laboratori a realitzar es composa de dues parts: una primera simulació guiada i una segona que requereix un esforç de disseny i per a la qual heu de realitzar un petit treball previ que es detalla a l'apartat 3.2.

2.- ENTORN DE TREBALL

    Usarem una versió del simulador de circuits SPICE. El sistema operatiu que usem és el LINUX, una variant de UNIX. En els següents apartats es detalla la forma d'accedir a l'entorn de finestres usat, una llista d'ordres bàsiques per LINUX, l'ús d'un editor de fitxers de text i algunes qüestions sobre SPICE (es pressuposa un coneixement bàsic del simulador SPICE per part de l'alumne). 

 

2.1.- Descripció i accés a l'entorn de finestres

    Al engegar l'ordinador haureu de fer servir el vostre login i password (donat amb la matrícula). Llavors apareixerà un menú on haureu de triar l'opció "Arrencar linux". Una vegada arrencat el sistema, per tal d'accedir-hi, haurem d'indicar de nou el nom d'usuari quan ens demanen el "login name". Useu el mateix login i password anterior. En aquest moment la màquina us situa en un entorn de finestres i dins d'un directori propi de cada usuari. És en aquest directori on tenim permís per escriure fitxers i crear nous subdirectoris, mentre que fora d'aquí només podem llegir-los si en tenim el permís.

    L'entorn que usarem s'anomena UBUNTU. Per fer córrer un programa des d'un terminal cal crear el terminal, amb l'opció de la barra superior o des de l'escriptori. Noteu que seleccionem la finestra activa clicant al seu damunt.

    Per acabar la sessió i sortir de la zona de cada usuari cal fer-ho amb la opció "Salir" del menú "Sistema" de la barra superior. Per apagar l'ordinador en acabar podeu triar l'opció corresponent.

    Quan comenceu una nova sessiò us trobareu en un escriptori on teniu accés a un explorador de fitxers.

2.2.- Algunes ordres de UNIX

    En aquest apartat hi trobareu algunes de les ordres més bàsiques per crear, copiar i moure fitxers des de finestres de terminal en el sistema operatiu que usareu.

ls Llista el contingut del subdirectori actual.
cd subdir Passa al directori subdir. Igual que en MS-DOS, cd .. salta al subdirectori anterior.
cp font destí Copia el fitxer font en el directori destí. A diferencia de MS-DOS el directori destí no te valor per defecte, per tant per copiar un fitxer al directori actual, cal usar com a directori destí un punt (.). Amb l'opció -r copia tota una estructura de fitxers i subdirectoris.
rm fitxer Esborra el fitxer fitxer. Cal usar-lo amb precaució ja que en UNIX no es possible recuperar fitxers un cop esborrats. 
mkdir subdir Crea un subdirectori de nom subdir dins del directori actual.
rmdir subdir Esborra el subdirectori subdir.
more fitxer Mostra el contingut del fitxer de text fitxer.

2.3.- Editors de fitxers de text

    Us caldrà usar editors, ja que les entrades que s'han de subministrar a aquest SPICE han de ser via fitxer de text. Podeu disposar de dos editors ASCII, el vi i el gedit. Si no en coneixeu cap dels dos, el més senzill d'aprendre a usar és el gedit.

    Per entrar a aquest editor heu d'escriure a la finestra activa: "gedit nom", on nom és el nom del fitxer que voleu editar o bé engegar-lo al menú "aplicaciones", opcions "accesorios" i "editor de textos". Si el fitxer no existia el programa el crea. El programa genera una nova finestra on podreu fer les edicions que desitgeu. A la part superior de la finestra trobareu diversos menús amb les diferents eines d'ajut a l'editatge.

2.4.- Accés a l'exterior

    En principi, la informació que guardeu a la vostra zona d'usuari és segura, però és bona idea fer copies de seguretat. Per accedir a l'exterior de l'ordinador podeu usar pen-drive's connectats al port USB i veure'ls a "lugares" o en el navegador d'arxius.



3.- SIMULACIONS AMB SPICE

    En aquesta part es descriu el que cal fer al laboratori. Presentarem, a través d'un exemple, alguns conceptes interessants per a la simulació d'un disseny jeràrquic, com és el cas d'aquestes pràctiques. A continuació, i seguint amb l'exemple, mostrarem com visualitzar els resultats que obté SPICE. Després, en els últims apartats, es descriuen les simulacions que haureu de fer.
 

3.1.- Exemple de disseny jeràrquic

    Hi ha dos conceptes interessants que apareixen relacionats amb el disseny jeràrquic, que són la creació de llibreries i la partició dels circuits a simular en mòduls. Aquests dos conceptes estan relacionats amb els principals avantatges del disseny jeràrquic: la reutilització de dissenys i la divisió d'un sistema complex en diversos sistemes més senzills i la seva interconnexió.

    Per seguir l'exemple trobareu, en el directori /users/alumnes/temp/dmi/public/practica1, quatre fitxers per SPICE que permeten simular una porta or-exclusiva definida en un sol mòdul, on s'usen elements d'una llibreria reduïda que conté inversors i portes nand de dues entrades.

    Copieu en un nou subdirectori del vostre espai aquests quatre fitxers. Noteu que l'estructura de fitxers proposada per l'exemple, i descrita a la figura 1, és una entre moltes altres possibles de representar un disseny jeràrquic.

Relacions entre fitxers d'un disseny jeràrquic

Figura 1

    En la figura s'observa que el circuit es divideix en diferents blocs, que poden usar, a més dels elements circuitals, elements descrits en llibreries, que solen contenir els circuits d'ús més habitual. A més un bloc pot contenir altres blocs com a part d'un circuit més gran, amb el nombre de nivells que calgui. També cal subministrar a SPICE la descripció dels components circuitals que ho requereixin (en el nostre cas, es tractarà dels models dels transistors MOS). Finalment, el fitxer principal, a més del bloc o blocs que composen el circuit pot contenir elements externs al propi circuit, com són les excitacions i alimentacions, i les condicions de simulació.

3.1.1 - Model

    En el primer dels quatre fitxers que considerarem és model, que conté els models per als transistors MOS, relacionats amb el procés CMOS que usarem. Els valors d'aquest fitxer els proporciona el fabricant, que té ben caracteritzat el seu procés de fabricació i els dispositius que en resulten.

3.1.2 - Llibreria

    A continuació, hi ha una llibreria que duu el nom logica.lib. En una llibreria hi podem trobar la descripció d'elements susceptibles de ser reutilitzats. En aquest cas conte dues portes lògiques, i d'aquí el nom. Podeu veure-hi com s'ha definit cada element amb la següent sintaxi:

.SUBCKT nom node_1 [ node_2 node_3 ... ]
cos del circuit
.ENDS

    On nom és el nom de l'element, i els node_i  són els nodes accessibles a l'exterior (entrades, sortides, etc.). En el nostre exemple tenim dos elements que anomenem inversor i nand2, i els nodes que veiem són les alimentacions, les entrades i la sortida en cada un d'ells.

    Comproveu com les definicions de l'inversor i la nand corresponen amb les topologies circuitals CMOS que pertoquen. Identifiqueu terminals de transistors i connexions, així com nodes interns, entrades, sortides i alimentacions.

3.1.3 - Blocs

    Els elements d'aquesta llibreria els usem en el bloc descrit en el fitxer xor0.blc. Aquest únic bloc realitza una or-exclusiva amb dos inversors i tres portes nand de dues entrades amb la topologia que es pot veure a la figura 2, on s'indica el número assignat a cada node.

    Quan es fa un disseny modular és interessant evitar possibles conflictes entre els noms usats en diferents blocs. Això és tan senzill d'assolir com identificar cada mòdul amb un número i començar amb aquest número tots els noms de nodes i elements del bloc. Aquesta xor de l'exemple és correspondria amb el bloc 2 d'un disseny més gran.

Circuit corresponent a la xor
Figura 2

    Es pot veure que la sintaxi per usar els elements de la llibreria és:

Xnom node_1 [ node_2 node_3 ... ] nom_element

    La X indica que es tracta d'un subcircuit, nom és el nom que li posem a aquest subcircuit en concret dins del mòdul (podríem, i de fet ho fem, usar el mateix element més d'un cop), mentre que nom_element és el nom que te el subcircuit dins de la llibreria. Els nodes corresponen a l'ordre en que han estat definits en el subcircuit.

    A més, cal assegurar-se de que la llibreria a la que pertany el subcircuit queda inclosa en el fitxer principal, amb una sentència del tipus .include, que gestiona la inclusió de fitxers:

.include nom_fitxer_llibreria

    Podeu comprovar com el connexionat proposat al fitxer es correspon amb la descripció d'una xor de la figura 2.

3.1.4 - Fitxer principal

    Finalment al quart fitxer, xor0.cir hi teniu el circuit complet, que inclou, en aquest exemple, el model dels transistors, un únic bloc i la llibreria que necessita. A més, conté les condicions de simulació, la descripció de les entrades i la gestió de les dades de sortida. Aquí comença la feina que cal fer al laboratori. Creeu un subdirectori al vostre directori d'usuari. Copieu-hi els quatre fitxers abans esmentats i feu-ne la simulació. Per simular el circuit heu de cridar el SPICE amb la següent ordre:

> spice xor0.cir

 Fent això, heu entrat a SPICE i heu carregat el fitxer. Aquest conté, entre altres coses, unes ordres sobre la simulació a realitzar ".tran 0.1n 30n" (simulació d'un transitori de 30 ns en passos de 0.1 ns) i una altra per a l'eina de visualització de resultats (el Nutmeg)  "plot v(29)" dins de la part de control. Aquests dos passos es poden realitzar (o modificar) de forma interactiva, sense sortir de SPICE ni recarregar el circuit. 

    Concretament observem que només representem la sortida de la porta, i potser fora interessant representar alhora les entrades. Escriviu:

> plot v(29) v(20)+6 v(21)+12

    Veiem, en la ordre, que les expressions a representar es poden tractar com a expressions regulars (afegir-hi un offset, fer la diferència entre dues tensions, etc.). Observem també que el temps de simulació no és suficient per veure les quatre combinacions d'entrades possibles, així que podeu demanar una nova simulació (més llarga) del mateix circuit només escrivint:

> tran 1.0n 50n

    Un cop teniu la representació en pantalla de l'expressió demanada, podeu fer zooms amb el boto dret del mouse, o llegir els valors d'abscisses, ordenades i pendents en algun punt concret de la gràfica clicant (i arrossegant) el botó esquerre.
 

3.2 Modificacions del disseny

    Heu de dissenyar a nivell de transistors, i amb la idea presentada del disseny jeràrquic, una nova porta or-exclusiva de dues entrades.

     Qüestió 1
     Cal que prepareu, com a estudi previ, els fitxers que haureu de subministrar com a entrada per a SPICE per totes les simulacions que es detallen al llarg d'aquest apartat. Això inclou dissenyar un esquema de la porta a nivell de blocs, i un del cada bloc a nivell de transistors.

    El disseny ha de permetre una realització amb menys transistors (concretament només 10) a partir de la igualtat:

Eqüació guia per al disseny de la XOR

     A l'equació s'observa que es pot obtenir una xor amb una nor de dues entrades i una altra funció CMOS de tres entrades que podríem batejar com norand, tal com es descriu a la següent figura. Noteu que només calen sis transistors per realitzar la norand.

Esquema de blocs de la xor
Figura 3

    Modifiqueu la llibreria per afegir-hi les dues funcions, genereu els fitxers xor1.blc i xor1.cir corresponents i simuleu el resultat. Comproveu la funcionalita de la nova xor.



ETSETBUPCDEE