# Caltech Intermediate Form

Caltech Intermediate Form (amb acrònim anglès CIF) és un format de fitxer per descriure circuits integrats. CIF proporciona un conjunt limitat de primitives gràfics que són útils per descriure les formes bidimensionals de les diferents capes d'un xip. El format permet una descripció jeràrquica, la qual cosa fa que la representació sigui concisa. A més, és un format de text concis però llegible pels humans.

## Visió general

Cada declaració en CIF consta d'una paraula clau o lletra seguida de paràmetres i acabada amb un punt i coma. Els espais han de separar els paràmetres, però no hi ha restriccions sobre el nombre d'instruccions per línia o de les columnes particulars de cap camp. Els comentaris es poden inserir a qualsevol lloc tancant-los entre parèntesis.
Només hi ha unes poques declaracions CIF i entren en una de dues categories: geometria o control. Les declaracions de geometria són: LAYER per canviar capes de màscara, BOX per dibuixar un rectangle, WIRE per dibuixar un camí, ROUNDFLASH per dibuixar un cercle, POLYGON per dibuixar una figura arbitrària i CALL per dibuixar una subrutina d'altres declaracions de geometria. Les sentències de control són DS per iniciar la definició d'una subrutina, DF per acabar la definició d'una subrutina, DD per eliminar la definició de subrutines, 0 a 9 per incloure informació addicional especificada per l'usuari i END per acabar un fitxer CIF. Totes aquestes paraules clau solen abreujar-se a una o dues lletres úniques.

## Geometria

La instrucció LAYER (o la lletra L ) estableix la capa de màscara que s'utilitzarà per a tota la geometria posterior fins a la següent declaració. Després de la paraula clau LAYER ve un paràmetre de nom de capa únic. Per exemple, l'ordre:
estableix que la capa sigui el tall de contacte CMOS (vegeu la Fig. B.1 per a alguns noms típics de capes MOS).
| NM | metall nMOS |
| NP | polisilici nMOS |
| ND | difusió nMOS |
| NC | contacte nMOS |
| NI | implant nMOS |
| NB | nMOS enterrat |
| NG | nMOS sobrevidre |
| CMF | CMOS metall 1 |
| CMS | CMOS metall 2 |
| CPG | CMOS polisilici |
| CAA | CMOS actiu |
| CSG | Selecció CMOS |
| CWG | CMOS bé |
| CC | Contacte CMOS |
| CVA | CMOS via |
| COG | Sobrevidre CMOS |
| FIGURA B.1 Noms de capes CIF per a processos MOS. ||
La declaració BOX (o la lletra B ) és la forma més utilitzada per especificar la geometria. Descriu un rectangle donant la seva longitud, amplada, posició central i una rotació opcional. El format és el següent:
Sense el camp de rotació, els quatre nombres especifiquen un quadre el centre del qual es troba a ( xpos, ypos ) i té una llargada en x i una amplada alta en y. Tots els números en CIF són nombres enters que es refereixen a centimicrons de distància, tret que s'especifiqui l'escala de subrutina (que es descriu més endavant). El camp de rotació opcional conté dos números que defineixen un punt final vectorial que comença a l'origen. El valor per defecte d'aquest camp és (1, 0), que és un vector que apunta cap a la dreta. Així, la clàusula de rotació 10 5 defineix una rotació de 26,6 graus en sentit contrari a les agulles del rellotge des de la normal. De la mateixa manera, 10 -10 giraran 45 graus en sentit horari. Tingueu en compte que la magnitud d'aquest vector de rotació no té cap significat.
La declaració WIRE (o la lletra W ) s'utilitza per construir un camí que transcorre entre un conjunt de punts. El camí pot tenir una amplada diferent de zero i té cantonades arrodonides. Després de la paraula clau WIRE ve el valor d'amplada i després un nombre arbitrari de parells de coordenades que descriuen els punts finals. La figura B.2 mostra una mostra de cable. Tingueu en compte que el punt final i l'arrodoniment de les cantonades es gestionen implícitament.
La declaració ROUNDFLASH (o la lletra R ) dibuixa un cercle ple, donat el diàmetre i la coordenada central. Per exemple, la declaració:
dibuixarà un cercle que tingui un radi de 10 (diàmetre de 20), centrat a (30, 40).
La declaració POLYGON (o la lletra P ) pren una sèrie de parells de coordenades i en dibuixa un polígon ple. Com que els polígons plens s'han de tancar, el primer i l'últim punt de coordenades estan connectats implícitament i no cal que siguin iguals. Els polígons poden ser arbitràriament complexos, incloent la concavitat i l'autointersecció. La figura B.3 il·lustra una declaració de polígon.

## Jerarquia

La instrucció CALL (o la lletra C ) invoca una col·lecció d'altres sentències que s'han empaquetat amb DS i DF. Totes les subrutines reben números quan es defineixen i aquests números s'utilitzen a la CALL per identificar-les. Si, per exemple, una instrucció LAYER i una instrucció BOX estan empaquetades a la subrutina 4, aleshores la instrucció:
farà que la caixa es dibuixi en aquesta capa.
A més de simplement invocar la subrutina, una instrucció CALL pot incloure transformacions per afectar la geometria dins de la subrutina. Es poden aplicar tres transformacions a una subrutina en CIF: translació, rotació i duplicació. La traducció s'especifica com la lletra T seguida d'un desplaçament x, y. Aquests desplaçaments s'afegiran a totes les coordenades de la subrutina, per traduir els seus gràfics a través de la màscara. La rotació s'especifica com la lletra R seguida d'un punt final del vector x, y que, com la clàusula de rotació de la instrucció BOX, defineix una línia a l'origen. La línia sense girar té el punt final (1, 0), que apunta cap a la dreta. La duplicació està disponible de dues formes: MX per reflectir en x i MY per reflectir en y. La reflexió és una mica confús, perquè MX provoca una negació de la coordenada x, que es reflecteix efectivament sobre l'eix y.
Es pot aplicar qualsevol nombre de transformacions a un objecte i el seu ordre llistat és la seqüència que s'utilitzarà per aplicar-les. La figura B.4 mostra alguns exemples, que il·lustren la importància d'ordenar les transformacions (observeu que les Figs. B.4c i B.4d produeixen resultats diferents reordenant les transformacions).
Definir subrutines per utilitzar-les en una instrucció CALL és bastant senzill. Les declaracions que s'han d'empaquetar s'inclouen entre les sentències DS (inici de definició) i DF (acabament de definició). Els arguments de la instrucció DS són el número de subrutina i un factor d'escala de subrutina. No hi ha arguments per a la declaració DF. El factor d'escala d'una subrutina consisteix en un numerador seguit d'un denominador que s'aplicarà a tots els valors dins de la subrutina. Aquesta escala permet expressar nombres grans amb menys dígits i permet reescalar un disseny fàcilment. El factor d'escala no es pot canviar per a cada invocació de la subrutina ja que s'aplica a la definició. Com a exemple, la subrutina de la figura B.4 es pot descriure formalment de la següent manera:
Cal tenie en compte que el factor d'escala és 20/2, la qual cosa permet eliminar el zero final de tots els valors dins de la subrutina.

## Control

Les subrutines CIF es poden sobreescriure suprimint-les i després redefinint-les. La instrucció DD (eliminar definició) pren un únic paràmetre i elimina totes les subrutines que tinguin un nombre superior o igual a aquest valor. La declaració és útil quan es combinen diversos fitxers CIF perquè els dissenys es poden definir, invocar i suprimir sense provocar conflictes de noms. Tanmateix, no es recomana per a l'ús general dels sistemes CAD.
| 0 xy capa N nom ; | Estableix el node amb nom a la capa i la posició especificades |
| 0V x1 y1 x2 y2... xn yn ; | Dibuixar vectors |
| 2A "msg" T xy ; | Col·loca el missatge per sobre de la ubicació especificada |
| 2B "msg" T xy ; | Col·loca el missatge a sota de la ubicació especificada |
| 2C "msg" T xy ; | Col·loqueu el missatge centrat a la ubicació especificada |
| 2L "msg" T xy ; | Col·loca el missatge a l'esquerra de la ubicació especificada |
| 2R "msg" T xy ; | Col·loca el missatge a la dreta de la ubicació especificada |
| 4A baix x baix alt x alt ; | Declarar el límit de la cel·la |
| 4B nom de la instància ; | Adjunteu el nom de la instància a la cel·la |
| 4N nom de senyal xy ; | Etiqueta un senyal en un lloc |
| 9 nom cel·lular ; | Declarar el nom de la cel·la |
| 91 nom instància ; | Adjunteu el nom de la instància a la cel·la |
| 94 etiqueta xy ; | Col·loqueu l'etiqueta al lloc especificat |
| 95 longitud de l'etiqueta amplada xy ; | Col·loqueu l'etiqueta a l'àrea especificada |
| FIGURA B.5 Extensions típiques d'usuari a CIF. ||

## Referències

* ↑ «Caltech Intermediate Format (CIF)» (en anglès). [Consulta: 17 juliol 2024].
* ↑ «CIF | LayoutEditor Documentation» (en anglès). [Consulta: 17 juliol 2024].
* ↑ «Data Formats T a n n e r E D A L - E d i t ™ L a y o u t E d» (en anglès). [Consulta: 17 juliol 2024].
* ↑ «tut9» (en anglès). [Consulta: 17 juliol 2024].