¿Medición de tiempo negativo con hspice?

2

Me preguntaba cuál sería la mejor forma de medir los parámetros tPHL estándar, tPLH en HSPICE. Específicamente, me preguntaba cuál es la mejor manera de abordar los valores negativos que estoy obteniendo.

Tengo un circuito con 2 inversores conectados que terminan un condensador a tierra.

Estoy intentando medir el tiempo alto-bajo observando cuándo comienza y se detiene la señal.

Estoy confundido en cuanto al por qué cuando mido tplh2 , el tiempo para que el segundo inversor caiga y suba obtengo un tiempo negativo.

¿Qué está pasando aquí?

* 2 inverters, and negative delay
.LIB 'models15.txt' MOS
M1 OUTa IN VDD VDD pch L=1.5u W=6u
M2 OUTa IN 0   0   nch L=1.5u W=3u
M3 OUTb OUTa VDD VDD pch L=1.5u W=6u
M4 OUTb OUTa 0   0   nch L=1.5u W=3u
CL 0 OUTb 1p

VVDD VDD 0 5
VIN IN 0 0 PULSE 0 5 3n 1n 1n 7n 20n
.DC VIN 0 5 0.05
.PRINT DC V(IN) V(OUTb)
.PRINT DC V(IN) V(OUTa)
.TRAN 100p 100n
.PRINT TRAN V(IN) V(OUTb)
.PRINT TRAN V(IN) V(OUTa)
.measure tran tphl1 trig v(IN) val='0.5*5' rise=1 targ v(OUTa) val='0.5*5' fall=1
.measure tran tplh1 trig v(IN) val='0.5*5' fall=1 targ v(OUTa) val='0.5*5' rise=1
.measure tran tphl2 trig v(IN) val='0.5*5' rise=1 targ v(OUTb) val='0.5*5' fall=1
.measure tran tplh2 trig v(IN) val='0.5*5' fall=1 targ v(OUTb) val='0.5*5' rise=1
.OPTIONS LIST NODE POST
.END

Salida

.TITLE '* inverter circuit'
 tphl1            tplh1            tphl2            tplh2
 1.054e-10        5.715e-11        9.190e-09       -6.982e-09
    
pregunta Mikhail

1 respuesta

1

Probablemente, la respuesta no será relevante para ti ahora, pero intentaré ver si aún recuerdo esto.

Veo algunas partes sospechosas en tu código. Vamos a separarlos en dos categorías: malentendidos de conceptos teóricos y errores de codificación.

Conceptos teóricos:

  1. Lo que se mide aquí no es tPHL (tiempo de caída) y tPLH (tiempo de subida), sino tPD - retardo de propagación a través de su circuito. De hecho, está midiendo dos retardos de propagación: desde la entrada hasta la salida del primer inversor (que se carga por el segundo inversor) y desde la entrada hasta la salida del segundo inversor (que se carga por el condensador).

    tPHL y tPLH (por lo general) se definen como el tiempo que tarda un voltaje en algún nodo particular en caer de 90% a 10%, o en aumentar de 10% a 90% de su valor máximo. La principal diferencia es que el retardo de propagación se mide de un nodo a otro, pero los tiempos de subida y bajada son parámetros específicos de un solo nodo.

    Con el propósito de una discusión más detallada, supongamos que usted intentó medir los retrasos de propagación.

  2. Mira la siguiente línea:

    .measure tran tphl1 trig v(IN) val='0.5*5' rise=1 targ v(OUTa) val='0.5*5' fall=1

    aquí está midiendo el tiempo desde el 50% del flanco ascendente de la entrada hasta el 50% del borde descendente del primer inversor. Esto está bien.

    Sin embargo, esta línea:

    .measure tran tphl2 trig v(IN) val='0.5*5' rise=1 targ v(OUTb) val='0.5*5' fall=1

    indica que está intentando medir el tiempo desde el 50% del borde ascendente de la entrada hasta el 50% del borde descendente del segundo inversor. Pero cuando dos inversores están conectados en serie, consisten en un búfer, y el voltaje en la salida del segundo inversor rastreará (con cierto retardo de propagación) el voltaje en la entrada del primer inversor. Para el propósito de esta medición, debería haber medido el tiempo hasta el flanco ascendente del segundo inversor.

Errores de codificación:

Tengo mucha menos confianza en esta parte, ya que ha pasado un tiempo desde que usé Spice.

  1. ¿Para qué usaste el análisis de DC? Creo que si especifica los análisis de DC y TRAN, la forma en que funciona es ejecutando la TRAN completa para cada paso de DC. Si este es el caso, debería haber obtenido un conjunto de mediciones de medida, una para cada paso del análisis de DC. El hecho de que vea solo una medida significa que se obtuvo en el último paso del análisis de CD, o es un promedio. De todos modos, sugiero que para el propósito de esta medición, eliminará completamente el análisis de DC.
  2. Su voltaje de entrada (PULSO) no es simétrico, su tiempo de subida es de 1 ns, pero el tiempo de caída es de 7 ns. Generalmente, cuando mide los retrasos de propagación, definirá los mismos tiempos de subida y bajada para la señal de entrada.

    Una forma más precisa será agregar un búfer entre la señal de entrada simétrica y el circuito que estás simulando. Esto permitirá que las señales que conducen su circuito de prueba imiten señales de un hardware real.

Ahora, a su pregunta: creo que el valor negativo que obtuvo está relacionado principalmente con el # 2 de Conceptos teóricos y, tal vez, con el # 1 de errores de codificación.

    
respondido por el Vasiliy

Lea otras preguntas en las etiquetas