|
DISSENY BASIC VLSI |
| Disseny de transistors |
L'objectiu d'aquesta pràctica és que us familiaritzeu
amb les eines més bàsiques per dissenyar a nivell de transistors
en l'entorn ALLIANCE en el que es desenvolupen les pràctiques de DVLSI.
En concret en aquesta pràctica haureu de treballar amb el llenguatge
SPICE estructural (.spi), i amb les eines yagle i spice.
SPICE es un llenguatge de descripció de transistors:
Mirem com exemple la manera de representar una porta NAND amb aquest format (veure el fitxer nand2.spi):
* net 6 = i1 * net 5 = i0 * net 4 = vdd * net 2 = vss * net 1 = f .SUBCKT na2_y 1 5 6 4 2 M1 3 6 2 2 tn L=1U W=12U AS=24P AD=24P PS=28U PD=28U M2 1 5 3 2 tn L=1U W=12U AS=24P AD=24P PS=28U PD=28U M3 1 6 4 4 tp L=1U W=12U AS=24P AD=24P PS=28U PD=28U M4 4 5 1 4 tp L=1U W=12U AS=24P AD=24P PS=28U PD=28U C1 1 2 0.0220PF C2 4 2 0.0285PF C3 5 2 0.0205PF C4 6 2 0.0205PF .ENDS na2_y
MXXXX ND NG NS NB MNAME <L=VAL> <W=VAL> <AD=VAL> <AS=VAL> <PD=VAL> <PS=VAL>
Els parametres de la descripcio del transistor indiquen:
Ara podem veure com contruir un component mes complexe, com per exemple un fulladder (veure el fitxer fulladder.spi):
A. Inicialment indicarem quins son els noms dels nodes que farem servir.
* net 6 = a * net 5 = b * net 4 = ci * net 3 = s * net 2 = co * net 1 = vdd * net 0 = vss * net 7 = p * net 8 = ng * net 9 = o
B. Despres posarem la descripcio d'aquells components que volem fer servir. En aquest cas portes XOR, NAND i una capacitat.
.SUBCKT xr2_y 8 7 9 5 3 M1 1 8 3 3 tn L=1U W=6U AS=12P AD=12P PS=16U PD=16U M2 3 7 1 3 tn L=1U W=6U AS=12P AD=12P PS=16U PD=16U M3 2 7 3 3 tn L=1U W=12U AS=24P AD=24P PS=28U PD=28U M4 9 8 2 3 tn L=1U W=12U AS=24P AD=24P PS=28U PD=28U M5 3 1 9 3 tn L=1U W=6U AS=12P AD=12P PS=16U PD=16U M6 4 8 1 5 tp L=1U W=23U AS=46P AD=46P PS=50U PD=50U M7 5 7 4 5 tp L=1U W=23U AS=46P AD=46P PS=50U PD=50U M8 5 7 6 5 tp L=1U W=23U AS=46P AD=46P PS=50U PD=50U M9 6 8 5 5 tp L=1U W=23U AS=46P AD=46P PS=50U PD=50U M10 9 1 6 5 tp L=1U W=23U AS=46P AD=46P PS=50U PD=50U C1 8 3 0.0358PF C2 7 3 0.0326PF C3 9 3 0.0141PF C4 5 3 0.0277PF C5 1 3 0.0227PF C6 6 3 0.0028PF .ENDS xr2_y .SUBCKT na2_y 5 6 1 4 2 M1 3 6 2 2 tn L=1U W=12U AS=24P AD=24P PS=28U PD=28U M2 1 5 3 2 tn L=1U W=12U AS=24P AD=24P PS=28U PD=28U M3 1 6 4 4 tp L=1U W=12U AS=24P AD=24P PS=28U PD=28U M4 4 5 1 4 tp L=1U W=12U AS=24P AD=24P PS=28U PD=28U C1 5 2 0.0184PF C2 6 2 0.0184PF C3 1 2 0.0141PF C4 4 2 0.0189PF .ENDS na2_y
C. Finalment conectarem les diferents instancies dels components.
.SUBCKT fulladder 6 5 4 3 2 1 0 xor1 6 5 7 1 0 xr2_y xor2 7 4 3 1 0 xr2_y Xna1 6 5 8 1 0 na2_y Xna2 7 4 9 1 0 na2_y Xna3 9 8 2 1 0 na2_y .ENDS fulladder
Per poder realitzar una simulació cal que assignem valors a les entrades
per poder analitzar si les sortides són les esperades. En el cas de l'entorn
ALLIANCE, el simulador és asimut, però disposem
d'una eina, genpat, que ens permet dissenyar la simulació
mé fàcilment.
1.2 - Simulacio
Per podel simular els circuits es necesari tenir un model dels transistors NMOS i PMOS:
Llavors ja podem executar les comandes necesaries per poder fer sa simulacio: