/* This file is generated by topld.pl */ /* Please don't edit it. */ Name M8650 ; PartNo cpld ; Date 10/18/2021 ; Revision 01 ; Designer ; Company ; Assembly None ; Location E1 ; Device f1508isptqfp100; $DEFINE OPTIMIZE $UNDEF OPTIMIZE /* Input Pins */ pin = n_t_165x; pin = n_t_1x; pin = n_t_32x; pin = n_t_3x; pin = n_t_50x; pin = n_t_58x; pin = n_t_74x; pin = n_t_84x; pin = n_t_86x; pin = n_t_90x; pin = n_t_95x; pin = n_t_96x; pin = stp_mark; pin = tx_rate; /* Output Pins */ pin = bd1200; pin = bd150; pin = bd2400; pin = bd300; pin = bd600; pin = c0_l; pin = c1_l; pin = data04_l; pin = data05_l; pin = data06_l; pin = data07_l; pin = data08_l; pin = data09_l; pin = data10_l; pin = data11_l; pin = eia_in; pin = eia_out; pin = initialize; pin = int_enab; pin = int_rqst_l; pin = internal_io_l; pin = io_pause_l; pin = line; pin = md03; pin = md04; pin = md05; pin = md06; pin = md07; pin = md08; pin = md09; pin = md10; pin = md11; pin = n15v; pin = n_t_119x; pin = n_t_146x; pin = n_t_161x; pin = n_t_162x; pin = n_t_45x; pin = n_t_59x; pin = n_t_89x; pin = n_t_92x; pin = n_t_93x; pin = power_ok; pin = r_run_l; pin = reader_run; pin = reader_run_or; pin = rtsdtr; pin = rx20ma_data; pin = rx_20ma; pin = rx_20ma_or; pin = rx_active; pin = rx_data; pin = rx_rate; pin = serial_in; pin = skip_l; pin = testp4; pin = tp3; pin = tx_20ma; pin = tx_20ma_or; pin = tx_active; node rx_div; node ck_pulse; node rx_div2_l; node rx_div4_l; node n_t_155x; node gdollar_0; node gdollar_1; node rx7; node n_t_34x; node n_t_36x; node n_t_35x; node p_pulse_l; node last_unit; node rx_div8; node n_t_37x; node n_t_38x; node n_t_39x; node n_t_40x; node tx_div; node spike_det_l; node gdollar_2; node gdollar_3; node tx_active_l; node start_l; node gdollar_4; node gdollar_5; node gdollar_6; node n_t_154x; node gdollar_7; node gdollar_8; node n_t_60x; node n_t_62x; node n_t_56x; node n_t_61x; node enab; node n_t_63x; node n_t_65x; node n_t_66x; node tx_data; node tflg_l; node int_enab_l; node rflg_l; /* Internal nodes */ $IFNDEF OPTIMIZE node ckkcc_l; node ckkcf; node ckkie; node cktcf; node cktfl; node dokcc; node dokrs; node dotcf; node dotpc; node flgs; node kcc_l; node kcf_l; node kie_l; node krb_l; node krs_l; node ksf_l; node kskp; node n_t_108x; node n_t_152x; node n_t_16x; node n_t_19x; node n_t_21x; node n_t_23x; node n_t_25x; node n_t_28x; node n_t_29x; node n_t_41x; node n_t_42x; node n_t_46x; node n_t_47x; node n_t_48x; node n_t_49x; node n_t_52x; node n_t_53x; node n_t_54x; node n_t_55x; node n_t_68x; node n_t_69x; node n_t_70x; node n_t_76x; node n_t_77x; node n_t_81x; node n_t_8x; node n_t_91x; node n_t_94x; node rx_active8_l; node rx_again_l; node rx_bot; node rx_last_l; node rx_sel_l; node selected_l; node tcf_l; node tfl_l; node tkskp; node tls_l; node tpc_l; node tsf_l; node tsk_l; node tskp; node tx7; node tx8; node tx_sel_l; node tx_shift_l; $ENDIF /* Code nodes */ /* Equations */ /* c1: c_us */ /* c2: c_us */ /* c3: c_us */ /* c4: c_us */ /* c5: c_us */ /* c6: c_us */ /* c7: c_us */ /* c8: c_us */ /* c9: c_us */ /* c10: c_us */ /* c11: c_us */ /* c12: c_us */ /* c13: c_us */ /* c14: c_us */ /* c15: c_us */ /* c16: c_us */ /* c17: c_us */ /* c18: c_us */ /* c19: c_us */ /* c20: c_us */ /* c21: c_us */ /* c22: c_us */ /* c23: c_us */ /* c24: c_us */ /* c25: c_us */ /* c26: c_us */ /* c27: c_us */ /* c28: c_us */ /* c29: c_us */ /* c30: c_us */ /* c31: c_us */ /* c32: c_us */ /* c33: c_us */ /* c34: c_us */ /* c35: c_us */ /* c36: c_us */ /* c37: c_us */ /* c38: c_us */ /* c39: c_us */ /* c40: c_us */ /* c41: c_us */ /* c42: c_us */ /* c43: c_us */ /* c44: c_us */ /* c45: c_us */ /* c46: c_us */ /* c47: c_us */ /* c48: c_us */ /* c49: c_us */ /* c50: c_us */ /* c51: cpol_use */ /* c52: cpol_use */ /* c53: cpol_use */ /* c54: cpol_use */ /* c55: cpol_use */ /* c56: cpol_use */ /* c57: c_us */ /* c58: c_us */ /* c59: c_us */ /* c60: c_us */ /* c61: c_us */ /* c62: c_us */ /* c63: c_us */ /* c64: c_us */ /* c65: c_us */ /* c66: cpol_use */ /* c67: c_us */ /* dl1: rcl_l_100 */ /* e1: sp380n */ !n_t_93x = md08 # io_pause_l; !n_t_59x = io_pause_l # md04; !n_t_45x = io_pause_l # md03; /* e2: sn97401 */ /* data07_l = !(n_t_35x & dokrs); */ /* data06_l = !(dokrs & n_t_36x); */ /* data05_l = !(n_t_34x & dokrs); */ /* data04_l = !(dokrs & rx7); */ /* e3: sn7474 */ rx_div.ar = !'b'1; rx_div.d = n_t_76x; rx_div.ck = rx_rate; rx_div.ap = !'b'1; ck_pulse.ap = !'b'1; ck_pulse.d = 'b'1; ck_pulse.ck = !rx_active8_l; ck_pulse.ar = !rx_rate; /* e4: sn7474 */ rx_div2_l.ap = !rx_last_l; rx_div2_l.d = !rx_div2_l; rx_div2_l.ck = !rx_div; rx_div2_l.ar = !'b'1; rx_div4_l.ap = !rx_last_l; rx_div4_l.d = !rx_div4_l; rx_div4_l.ck = rx_div2_l; rx_div4_l.ar = !'b'1; /* e5: sn7493 */ n_t_155x.ck = n_t_154x; n_t_155x.t = 'b'1; n_t_155x.ar = 'b'0; gdollar_0.ck = n_t_155x; gdollar_0.t = 'b'1; gdollar_0.ar = 'b'0; gdollar_1.ck = gdollar_0; gdollar_1.t = 'b'1; gdollar_1.ar = 'b'0; bd2400.ck = gdollar_1; bd2400.t = 'b'1; bd2400.ar = 'b'0; /* e6: dec8271 */ rx7.ar = !'b'1; rx7.d = !serial_in & p_pulse_l # 'b'1 & !p_pulse_l # rx7 & !'b'1 & !p_pulse_l; rx7.ck = n_t_41x; n_t_34x.ar = !'b'1; n_t_34x.d = rx7 & p_pulse_l # 'b'1 & !p_pulse_l # n_t_34x & !'b'1 & !p_pulse_l; n_t_34x.ck = n_t_41x; n_t_36x.ar = !'b'1; n_t_36x.d = n_t_34x & p_pulse_l # 'b'1 & !p_pulse_l # n_t_36x & !'b'1 & !p_pulse_l; n_t_36x.ck = n_t_41x; n_t_35x.ar = !'b'1; n_t_35x.d = n_t_36x & p_pulse_l # 'b'1 & !p_pulse_l # n_t_35x & !'b'1 & !p_pulse_l; n_t_35x.ck = n_t_41x; /* e7: sn7474 */ rx_active.ar = !power_ok; rx_active.d = 'b'0; rx_active.ck = !n_t_70x; rx_active.ap = !rx_again_l; p_pulse_l.ar = !'b'1; p_pulse_l.d = 'b'0; p_pulse_l.ck = rx_active; p_pulse_l.ap = !rx_div4_l; /* e8: sn7474 */ last_unit.ar = !n_t_91x; last_unit.d = rx_bot; last_unit.ck = ck_pulse; last_unit.ap = !'b'1; rx_div8.ar = !rx_last_l; rx_div8.d = !rx_div8; rx_div8.ck = rx_div4_l; rx_div8.ap = !'b'1; /* e9: sp314n */ rx_sel_l = n_t_165x # io_pause_l # n_t_86x # n_t_3x # n_t_96x # n_t_50x # n_t_90x; /* e10: dec8271 */ n_t_37x.ar = !'b'1; n_t_37x.d = n_t_35x & p_pulse_l # 'b'1 & !p_pulse_l # n_t_37x & !'b'1 & !p_pulse_l; n_t_37x.ck = n_t_41x; n_t_38x.ar = !'b'1; n_t_38x.d = n_t_37x & p_pulse_l # 'b'1 & !p_pulse_l # n_t_38x & !'b'1 & !p_pulse_l; n_t_38x.ck = n_t_41x; n_t_39x.ar = !'b'1; n_t_39x.d = n_t_38x & p_pulse_l # 'b'1 & !p_pulse_l # n_t_39x & !'b'1 & !p_pulse_l; n_t_39x.ck = n_t_41x; n_t_40x.ar = !'b'1; n_t_40x.d = n_t_39x & p_pulse_l # 'b'1 & !p_pulse_l # n_t_40x & !'b'1 & !p_pulse_l; n_t_40x.ck = n_t_41x; rx_bot = !n_t_40x; /* e11: sn7402 */ n_t_81x = !(spike_det_l # serial_in); n_t_41x = !(ck_pulse # n_t_42x); n_t_42x = !(p_pulse_l # rx_div2_l); /* e12: sn7400 */ rx_active8_l = !(rx_active & rx_div8); n_t_91x = !(!rx_active & rx_div8); n_t_76x = !(rx_div & rx_last_l); rx_last_l = !(!last_unit & !rx_active); /* e13: sn7493 */ bd1200.ck = bd2400; bd1200.t = 'b'1; bd1200.ar = 'b'0; bd600.ck = bd1200; bd600.t = 'b'1; bd600.ar = 'b'0; bd300.ck = bd600; bd300.t = 'b'1; bd300.ar = 'b'0; bd150.ck = bd300; bd150.t = 'b'1; bd150.ar = 'b'0; /* e14: sp314n */ tx_sel_l = n_t_84x # n_t_1x # n_t_58x # n_t_32x # n_t_95x # io_pause_l # n_t_74x; /* e15: sn97401 */ /* data11_l = !(n_t_40x & dokrs); */ /* data10_l = !(dokrs & n_t_39x); */ /* data09_l = !(n_t_38x & dokrs); */ /* data08_l = !(dokrs & n_t_37x); */ /* e16: sn7474 */ tx_div.ar = !'b'1; tx_div.d = n_t_94x; tx_div.ck = tx_rate; tx_div.ap = initialize; spike_det_l.ap = initialize; spike_det_l.d = 'b'1; spike_det_l.ck = rx_active8_l; spike_det_l.ar = !rx_again_l; /* e17: 1489n */ /* e18: sn7493 */ rx_rate.ck = testp4; rx_rate.t = 'b'1; rx_rate.ar = 'b'0; gdollar_2.ck = rx_rate; gdollar_2.t = 'b'1; gdollar_2.ar = 'b'0; gdollar_3.ck = gdollar_2; gdollar_3.t = 'b'1; gdollar_3.ar = 'b'0; n_t_162x.ck = gdollar_3; n_t_162x.t = 'b'1; n_t_162x.ar = 'b'0; /* e19: sn7410 */ rx_again_l = !(serial_in & !rx_last_l & rx_rate); tx8 = !(n_t_68x & !tx_div & n_t_69x); tx7 = !(n_t_69x & n_t_68x); /* e20: sn7474 */ tx_active_l.ar = !'b'1; tx_active_l.d = n_t_108x; tx_active_l.ck = tx_rate; tx_active_l.ap = initialize; tx_active = !tx_active_l; start_l.ap = !tx_rate; start_l.d = !'b'1; start_l.ck = tx_active; start_l.ar = !'b'1; /* e21: sn7404 */ /* e22: sn74193 */ gdollar_4.ap = 'b'0; gdollar_4.ar = !'b'1; gdollar_4.t = 'b'1; gdollar_4.ck = !(!'b'1 # !n_t_152x); gdollar_5.ap = 'b'0; gdollar_5.ar = !'b'1; gdollar_5.t = 'b'1; gdollar_5.ck = !(!'b'1 & !gdollar_4 # !n_t_152x & gdollar_4); gdollar_6.ap = 'b'0; gdollar_6.ar = !'b'1; gdollar_6.t = 'b'1; gdollar_6.ck = !(!'b'1 & !gdollar_4 & !gdollar_5 # !n_t_152x & gdollar_4 & gdollar_5); n_t_154x.ap = 'b'0; n_t_154x.ar = !'b'1; n_t_154x.t = 'b'1; n_t_154x.ck = !(!'b'1 & !gdollar_6 & !gdollar_4 & !gdollar_5 # !n_t_152x & gdollar_6 & gdollar_4 & gdollar_5); /* e23: sp380n */ !selected_l = !rx_sel_l # !tx_sel_l; !n_t_92x = io_pause_l # md07; !n_t_161x = md05 # io_pause_l; !n_t_89x = io_pause_l # md06; /* e24: n8815 */ !n_t_69x = n_t_56x # enab # n_t_60x # n_t_62x; !n_t_68x = n_t_63x # n_t_65x # n_t_66x # n_t_61x; /* e25: sn7450 */ !n_t_108x = stp_mark & enab # tx_active & tx8; !tx_shift_l = tp3 & dotpc # tx_div & 'b'1; /* e26: dec8271 */ n_t_146x.ar = !tx_div; n_t_146x.d = tx_active_l & 'b'1 # & 'b'1 & !'b'1 # n_t_146x & !'b'1 & !'b'1; n_t_146x.ck = !tx_rate; gdollar_7.ar = !tx_div; gdollar_7.d = n_t_146x & 'b'1 # & 'b'1 & !'b'1 # gdollar_7 & !'b'1 & !'b'1; gdollar_7.ck = !tx_rate; n_t_119x.ar = !tx_div; n_t_119x.d = gdollar_7 & 'b'1 # & 'b'1 & !'b'1 # n_t_119x & !'b'1 & !'b'1; n_t_119x.ck = !tx_rate; gdollar_8.ar = !tx_div; gdollar_8.d = n_t_119x & 'b'1 # & 'b'1 & !'b'1 # gdollar_8 & !'b'1 & !'b'1; gdollar_8.ck = !tx_rate; /* e27: sp380n */ !n_t_47x = data05_l # !dotpc; !n_t_46x = !dotpc # data04_l; !n_t_49x = data07_l # !dotpc; !n_t_48x = !dotpc # data06_l; /* e28: dec8271 */ n_t_60x.ar = initialize; n_t_60x.d = enab & !dotpc # n_t_46x & 'b'1 & dotpc # n_t_60x & !'b'1 & dotpc; n_t_60x.ck = tx_shift_l; n_t_62x.ar = initialize; n_t_62x.d = n_t_60x & !dotpc # n_t_47x & 'b'1 & dotpc # n_t_62x & !'b'1 & dotpc; n_t_62x.ck = tx_shift_l; n_t_56x.ar = initialize; n_t_56x.d = n_t_62x & !dotpc # n_t_48x & 'b'1 & dotpc # n_t_56x & !'b'1 & dotpc; n_t_56x.ck = tx_shift_l; n_t_61x.ar = initialize; n_t_61x.d = n_t_56x & !dotpc # n_t_49x & 'b'1 & dotpc # n_t_61x & !'b'1 & dotpc; n_t_61x.ck = tx_shift_l; /* e29: sn7474 */ line.ar = !start_l; line.d = tx_data; line.ck = tx_div; line.ap = !tx_active; enab.ar = initialize; enab.d = dotpc; enab.ck = !tx_shift_l; enab.ap = !'b'1; /* e30: sp380n */ !n_t_53x = data09_l # !dotpc; !n_t_52x = !dotpc # data08_l; !n_t_55x = data11_l # !dotpc; !n_t_54x = !dotpc # data10_l; /* e31: dec8271 */ n_t_63x.ar = initialize; n_t_63x.d = n_t_61x & !dotpc # n_t_52x & 'b'1 & dotpc # n_t_63x & !'b'1 & dotpc; n_t_63x.ck = tx_shift_l; n_t_65x.ar = initialize; n_t_65x.d = n_t_63x & !dotpc # n_t_53x & 'b'1 & dotpc # n_t_65x & !'b'1 & dotpc; n_t_65x.ck = tx_shift_l; n_t_66x.ar = initialize; n_t_66x.d = n_t_65x & !dotpc # n_t_54x & 'b'1 & dotpc # n_t_66x & !'b'1 & dotpc; n_t_66x.ck = tx_shift_l; tx_data.ar = initialize; tx_data.d = n_t_66x & !dotpc # n_t_55x & 'b'1 & dotpc # tx_data & !'b'1 & dotpc; tx_data.ck = tx_shift_l; /* e32: 1488n */ /* e33: sn97401 */ /* c0_l = !dokcc; */ /* c1_l = !dokrs; */ /* tx_sel_l = tx_sel_l; */ /* c1_l = !dokcc; */ /* e34: sp384n */ n_t_8x = io_pause_l # data11_l; /* e35: sn74h00 */ n_t_29x = !(ckkcc_l & !initialize); n_t_94x = !(tx_div & tx_active); /* e36: sp384n */ /* e37: sn97401 */ /* internal_io_l = tx_sel_l; */ /* internal_io_l = rx_sel_l; */ /* skip_l = skip_l; */ /* int_rqst_l = !(flgs & int_enab); */ /* e38: sn7474 */ tflg_l.ar = cktfl; tflg_l.d = tx7; tflg_l.ck = tx_div; tflg_l.ap = n_t_16x; int_enab_l.ar = initialize; int_enab_l.d = n_t_8x; int_enab_l.ck = ckkie; int_enab_l.ap = !'b'1; int_enab = !int_enab_l; /* e39: sn7450 */ !n_t_70x = rx_active8_l & last_unit # n_t_81x & ck_pulse; !skip_l = n_t_19x & flgs # tkskp; /* e40: dec8251 */ !tfl_l = !tx_sel_l & !n_t_23x & !n_t_21x & !n_t_25x; !tsf_l = !tx_sel_l & !n_t_23x & !n_t_21x & n_t_25x; !tcf_l = !tx_sel_l & !n_t_23x & n_t_21x & !n_t_25x; !tpc_l = !tx_sel_l & n_t_23x & !n_t_21x & !n_t_25x; !tsk_l = !tx_sel_l & n_t_23x & !n_t_21x & n_t_25x; !tls_l = !tx_sel_l & n_t_23x & n_t_21x & !n_t_25x; /* e41: sn7400 */ n_t_16x = !(!initialize & cktcf); dotpc = !(tls_l & tpc_l); dotcf = !(tls_l & tcf_l); cktcf = !(dotcf & tp3); /* e42: sn7404 */ /* e43: dec8251 */ !kcf_l = !rx_sel_l & !n_t_23x & !n_t_21x & !n_t_25x; !ksf_l = !rx_sel_l & !n_t_23x & !n_t_21x & n_t_25x; !kcc_l = !rx_sel_l & !n_t_23x & n_t_21x & !n_t_25x; !krs_l = !rx_sel_l & n_t_23x & !n_t_21x & !n_t_25x; !kie_l = !rx_sel_l & n_t_23x & !n_t_21x & n_t_25x; !krb_l = !rx_sel_l & n_t_23x & n_t_21x & !n_t_25x; /* e44: sn7400 */ flgs = !(rflg_l & tflg_l); dokrs = !(krb_l & krs_l); dokcc = !(krb_l & kcc_l); ckkcc_l = !(dokcc & tp3); /* e45: sn7402 */ cktfl = !(tfl_l # !tp3); !tkskp = !(kskp # tskp); n_t_19x = !(tsk_l # int_enab_l); tskp = !(tflg_l # tsf_l); /* e46: sp380n */ !n_t_21x = md10 # selected_l; !n_t_23x = selected_l # md09; !n_t_25x = md11 # selected_l; /* e47: sn7402 */ n_t_28x = !(n_t_29x # ckkcf); ckkcf = !(!tp3 # kcf_l); ckkie = !(kie_l # !tp3); kskp = !(ksf_l # rflg_l); /* e48: sn7474 */ rflg_l.ap = !n_t_28x; rflg_l.d = !rx_bot; rflg_l.ck = ck_pulse; rflg_l.ar = !'b'1; r_run_l.ar = !ckkcc_l; r_run_l.d = 'b'1; r_run_l.ck = !rx7; r_run_l.ap = initialize; /* ja12: j10mm */ /* ja13: j10mm */ /* jb12: j10mm */ /* jb13: j10mm */ /* jc13: j10mm */ /* jc24: j10mm */ /* jd13: j10mm */ /* jd24: j10mm */ /* je13: j10mm */ /* je24: j10mm */ /* jf12: j10mm */ /* jf24: j10mm */ /* jj23: j10mm */ /* r1: r_us_ */ /* r2: r_us_ */ /* r3: r_us_ */ /* r4: r_us_ */ /* r5: r_us_ */ /* r6: r_us_ */ /* r7: r_us_ */ /* r8: r_us_ */ /* r9: r_us_ */ /* r10: r_us_ */ /* r11: 750 */ /* r12: 1.5k */ /* r13: r_us_ */ /* r14: r_us_ */ /* r15: r_us_ */ /* r16: 750 */ /* r17: 560 */ /* r18: r_us_ */ /* r19: r_us_ */ /* r20: r_us_ */ /* r21: r_us_ */ /* r22: r_us_ */ /* r23: r_us_ */ /* r24: r_us_ */ /* r25: 1.5k */ /* r26: r_us_ */ /* t1: 16_09651 */ /* y1: 19.661 */ /* Open collector 'wire-or's */ property atmel {open_collector= c0_l}; !c0_l = dokcc; c0_l.oe = dokcc; property atmel {open_collector= c1_l}; !c1_l = (dokrs) # (dokcc); c1_l.oe = (dokrs) # (dokcc); property atmel {open_collector= data04_l}; !data04_l = (dokrs & rx7); data04_l.oe = (dokrs & rx7); property atmel {open_collector= data05_l}; !data05_l = (n_t_34x & dokrs); data05_l.oe = (n_t_34x & dokrs); property atmel {open_collector= data06_l}; !data06_l = (dokrs & n_t_36x); data06_l.oe = (dokrs & n_t_36x); property atmel {open_collector= data07_l}; !data07_l = (n_t_35x & dokrs); data07_l.oe = (n_t_35x & dokrs); property atmel {open_collector= data08_l}; !data08_l = (dokrs & n_t_37x); data08_l.oe = (dokrs & n_t_37x); property atmel {open_collector= data09_l}; !data09_l = (n_t_38x & dokrs); data09_l.oe = (n_t_38x & dokrs); property atmel {open_collector= data10_l}; !data10_l = (dokrs & n_t_39x); data10_l.oe = (dokrs & n_t_39x); property atmel {open_collector= data11_l}; !data11_l = (n_t_40x & dokrs); data11_l.oe = (n_t_40x & dokrs); property atmel {open_collector= int_rqst_l}; !int_rqst_l = (flgs & int_enab); int_rqst_l.oe = (flgs & int_enab); property atmel {open_collector= internal_io_l}; !internal_io_l = (!tx_sel_l) # (!rx_sel_l); internal_io_l.oe = (!tx_sel_l) # (!rx_sel_l); property atmel {open_collector= skip_l}; skip_l.oe = !skip_l;