Tutorial ASIC Synopsys II

Creación de celdas digitales básicas usando Custom Designer 

(Tutorial ASICs parte II)

Con las celdas NOT y NAND creadas se procederá a la creación de testbenchs para su prueba, y a utilizarlas en circuitos más complejos.

1- Arrancar una terminal e ingresar el comando cdesigner &. Se procederá a crear un testbench para la celda inversora. En el menú de la consola escoger File>New>Cellwview e ingresar los siguientes datos (la librería escogida es la creada en el tutorial anterior):

Fig. 1.

2- Con esto se crea un nuevo esquemático para poder usar la compuerta inversora, presionar “i” y escoger:
Fig. 2.

Con esto se habrá introducido el símbolo de la compuerta inversora creada anteriormente. Si se hace doble clic sobre el símbolo de la compuerta inversora entonces se abrirá una ventana con el esquemático de los transistores CMOS colocados en el tutorial anterior.

3- Si se ha realizado doble clic sobre el símbolo del inversor se puede regresar al nivel anterior escogiendo de la barra de menú la siguiente opción:

Fig. 3.

y después navegar por los niveles:

Fig. 4.

Donde se puede observar que se tienen los niveles del testbench y el inversor.

4- Se agregarán los otros elementos necesarios para poder probar el circuito, para ello se escogerán los siguientes dispositivos de la librería analogLib: Vsource, Vpulse y Gnd.

Fig. 5.

5- El arreglo de elementos ya conectados se muestra a continuación, con un pin de salida colocado en el VOUT de la inversora, no olvidar colocar los nombres a las líneas así como se muestra en la figura:

Fig. 6.

6- Ingresar las siguientes propiedades para la fuente pulsante y para la fuente fija:

Fig. 7.

Fig. 8.

7- Guardar el esquemático haciendo clic en el botón Save and check, si existe alguna violación hay que arregrarla.

8- Ahora se procederá a cargar el entorno de simulación (SAE- Simulation and Analysis Environment). En la ventana del esquemático escoger de la barra de menús: Tools>SAE, con ello aparece la ventana para realizar la configuración de la simulación.

Fig. 9.

En esta ventana se indica que el simulador, HSPICE, está listo para ser utilizado.

9- Se procede a realizar la configuración del análisis. Primero se seleccionan los archivos de los modelos en Setup>Models Files. En la ventana que aparece se debe navegar hasta el archivo SAED90nm.lib. Que se encuentra en la siguiente dirección: /home/usuario0/Synopsys/Libraries/SAED_PDK90nm/hspice/SAED90nm.lib. Y se escoge el tipo de transistor como TT_12. 

Fig. 10.

10- Después de seleccionar el modelo, se ajustan los parámetros del análsis, se escoge el menú Setup>Analysis. Y se selecciona tran, escogiendo las opciones siguientes:

Fig. 11.

11- Y también se escogerá el análisis DC (opción dc) para poder trazar la respuesta de la compuerta inversora.

Fig. 12.

Se debe tener el cuidado de escoger la fuente pulsante como la que se variará, ya que necesitamos la respuesta de la entrada con respecto a los cambios en la salida. Así que el nombre puede no ser necesariamente el mismo que aparece en la imagen.

12- Se escogen del esquemático aquellas entradas y salidas que se desean graficar, además se indican los tipos de análisis que se desean para dichas entradas y salidas:

Fig. 13.

Los nombres que aparecen bajo la columna Output, son simples indicadores, para poder escoger las expresiones al hacer clic en la columna Expression se debe escoger la opción para poder seleccionar desde el esquemático los elementos usando el ratón, así solo se hace clic sobre las líneas VOUT y VIN.

Para la corriente proporcionada por la fuente (Isupplied) se hace lo mismo, con la única diferencia que se dará clic encima de la fuente fija para poder obtener la corriente consumida del circuito en operación.

13- Se procede a guardar la sesión (Session>Save State) para poder utilizarla después y no tener que configurar todo de nuevo. Al momento de guardarla se debe escoger OpenAccess, y colocarle un nombre adecuado. En Setup>Simulator se puede escoger el directorio donde se desea guardar los resultados.

14- Ahora para simular en el menú se selecciona: Simulation>Netlist and Run, con lo que se crea el netlist del circuito y además se corre la simulación. Se mostrará la ventana siguiente diciendo si hubo errores o todo salió bien en la simulación:

Fig. 14.

Una vez simulado se puede ver el netlist generado, en Simulation>Netlist>Display, que será algo como lo mostrado a continuación:
*  Generated for: HSPICE
*  Design library name: LibreriaTutorialSynopsys
*  Design cell name: inversor_tb
*  Design view name: schematic
.option PARHIER = LOCAL
.option ARTIST=2 PSF=2
.temp 25
.lib '/home/usuario0/Synopsys/Libraries/SAED_PDK90nm/hspice/SAED90nm.lib' TT_12
*Custom Designer (TM) Version J-2014.12-SP2
*Tue Sep  1 10:20:16 2015

.GLOBAL gnd!
********************************************************************************
* Library          : LibreriaTutorialSynopsys
* Cell             : inversor
* View             : schematic
* View Search List : hspice hspiceD schematic spice veriloga
* View Stop List   : hspice hspiceD
********************************************************************************
.subckt inversor avdd avss vin vout
m0 vout vin avdd avdd p12 w=0.5u l=0.1u nf=1.0 m=1
m1 vout vin avss avss n12 w=0.25u l=0.1u nf=1.0 m=1
.ends inversor

********************************************************************************
* Library          : LibreriaTutorialSynopsys
* Cell             : inversor_tb
* View             : schematic
* View Search List : hspice hspiceD schematic spice veriloga
* View Stop List   : hspice hspiceD
********************************************************************************
xi0 avdd gnd! vin vout inversor
v1 avdd gnd! dc=1.2
v2 vin gnd! dc=0 pulse ( 0 1.2 100p 10p 10p 2n 4n )

.tran 10p 50n start=0
.dc v2 0 1.2 0.005
.option opfile=1 split_dp=1
.probe tran i(v1)
.probe dc i(v1)

.end

15- Después de realizar la simulación se abre de forma automática el Custom Wave View mostrando las señales de salida:

Fig. 15.

16- Se pueden ver las señales por separado haciendo clic sobre los nombres de las mismas y dando clic derecho, se escoge la opción Ungroup, con ello se trazarán las señales de forma separada.

17- En la parte de abajo del graficador se muestran las pestañas dc y tran, la figura mostrada anteriormente corresponde a la simulación de transiente, ahora se presiona en la pestaña dc para poder ver el resultado del barrido DC:

Fig. 16.

18- Una de las ventajas del Custom Wave View es la gran cantidad de herramientas de análisis que posee, se explorarán algunas de las más comunes. Se comenzará por la medición de frecuencia, hay que estar en la pestaña tran y darle clic a una de las señales, la de Vout por ejemplo, y después se escoge del menú: Tools>Measurement y se escogen las siguientes opciones:

Fig. 17.

Con lo que se colocará la herramienta de medición de frecuencia encima de la señal seleccionada:

Fig. 18.

19- Se puede ver el retardo entre la señal de salida y la entrada, para ello hay que agrupar las señales Vin y Vout. Y después desde el mismo menú de Measurements se selecciona:

Fig. 19.

Fig. 20.

20- Ahora se verá el tiempo de caída y de subida de la señal Vout, se debe desagrupar las señales y desde Measurements escoger ahora:

Fig. 21.

Fig. 22.

En la figura anterior se muestran dos mediciones, la de subida, en rojo, y la de caída, en verde. Si se agregan varias mediciones es probable que necesite hacer clic sobre el medidor y arrastrarlo para mostrar los otros, ya que todos caen en la misma posición inicial.

21- Y en la figura siguiente se muestra como obtener una medición de la corriente promedio:

Fig. 23.

Fig. 24.

22- Ahora se realizarán los pasos para poder realizar la simulación de la celda NAND, se seguirán unos pasos parecidos al caso de la NOT, pero para el caso de las NAND se realizarán diferentes casos de simulación. Se realizará la simulación como inversora, con una entrada fija, y con variaciones en las dos entradas.

23- Se crea una nueva celda llamada nand2_tb

Fig. 25.

24- Se inserta el símbolo de la NAND2 y se le agregan los tierras y las fuentes Vsource y Vpulse, además del pin para VOUT, tal como se muestra en la figura siguiente (no olvidar añadir los nombres de las líneas de conexión):

Fig. 26.

25- Los valores de las fuentes son los siguientes (son los mismos aplicados en el caso de la NOT):

Fig. 27.

26- Se realiza un Check and Save, y si no da errores se continua al paso siguiente.

27- Arrancar el SAE (Tools>SAE).Y configurar los archivos de modelo (Setup>Model Files) como aparece en la figura siguiente:

Fig. 28.

28- En Setup>Analisis, para el análisis de transiente se realiza:

Fig. 29.

29- Se realizan los ajustes para el barrido DC de la siguiente forma:

Fig. 30.

30- Se especifica en Setup>Simulator la ruta: /home/usuario0/Synopsys/MisLibrerias/LibreriaTutorialSynopsys/nand2_tb/Simulation para guardar los resultados del análisis.

31- Se configuran las entradas y salidas que se desean ver en el graficador, así como los análisis que nos interesan para cada entrada:

Fig. 31.

32- Se guarda su estado en Session>Save State, seleccionando OpenAccess de las categorías disponibles.

33- Después del menú se hace Simulation>Netlist and Run con lo que termina mostrando las gráficas siguientes:

Fig. 32.

34- Cuya salida es muy similar a la que se obtuvo del inversor, esto por el hecho de que la compuerta NAND2 se está ocupando como inversor en esta configuración.

35- La frecuencia obtenida se muestra a continuación, así como los retardos entre la entrada y la salida:

Fig. 33.

36- Y el promedio de la corriente consumida por el circuito:

Fig. 34.

37- También se puede sacar el retardo de subida y bajada.
38- Abajo se muestra el netlis obtenido para esta simulación:
*  Generated for: HSPICE
*  Design library name: LibreriaTutorialSynopsys
*  Design cell name: nand2_tb
*  Design view name: schematic


.option PARHIER = LOCAL


.option ARTIST=2 PSF=2
.temp 25
.lib '/home/usuario0/Synopsys/Libraries/SAED_PDK90nm/hspice/SAED90nm.lib' TT_12
*Custom Designer (TM) Version J-2014.12-SP2
*Thu Sep  3 11:57:57 2015


.GLOBAL gnd!
********************************************************************************
* Library          : LibreriaTutorialSynopsys
* Cell             : nand2
* View             : schematic
* View Search List : hspice hspiceD schematic spice veriloga
* View Stop List   : hspice hspiceD
********************************************************************************
.subckt nand2 avdd avss vina vinb vout
m1 vout vinb avdd avdd p12 w=0.5u l=0.1u nf=1.0 m=1
m0 vout vina avdd avdd p12 w=0.5u l=0.1u nf=1.0 m=1
m3 net13 vina avss avss n12 w=0.25u l=0.1u nf=1.0 m=1
m2 vout vinb net13 avss n12 w=0.25u l=0.1u nf=1.0 m=1
.ends nand2


********************************************************************************
* Library          : LibreriaTutorialSynopsys
* Cell             : nand2_tb
* View             : schematic
* View Search List : hspice hspiceD schematic spice veriloga
* View Stop List   : hspice hspiceD
********************************************************************************
xi0 vdd gnd! vin vin vout nand2
v3 vdd gnd! dc=1.2
v4 vin gnd! dc=0 pulse ( 0 1.2 100p 10p 10p 2n 4n )




.tran 10p 50n start=0
.dc v4 0 1.2 0.05
.option opfile=1 split_dp=1
.probe tran i(v3)
.probe dc i(v3)



.end













No hay comentarios:

Publicar un comentario