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.

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.
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.
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. |
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.
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.