Estoy tratando de crear un subcircuito en SPICE (actualmente usando LTspice pero quiero un modelo bastante agnóstico) para una compuerta AND que retrasa una entrada por alguna cantidad TPD.
Actualmente sólo estoy introduciendo 2 señales de reloj offest en el siguiente subcircuito:
.SUBCKT AND_GATE_TEST A B OUT VCC VEE
XOUTLOGIC A B OUT_LOGIC VCC VEE LOGIC_FUNCTION
XOUTPD OUT_LOGIC OUT VCC VEE PD_FUNCTION
.ENDS
************************************************************
.SUBCKT LOGIC_FUNCTION A B OUT VCC VEE
GAND VEE N1 VALUE = {V(A,VEE)*V(B,VEE)}
RN1 N1 VEE 1
EOUT1 OUT VEE N1 VEE 1
.ENDS
************************************************************
.SUBCKT PD_FUNCTION IN OUT VCC VEE
GDEL VEE N1 VALUE = {V(IN,VEE)}
RN1 N1 VEE 1
EDEL = OUT VEE DELAY N1 VEE TD=10ns
.ENDS
La primera función lógica funciona bien y produce la lógica AND esperada dadas las entradas A
y B
pero me tropiezo con la función de retardo de propagación.
El error que produce LTspice dice Missing gain value
pero no importa cómo utilice el elemento E (o cualquier elemento de comportamiento para el caso) como una función de retardo no puedo conseguir que funcione correctamente.
Creo que me falta algo fundamental en la sintaxis de los elementos de comportamiento
Cualquier ayuda sobre la mejor manera de abordar esto sería muy apreciada.