Version 4 SHEET 1 2024 1332 WIRE 288 288 224 288 WIRE 432 288 368 288 WIRE 512 288 432 288 WIRE 1136 288 592 288 WIRE 224 336 224 288 WIRE 192 480 96 480 WIRE 336 480 272 480 WIRE 544 480 336 480 WIRE 720 480 544 480 WIRE 880 480 800 480 WIRE 1008 480 928 480 WIRE 928 496 928 480 WIRE 96 512 96 480 WIRE 336 512 336 480 WIRE 880 512 880 480 WIRE 432 560 432 288 WIRE 640 560 432 560 WIRE 880 560 640 560 WIRE 1008 560 1008 480 WIRE 1136 560 1136 288 WIRE 1136 560 1008 560 WIRE 1200 560 1136 560 WIRE 544 592 544 480 WIRE 640 592 640 560 WIRE 928 608 928 576 WIRE 96 624 96 592 WIRE 336 624 336 592 WIRE 544 704 544 672 WIRE 640 704 640 672 FLAG 96 624 0 FLAG 336 624 0 FLAG 928 608 0 FLAG 1200 560 OUT IOPIN 1200 560 Out FLAG 224 336 0 FLAG 544 704 0 FLAG 640 704 0 SYMBOL res 176 496 R270 WINDOW 0 32 56 VTop 2 WINDOW 3 0 56 VBottom 2 SYMATTR InstName R1 SYMATTR Value {R1} SYMBOL res 320 496 R0 SYMATTR InstName R2 SYMATTR Value {R2} SYMBOL voltage 96 496 R0 SYMATTR InstName V1 SYMATTR Value 0.1 SYMBOL res 272 304 R270 WINDOW 0 32 56 VTop 2 WINDOW 3 0 56 VBottom 2 SYMATTR InstName R3 SYMATTR Value {R3} SYMBOL res 496 304 R270 WINDOW 0 32 56 VTop 2 WINDOW 3 0 56 VBottom 2 SYMATTR InstName R4 SYMATTR Value {R4} SYMBOL e 928 480 R0 WINDOW 3 8 105 Left 2 WINDOW 0 34 23 Left 2 SYMATTR Value {Gol} SYMATTR InstName E1 SYMBOL voltage 704 480 R270 WINDOW 0 32 56 VTop 2 WINDOW 3 -32 56 VBottom 2 SYMATTR InstName V2 SYMATTR Value {Vos} SYMBOL current 544 592 R0 WINDOW 3 22 83 Left 2 SYMATTR Value {Ib1} SYMATTR InstName I1 SYMBOL current 640 592 R0 WINDOW 3 23 84 Left 2 SYMATTR InstName I2 SYMATTR Value {Ib2} TEXT 128 -184 Left 2 !.op TEXT 128 -160 Left 2 !.step param n 0 1000 1 ; 1000 simulations TEXT 528 392 Left 2 ;OPAMP with offset voltage and bias current TEXT 136 -320 Left 3 ;Monte Carlo Simulation Of A Differential Amplifier TEXT 128 -208 Left 2 ;.dc V1 0 1 .5 TEXT 680 632 Left 2 ;50nA ... 100nA TEXT 648 448 Left 2 ;+/-2mV TEXT 648 -176 Left 2 ;;Flat distribution(Classic Monte-Carlo): -1...+1\n.param tol=0.01 ; 1%\n.param Voffs=2m\n.param R1=mc(10k,tol)\n.param R2=mc(100k,tol)\n.param R3=mc(10k,tol)\n.param R4=mc(100k,tol)\n.param Vos=Voffs*(1-mc(1,1)) ; +/-2mV\n.param Ib1=100n*mc(1,0.5) ; 50nA..150nA\n.param Ib2=100n*mc(1,0.5) ; 50nA..150nA\n.param Gol=mc(1e5,0.5) ; 50k..150k TEXT 128 -120 Left 2 !;Worst case distribution: -1,0,1\n.param tol=0.01 ; 1%\n.param Voffs=2m\n.param R1=wc(10k,tol)\n.param R2=wc(100k,tol)\n.param R3=wc(10k,tol)\n.param R4=wc(100k,tol)\n.param Vos=Voffs*(1-wc(1,1)) ; +/-2mV\n.param Ib1=100n*wc(1,0.5) ; 50nA..150nA\n.param Ib2=100n*wc(1,0.5) ; 50nA..150nA\n.param Gol=wc(1e5,0.5) ; 50k..150k\n.function wc(nom,tol) if(n==0, nom, if(flat(0.5)>0,nom*(1+tol),nom*(1-tol))) TEXT 136 -280 Left 2 ;Run both distributions. (Right-mouse-clickto switch one to SPICE directive or comment.\nWatch how quick the worst case distribution finds the maximum deviation. LINE Normal 496 752 496 368 LINE Normal 1008 368 496 368 LINE Normal 1088 560 1008 368 LINE Normal 1024 752 1088 560 LINE Normal 496 752 1024 752