.SUBCKT DAC4BIT D0 D1 D2 D3 REF OUT PARAMS: TDELAY=1ps * 4-bit DAC (digital-to-analog converter). * * The digital inputs D0 thru D3 MUST be logic signals - they must be * connected to U digital device outputs. If you want to apply analog voltages * insert U BUF elements between the signals and inputs. * V1 1 0 1V O0 DTOA A0 0 1 D0 DACMODDA R0 A0 0 1G O1 DTOA A1 0 1 D1 DACMODDA R1 A1 0 1G O2 DTOA A2 0 1 D2 DACMODDA R2 A2 0 1G O3 DTOA A3 0 1 D3 DACMODDA R3 A3 0 1G E1 OUT 0 VALUE {(V(A3)*8+V(A2)*4+V(A1)*2+V(A0))/15*V(REF)} ROUT OUT 0 1G .MODEL DACMODDA DTOA (RLO0=200 RHI0=10MEG RLO1=10MEG RHI1=200 + RLOX=10MEG RHIX=10MEG RLOZ=10MEG RHIZ=10MEG + TSW0={TDELAY} TSW1={TDELAY} TSWX={TDELAY} TSWZ={TDELAY}) .ENDS DAC4BIT ****************************************************************88 * Pins: input * | reference * | | LSB * | | | MSB * | | | | .SUBCKT ADC4BIT IN REF D0 D1 D2 D3 * * This model behaves like a 4-bit flash A/D converter. The conversion delay * is determined by the signal transition time. * R1 IN 0 1G E1 IN3 0 VALUE {V(IN)/(V(REF)+1U)*15+1} X3 IN3 IN2 D3 ADCNBIT PARAMS: NBIT=3 X2 IN2 IN1 D2 ADCNBIT PARAMS: NBIT=2 X1 IN1 IN0 D1 ADCNBIT PARAMS: NBIT=1 X0 IN0 D0 ADC0BIT .ENDS ADC4BIT .SUBCKT ADCNBIT IN DIFF DOUT + PARAMS: + NBIT=1 ;bit + VUNIT=1V ;unit bit voltage scaling factor + VDIG=5V ;"digital" output level V1 1 0 {(2^NBIT)*VUNIT} E1 2 0 IN 1 1 V2 3 0 1V S1 3 COMP 2 0 SADCNB .MODEL SADCNB VSWITCH (VON={0.8*VUNIT} VOFF={0.2*VUNIT} RON=1 ROFF=1G) R1 COMP 0 100K E4 DOUT 0 COMP 0 {VDIG} E3 DIFF 0 POLY(3) IN 0 COMP 0 1 0 0 1 0 0 0 0 0 0 -1 .ENDS ADCNBIT .SUBCKT ADC0BIT IN DOUT + PARAMS: + VUNIT=1V ;unit bit voltage scaling factor + VDIG=5V ;"digital" output level V1 1 0 {VUNIT} E1 2 0 IN 1 1 V2 3 0 1V S1 3 COMP 2 0 SADC0B .MODEL SADC0B VSWITCH (VON={0.8*VUNIT} VOFF={0.2*VUNIT} RON=1 ROFF=1G) R1 COMP 0 100K E4 DOUT 0 COMP 0 {VDIG} .ENDS ADC0BIT