Version 4 SHEET 1 1416 1092 WIRE 112 -224 80 -224 WIRE 320 -224 288 -224 WIRE 560 -224 528 -224 WIRE 80 -192 80 -224 WIRE 288 -192 288 -224 WIRE 528 -192 528 -224 WIRE 80 -80 80 -112 WIRE 288 -80 288 -112 WIRE 528 -80 528 -112 WIRE 592 96 512 96 WIRE 16 128 -64 128 WIRE 512 128 512 96 WIRE 16 160 -64 160 WIRE 240 176 192 176 WIRE 16 192 -64 192 WIRE 512 240 512 208 WIRE 128 880 48 880 WIRE 48 912 48 880 WIRE 48 1024 48 992 FLAG 528 -80 0 FLAG -64 128 adcin+ IOPIN -64 128 In FLAG 240 176 adc_smpl IOPIN 240 176 Out FLAG 512 240 0 FLAG 592 96 adcout IOPIN 592 96 Out FLAG -64 160 adcin- IOPIN -64 160 In FLAG 288 -80 0 FLAG 80 -80 0 FLAG 320 -224 adcin- IOPIN 320 -224 Out FLAG 112 -224 adcin+ IOPIN 112 -224 Out FLAG -64 192 adcclk IOPIN -64 192 In FLAG 560 -224 adcclk IOPIN 560 -224 Out FLAG 48 1024 0 FLAG 128 880 daccout IOPIN 128 880 Out SYMBOL SpecialFunctions\\sample 96 160 R0 SYMATTR InstName A1 SYMATTR SpiceLine vhigh=1000 SYMATTR SpiceLine2 rout=1 SYMBOL voltage 528 -208 R0 WINDOW 123 0 0 Left 0 WINDOW 39 0 0 Left 0 SYMATTR InstName V1 SYMATTR Value PULSE(0 1 0 1p 1p {0.5*TS} {TS}) SYMBOL voltage 288 -208 R0 SYMATTR InstName V2 SYMATTR Value 0 SYMBOL voltage 80 -208 R0 WINDOW 123 0 0 Left 0 WINDOW 39 0 0 Left 0 SYMATTR InstName V3 SYMATTR Value SINE(5 4 .5k) SYMBOL bv 512 112 R0 SYMATTR InstName B1 SYMATTR Value V=limit(0, int(V(adc_smpl)/{VREF}*{NMAX}), {NMAX-1}) SYMBOL bv 48 896 R0 SYMATTR InstName B2 SYMATTR Value V={VREF*(V(b0)+2*V(b1)+4*V(b2)+8*V(b3)+16*V(b4)+32*V(b5)+64*V(b6)+128*V(b7))/256} TEXT -280 80 Left 0 !.param NMAX 256 TEXT -280 -8 Left 0 !.param FS=10k\n.param TS=1/FS TEXT -248 -240 Left 0 !.tran 0 10m 1n TEXT -248 -216 Left 0 !.options plotwinsize=0 TEXT -280 48 Left 0 !.param VREF=10 TEXT 408 416 Left 0 !.param EPS=1e-6\nBbit0 b0 0 V=if( (V(adcout)-2*int(V(adcout)/2+{EPS}))>0.5,1,0)\nBbit1 b1 0 V=if( (V(adcout)-4*int(V(adcout)/4+{EPS}))>1.5,1,0)\nBbit2 b2 0 V=if( (V(adcout)-8*int(V(adcout)/8+{EPS}))>3.5,1,0)\nBbit3 b3 0 V=if( (V(adcout)-16*int(V(adcout)/16+{EPS}))>7.5,1,0)\nBbit4 b4 0 V=if( (V(adcout)-32*int(V(adcout)/32+{EPS}))>15.5,1,0)\nBbit5 b5 0 V=if( (V(adcout)-64*int(V(adcout)/64+{EPS}))>31.5,1,0)\nBbit6 b6 0 V=if( (V(adcout)-128*int(V(adcout)/128+{EPS}))>63.5,1,0)\nBbit7 b7 0 V=if( (V(adcout)-256*int(V(adcout)/256+{EPS}))>127.5,1,0) TEXT 232 8 Left 0 ;8Bit ADC Wit Sample/Hold TEXT -224 384 Left 0 ;Optional Binary Output TEXT -224 432 Left 0 ;Plot V(b0) .. V(b7) to see the binary output. TEXT -240 784 Left 0 ;8 Bit DAC RECTANGLE Normal 1296 704 -320 -32 RECTANGLE Normal 1280 688 -304 336 RECTANGLE Normal 1296 1088 -320 736