Version 4 SHEET 1 1432 788 WIRE 224 384 64 384 WIRE 288 384 224 384 WIRE 496 384 288 384 WIRE 224 432 224 384 WIRE 496 432 496 384 WIRE 64 512 64 384 WIRE 224 560 224 512 WIRE 496 560 496 512 WIRE 224 592 224 560 WIRE 496 592 496 560 WIRE 64 720 64 592 WIRE 224 720 224 672 WIRE 496 720 496 672 FLAG 64 720 0 FLAG 224 720 0 FLAG 496 720 0 FLAG 224 560 1 FLAG 496 560 2 FLAG 288 384 3 SYMBOL res 208 416 R0 SYMATTR InstName R1 SYMATTR Value {1k*M1} SYMBOL res 208 576 R0 SYMATTR InstName R2 SYMATTR Value {1k*M2} SYMBOL voltage 64 496 R0 SYMATTR InstName V1 SYMATTR Value 2 SYMBOL res 480 416 R0 SYMATTR InstName R3 SYMATTR Value {1k*M3} SYMBOL res 480 576 R0 SYMATTR InstName R4 SYMATTR Value {1k*M4} TEXT -88 48 Left 0 !.func M(n, run,TOL) {if((run==0),1,1-TOL+2*TOL*if(((run-1)-(2**n)*int((run-1)/2**n+1e-6))>(2**(n-1)-0.5),1,0))} TEXT -88 240 Left 0 !.op TEXT -88 272 Left 0 !.step param run 0 16 1 ; run==0 uses nominal values (M1=M2=M3=M4=1) TEXT -88 80 Left 0 !.param M1=M(1, run,0.01)\n.param M2=M(2, run,0.01)\n.param M3=M(3, run,0.01)\n.param M4=M(4, run,0.01) TEXT -80 -176 Left 0 ;Tolerance Stepping With Binary Sequence\n \n Example with 4 devices, n is 1, 2, 3, 4 in mc(n, run, TOL)\n.func M1(1, run,TOL) \n.func M2(2, run,TOL) \n.func M3(3, run,TOL) \n.func M4(2, run,TOL)