* c:\ebalakrishna\fossee\esim\4_bit_adc\4_bit_adc.cir

.include lm_741.sub
x1 net-r21-pad2 net-r1-pad2 vin net-x1-pad4 net-r21-pad1 net-u2-pad1 net-x1-pad7 ? lm_741
x2 net-r22-pad2 net-r2-pad2 vin net-x1-pad4 net-r22-pad1 net-u2-pad2 net-x1-pad7 ? lm_741
x3 net-r23-pad2 net-r3-pad2 vin net-x1-pad4 net-r23-pad1 net-u2-pad3 net-x1-pad7 ? lm_741
x4 net-r24-pad2 net-r4-pad2 vin net-x1-pad4 net-r24-pad1 net-u2-pad4 net-x1-pad7 ? lm_741
x5 net-r25-pad2 net-r5-pad2 vin net-x1-pad4 net-r25-pad1 net-u2-pad5 net-x1-pad7 ? lm_741
x6 net-r26-pad2 net-r6-pad2 vin net-x1-pad4 net-r26-pad1 net-u2-pad6 net-x1-pad7 ? lm_741
x7 net-r27-pad2 net-r7-pad2 vin net-x1-pad4 net-r27-pad1 net-u2-pad7 net-x1-pad7 ? lm_741
x9 net-r28-pad2 net-r8-pad2 vin net-x1-pad4 net-r28-pad1 net-u2-pad8 net-x1-pad7 ? lm_741
x10 net-r29-pad2 net-r10-pad1 vin net-x1-pad4 net-r29-pad1 net-u9-pad1 net-x1-pad7 ? lm_741
x11 net-r30-pad2 net-r10-pad2 vin net-x1-pad4 net-r30-pad1 net-u9-pad2 net-x1-pad7 ? lm_741
x12 net-r31-pad2 net-r11-pad2 vin ? net-r31-pad1 net-u9-pad3 net-x1-pad7 ? lm_741
x13 net-r32-pad2 net-r12-pad2 vin net-x1-pad4 net-r32-pad1 net-u9-pad4 net-x1-pad7 ? lm_741
x14 net-r33-pad2 net-r13-pad2 vin net-x1-pad4 ? net-u9-pad5 net-x1-pad7 ? lm_741
x15 ? net-r14-pad2 vin net-x1-pad4 net-r34-pad1 net-u9-pad6 net-x1-pad7 ? lm_741
x16 net-r35-pad2 net-r15-pad2 vin net-x1-pad4 net-r35-pad1 net-u9-pad7 net-x1-pad7 ? lm_741
r1  vref net-r1-pad2 1k
r2  net-r1-pad2 net-r2-pad2 1k
r3  net-r2-pad2 net-r3-pad2 1k
r4  net-r3-pad2 net-r4-pad2 1k
r5  net-r4-pad2 net-r5-pad2 1k
r6  net-r5-pad2 net-r6-pad2 1k
r7  net-r6-pad2 net-r7-pad2 1k
r8  net-r7-pad2 net-r8-pad2 1k
r9  net-r8-pad2 net-r10-pad1 1k
r10  net-r10-pad1 net-r10-pad2 1k
r11  net-r10-pad2 net-r11-pad2 1k
r12  net-r11-pad2 net-r12-pad2 1k
r13  net-r12-pad2 net-r13-pad2 1k
r14  net-r13-pad2 net-r14-pad2 1k
r15  net-r14-pad2 net-r15-pad2 1k
r16  net-r15-pad2 gnd 1k
v1  vref gnd 12
v4  vin gnd sine(0 14 120 0 0)
* u1  vin plot_v1
v2  net-x1-pad7 gnd 20
v3  gnd net-x1-pad4 20
* u2  net-u2-pad1 net-u2-pad2 net-u2-pad3 net-u2-pad4 net-u2-pad5 net-u2-pad6 net-u2-pad7 net-u2-pad8 net-u2-pad9 net-u2-pad10 net-u2-pad11 net-u2-pad12 net-u2-pad13 net-u2-pad14 net-u2-pad15 net-u2-pad16 adc_bridge_8
* u5  net-u5-pad1 net-u5-pad2 net-u5-pad3 net-u5-pad4 net-r17-pad2 net-r18-pad2 net-r19-pad2 net-r20-pad2 dac_bridge_4
r17  vout1 net-r17-pad2 1k
r18  vout2 net-r18-pad2 1k
r19  vout3 net-r19-pad2 1k
r20  vout4 net-r20-pad2 1k
* u3  vout1 plot_v1
* u4  vout2 plot_v1
* u6  vout3 plot_v1
* u7  vout4 plot_v1
* u8  net-u2-pad9 net-u2-pad10 net-u2-pad11 net-u2-pad12 net-u2-pad13 net-u2-pad14 net-u2-pad15 net-u2-pad16 net-u8-pad9 net-u8-pad10 net-u8-pad11 net-u8-pad12 net-u8-pad13 net-u8-pad14 net-u8-pad15 net-u8-pad16 net-u5-pad1 net-u5-pad2 net-u5-pad3 net-u5-pad4 balakrishna_priority_encoder
* u9  net-u9-pad1 net-u9-pad2 net-u9-pad3 net-u9-pad4 net-u9-pad5 net-u9-pad6 net-u9-pad7 net-u9-pad8 net-u8-pad9 net-u8-pad10 net-u8-pad11 net-u8-pad12 net-u8-pad13 net-u8-pad14 net-u8-pad15 net-u8-pad16 adc_bridge_8
x8 net-r36-pad2 gnd vin net-x1-pad4 net-r36-pad1 net-u9-pad8 net-x1-pad7 ? lm_741
* u10  vref plot_v1
r21  net-r21-pad1 net-r21-pad2 1k
r22  net-r22-pad1 net-r22-pad2 1k
r23  net-r23-pad1 net-r23-pad2 1k
r24  net-r24-pad1 net-r24-pad2 1k
r25  net-r25-pad1 net-r25-pad2 1k
r26  net-r26-pad1 net-r26-pad2 1k
r27  net-r27-pad1 net-r27-pad2 1k
r28  net-r28-pad1 net-r28-pad2 1k
r29  net-r29-pad1 net-r29-pad2 1k
r30  net-r30-pad1 net-r30-pad2 1k
r31  net-r31-pad1 net-r31-pad2 1k
r32  net-r32-pad1 net-r32-pad2 1k
r33  ? net-r33-pad2 1k
r34  net-r34-pad1 ? 1k
r35  net-r35-pad1 net-r35-pad2 1k
r36  net-r36-pad1 net-r36-pad2 1k
a1 [net-u2-pad1 net-u2-pad2 net-u2-pad3 net-u2-pad4 net-u2-pad5 net-u2-pad6 net-u2-pad7 net-u2-pad8 ] [net-u2-pad9 net-u2-pad10 net-u2-pad11 net-u2-pad12 net-u2-pad13 net-u2-pad14 net-u2-pad15 net-u2-pad16 ] u2
a2 [net-u5-pad1 net-u5-pad2 net-u5-pad3 net-u5-pad4 ] [net-r17-pad2 net-r18-pad2 net-r19-pad2 net-r20-pad2 ] u5
a3 [net-u2-pad9 net-u2-pad10 net-u2-pad11 net-u2-pad12 net-u2-pad13 net-u2-pad14 net-u2-pad15 net-u2-pad16 net-u8-pad9 net-u8-pad10 net-u8-pad11 net-u8-pad12 net-u8-pad13 net-u8-pad14 net-u8-pad15 net-u8-pad16 ] [net-u5-pad1 net-u5-pad2 net-u5-pad3 net-u5-pad4 ] u8
a4 [net-u9-pad1 net-u9-pad2 net-u9-pad3 net-u9-pad4 net-u9-pad5 net-u9-pad6 net-u9-pad7 net-u9-pad8 ] [net-u8-pad9 net-u8-pad10 net-u8-pad11 net-u8-pad12 net-u8-pad13 net-u8-pad14 net-u8-pad15 net-u8-pad16 ] u9
* Schematic Name:                             adc_bridge_8, NgSpice Name: adc_bridge
.model u2 adc_bridge(in_low=1.0 in_high=2.0 rise_delay=1.0e-9 fall_delay=1.0e-9 ) 
* Schematic Name:                             dac_bridge_4, NgSpice Name: dac_bridge
.model u5 dac_bridge(out_low=0.0 out_high=5.0 out_undef=0.5 input_load=1.0e-12 t_rise=1.0e-9 t_fall=1.0e-9 ) 
* Schematic Name:                             balakrishna_priority_encoder, NgSpice Name: balakrishna_priority_encoder
.model u8 balakrishna_priority_encoder(rise_delay=1.0e-9 fall_delay=1.0e-9 input_load=1.0e-12 instance_id=1 ) 
* Schematic Name:                             adc_bridge_8, NgSpice Name: adc_bridge
.model u9 adc_bridge(in_low=1.0 in_high=2.0 rise_delay=1.0e-9 fall_delay=1.0e-9 ) 
.tran 1e-03 10e-03 0e-03

* Control Statements 
.control
run
print allv > plot_data_v.txt
print alli > plot_data_i.txt
plot v(vin)+7 v(vref)
plot v(vout1)+7 v(vout2)+14 v(vout3)+21 v(vout4)+28 
.endc
.end
