di2680b.txt ;************************************************************************************************ ; PSpice LISTING ; ; "Delay line aids in one-shot simulations," EDN, April 26, 2001, pg 129 ; ; http://www.ednmag.com/ednmag/reg/2001/042601/designideas.htm#09di1 ;************************************************************************************************ ******** * Monostable generator library * Developed by Christophe BASSO (France) * CADENCE's PSpice compatible * Last modified: January 10th 2001 ******** .SUBCKT ONESHOTNRET In Out PARAMS: DELAY=3u R3 1 0 10k C3 1 2 10pF X2 Out 4 DL PARAMS: TD={DELAY} X9 4 5 INV X10 1 6 Out Qbb LATCH R4 0 6 10k C4 7 6 10pF X11 5 Out 7 NAND2 X12 In 8 2 AND2 R5 8 Qbb 100 C5 8 0 100p .ENDS ******* .SUBCKT ONESHOTRET In Out PARAMS: DELAY=3u R1 1 0 10k C1 1 In 10pF X1 Out 3 DL PARAMS: TD={DELAY} X3 3 4 INV X4 1 5 Out Qb LATCH R2 0 5 10k C2 6 5 10pF X7 4 Out 6 NAND2 .ENDS ******* .SUBCKT SMALLPULSE In Out PARAMS: DELAY=3u X5 In 2 DL PARAMS: TD={DELAY} X6 In 3 Out AND2 X8 2 3 INV .ENDS ******* ****** MODELS **** .SUBCKT DL 1 2 PARAMS: TD=500n * RIN 1 0 1E15 E1 3 0 1 0 1 T1 3 0 2 0 Z0=1 TD={TD} R1 2 0 1 .ENDS DL ******* **** 1 INPUT INVERTER **** .SUBCKT INV 1 2 EB1 4 0 VALUE = { IF ( V(1)>800M, 0, 5V ) } RD 4 2 100 CD 2 0 10P .ENDS INV ******* .SUBCKT LATCH 6 8 2 1 * S R Q Q\ E_BQB 10 0 VALUE = { IF ( (V(8)<800M) & (V(2)>800M), 0, 5V ) } E_BQ 20 0 VALUE = { IF ( (V(6)<800M) & (V(1)>800M), 0, 5V ) } RD1 10 1 100 CD1 1 0 10P IC=5 RD2 20 2 100 CD2 2 0 10P IC=0 .ENDS LATCH ******* **** 2 INPUT AND CIRCUIT **** .SUBCKT NAND2 1 2 3 EB1 4 0 VALUE = { IF ( (V(1)>800M) & (V(2)>800M), 0, 5V ) } RD 4 3 100 CD 3 0 10P .ENDS NAND2 ******* **** 2 INPUT AND CIRCUIT **** .SUBCKT AND2 1 2 3 EB1 4 0 VALUE = { IF ( (V(1)>800M) & (V(2)>800M), 5V, 0 ) } RD 4 3 100 CD 3 0 10P .ENDS AND2 *******