Name m868 ; PartNo cpld ; Date 9/2/2015 ; Revision 01 ; Designer ; Company ; Assembly None ; Location E1 ; Device f1508ispqfp100; $include ../pins.pld /* Map the pins of J1 */ $define f_r_low tt $define con_all_halt rr $define t_m_enable nn $define unith ll $define s_g_low jj $define nd0 ff $define nd1 dd $define wpt bb $define wd_enab z $define nd2 x $define rd02 v $define wrt_echo t $define sel_echo n $define rd01 l $define rtt_low j $define rmt f $define rd00 d /* Input Pins */ pin io37 = cc_dtp; pin io46 = cc_t_m_en; pin gclk1 = cc_tpg_clk; pin io69 = clrdly_low; pin io56 = d; pin io60 = df_sel_er_low; pin io57 = f; pin gclk2 = in1; pin gclr = in2; pin gclk3 = in3; pin io10 = initialize; pin io19 = io_pause_low; pin io58 = j; pin io71 = jj; pin io59 = l; pin io73 = ll; pin io35 = md03_low; pin io29 = md04_low; pin io28 = md05_low; pin io27 = md06_low; pin io26 = md07_low; pin io8 = md08_low; pin io7 = md09_low; pin io6 = md10_low; pin io5 = md11_low; pin io74 = nn; pin io20 = power_ok_low; /* pin io56 = rd00; pin io59 = rd01; pin io62 = rd02; pin io57 = rmt; pin io58 = rtt_low; */ pin io75 = rr; pin io22 = run; pin io16 = tp3; pin io15 = tp4; pin io76 = tt; pin io36 = w2w1; pin io38 = w4w3; /* Output Pins */ pin io65 = bb_cpld; pin io18 = c0_low; pin io17 = c1_low; pin io12 = cc_setdly; pin io42 = cc_tt_en; pin io34 = data00_low; pin io33 = data01_low; pin io31 = data02_low; pin io30 = data03_low; pin io25 = data04_low; pin io24 = data05_low; pin io23 = data06_low; pin io21 = data07_low; pin io4 = data08_low; pin io1 = data09_low; pin io3 = data10_low; pin io2 = data11_low; pin io48 = done_skip_low; pin io56 = d_cpld; pin io66 = dd; pin io67 = ff_cpld; pin io11 = int_rqst_low; pin io14 = internal_io_low; pin io60 = n_cpld; pin io67 = nd0; pin io47 = parity; pin io9 = skip_low; pin io61 = t_cpld; pin io49 = tr_skip_low; pin io62 = v; pin io13 = w2; pin io41 = w3; /* pin io75 = con_all_halt; pin io76 = f_r_low; pin io66 = nd1; pin io63 = nd2; pin io71 = s_g_low; pin io74 = t_m_enable; pin io73 = unith; pin io64 = wd_enab; */ pin io65 = wpt; pin io63 = x; pin io64 = z; /* Internal nodes */ pinnode = cc_setdly_low; pinnode = cc_uts; pinnode = sr11; pinnode = sr08; pinnode = sr05; pinnode = sr02; pinnode = n_t_101x; pinnode = sync; pinnode = sr10; pinnode = sr07; pinnode = sr04; pinnode = sr01; pinnode = gdollar_0; pinnode = gdollar_1; pinnode = gdollar_2; pinnode = gdollar_3; pinnode = cc_tpg1; pinnode = tpg0; pinnode = sr09; pinnode = sr06; pinnode = sr03; pinnode = sr00; pinnode = mtr5_low; pinnode = mtr4_low; pinnode = mtr3_low; pinnode = mtr2_low; pinnode = mtr1_low; pinnode = mtr0_low; pinnode = gdollar_4; pinnode = gdollar_5; pinnode = cc_s_g; pinnode = cc_r_w; pinnode = cc_f_r; pinnode = cc_unit; pinnode = n_t_25x; pinnode = gdollar_6; pinnode = gdollar_7; pinnode = n_t_36x; /* Cross coupled latches */ pinnode = df_comp_wd; pinnode = df_time_er; pinnode = n_t_20x; pinnode = n_t_86x; /* Equations */ /* Replace the cross coupled latch at E27A, E35B. */ df_time_er.ap = !n_t_50x # !n_t_49x; df_time_er.ar = !cc_clk_te_low # !cc_init_low; df_time_er.ck = 'b'0; df_time_er.d = 'b'0; df_time_er_low = !df_time_er; /* Replace the cross coupled latch at E43C, E43D. */ n_t_20x.ap = !cc_s_g; n_t_20x.ar = !n_t_87x; n_t_20x.ck = 'b'0; n_t_20x.d = 'b'0; /* Replace the cross coupled latch at E38C, E38D. */ n_t_86x.ap = !cc_r_w; n_t_86x.ar = !cc_dtp0_low; n_t_86x.ck = 'b'0; n_t_86x.d = 'b'0; /* Replace the cross coupled latch at E22A, E22D. */ df_comp_wd.ap = !cc_dtp0_low; df_comp_wd.ar = !cc_dtp1_low; df_comp_wd.ck = 'b'0; df_comp_wd.d = 'b'0; /* e01: sn74h04 */ cc_btp3 = !cc_tp3_low; n_t_112x = !cc_tpg_clk; /* e02: sn7402 */ n_t_2x = !(cc_tp3_low # cc_sdld_low); n_t_97x = !cc_setdly; n_t_89x = !(n_t_86x # cc_t_m_en); n_t_98x = !(cc_uts_low # cc_t_m_en); /* e03: sn7474 */ cc_setdly_low.ar = !clrdly_low; cc_setdly_low.d = n_t_90x; cc_setdly_low.ck = n_t_83x; cc_setdly_low.ap = !n_t_87x; cc_setdly = !cc_setdly_low; cc_uts.ar = !n_t_97x; cc_uts.d = n_t_97x; cc_uts.ck = in3; cc_uts.ap = !cc_t_m_en_low; cc_uts_low = !cc_uts; /* e05: dec8235 */ /* e06: dec8271 */ sr11.ar = !n_t_1x; sr11.d = rd02&cc_sdld_low # n_t_14x&n_t_1x&!cc_sdld_low # sr11&!n_t_1x&!cc_sdld_low; sr11.ck = n_t_7x; sr08.ar = !n_t_1x; sr08.d = sr11&cc_sdld_low # n_t_13x&n_t_1x&!cc_sdld_low # sr08&!n_t_1x&!cc_sdld_low; sr08.ck = n_t_7x; sr05.ar = !n_t_1x; sr05.d = sr08&cc_sdld_low # n_t_16x&n_t_1x&!cc_sdld_low # sr05&!n_t_1x&!cc_sdld_low; sr05.ck = n_t_7x; sr02.ar = !n_t_1x; sr02.d = sr05&cc_sdld_low # df_db02&n_t_1x&!cc_sdld_low # sr02&!n_t_1x&!cc_sdld_low; sr02.ck = n_t_7x; /* e07: sp380n */ !n_t_13x = cc_67x_low # data08_low; !n_t_14x = cc_67x_low # data11_low; !df_db02 = cc_67x_low # data02_low; !n_t_16x = cc_67x_low # data05_low; /* e09: sn7474 */ n_t_101x.ar = !cc_uts; n_t_101x.d = n_t_98x; n_t_101x.ck = in2; n_t_101x.ap = !in1; sync.ar = !in1; sync.d = n_t_102x; sync.ck = in2; sync.ap = !in1; n_t_102x = !sync; /* e10: dec8235 */ /* e11: dec8271 */ sr10.ar = !n_t_1x; sr10.d = rd01&cc_sdld_low # n_t_9x&n_t_1x&!cc_sdld_low # sr10&!n_t_1x&!cc_sdld_low; sr10.ck = n_t_7x; sr07.ar = !n_t_1x; sr07.d = sr10&cc_sdld_low # n_t_8x&n_t_1x&!cc_sdld_low # sr07&!n_t_1x&!cc_sdld_low; sr07.ck = n_t_7x; sr04.ar = !n_t_1x; sr04.d = sr07&cc_sdld_low # n_t_11x&n_t_1x&!cc_sdld_low # sr04&!n_t_1x&!cc_sdld_low; sr04.ck = n_t_7x; sr01.ar = !n_t_1x; sr01.d = sr04&cc_sdld_low # df_db01&n_t_1x&!cc_sdld_low # sr01&!n_t_1x&!cc_sdld_low; sr01.ck = n_t_7x; /* e12: sp380n */ !n_t_8x = cc_67x_low # data07_low; !n_t_9x = cc_67x_low # data10_low; !df_db01 = cc_67x_low # data01_low; !n_t_11x = cc_67x_low # data04_low; /* e13: sn7475 */ gdollar_0.ap = n_t_35x&sr02; gdollar_0.ar = n_t_35x&!sr02; gdollar_0.d = 'b'0; gdollar_1.ap = n_t_35x; gdollar_1.ar = 'b'0; gdollar_1.ck = 'b'0; gdollar_1.d = 'b'0; gdollar_2.ap = n_t_35x&sr00; gdollar_2.ar = n_t_35x&!sr00; gdollar_2.ck = 'b'0; gdollar_2.d = 'b'0; gdollar_3.ap = n_t_35x&sr01; gdollar_3.ar = n_t_35x&!sr01; gdollar_0.ck = 'b'0; gdollar_3.ck = 'b'0; gdollar_3.d = 'b'0; n_t_32x = !gdollar_0; n_t_10x = !gdollar_2; n_t_34x = !gdollar_3; /* e14: sn7474 */ cc_tpg1.ar = !in1; cc_tpg1.d = n_t_107x; cc_tpg1.ck = cc_tpg_clk; cc_tpg1.ap = !in1; cc_tpg1_low = !cc_tpg1; tpg0.ar = !in1; tpg0.d = cc_tpg1; tpg0.ck = cc_tpg_clk; tpg0.ap = !in1; n_t_107x = !tpg0; /* e15: dec8235 */ /* e16: dec8271 */ sr09.ar = !n_t_1x; sr09.d = rd00&cc_sdld_low # n_t_4x&n_t_1x&!cc_sdld_low # sr09&!n_t_1x&!cc_sdld_low; sr09.ck = n_t_7x; sr06.ar = !n_t_1x; sr06.d = sr09&cc_sdld_low # n_t_3x&n_t_1x&!cc_sdld_low # sr06&!n_t_1x&!cc_sdld_low; sr06.ck = n_t_7x; sr03.ar = !n_t_1x; sr03.d = sr06&cc_sdld_low # df_db03&n_t_1x&!cc_sdld_low # sr03&!n_t_1x&!cc_sdld_low; sr03.ck = n_t_7x; sr00.ar = !n_t_1x; sr00.d = sr03&cc_sdld_low # df_db00&n_t_1x&!cc_sdld_low # sr00&!n_t_1x&!cc_sdld_low; sr00.ck = n_t_7x; /* e17: sp380n */ !n_t_3x = cc_67x_low # data06_low; !n_t_4x = cc_67x_low # data09_low; !df_db00 = cc_67x_low # data00_low; !df_db03 = cc_67x_low # data03_low; /* e18: dec8242 */ /* e19: sn7400 */ cc_dtp1 = !(n_t_106x&n_t_104x); cc_dtp0 = !(n_t_109x&n_t_100x); cc_tt_en = !(in2&n_t_73x); n_t_68x = !(n_t_66x&cc_sdlc_low); /* e20: sp380n */ !w2 = io_pause_low # md07_low; !w3 = io_pause_low # md08_low; !cc_run_low = run; !cc_tp3_low = tp3; /* e21: dec8271 */ mtr5_low.ar = !n_t_5x; mtr5_low.d = rmt&cc_uts # n_t_5x&!cc_uts # mtr5_low&!n_t_5x&!cc_uts; mtr5_low.ck = n_t_31x; mtr4_low.ar = !n_t_5x; mtr4_low.d = mtr5_low&cc_uts # n_t_5x&!cc_uts # mtr4_low&!n_t_5x&!cc_uts; mtr4_low.ck = n_t_31x; mtr3_low.ar = !n_t_5x; mtr3_low.d = mtr4_low&cc_uts # n_t_5x&!cc_uts # mtr3_low&!n_t_5x&!cc_uts; mtr3_low.ck = n_t_31x; mtr2_low.ar = !n_t_5x; mtr2_low.d = mtr3_low&cc_uts # n_t_5x&!cc_uts # mtr2_low&!n_t_5x&!cc_uts; mtr2_low.ck = n_t_31x; /* e22: sn7400 */ n_t_31x = !(cc_setdly_low&cc_dtp1_low); n_t_29x = !(cc_dtp1_low&n_t_30x); /* e23: sn7410 */ n_t_104x = !(cc_dtp&cc_t_m_en&tpg0); n_t_100x = !(n_t_107x&cc_t_m_en&cc_dtp); n_t_106x = !(n_t_101x&cc_dtp&n_t_102x); /* e24: sp314n */ !cc_67x = md04_low # md05_low # md06_low # md03_low # io_pause_low # w2w1 # w4w3; /* e25: dil14 */ /* e26: sn7404 */ cc_wrt_ok = !n_t_66x; n_t_88x = !n_t_20x; cc_clk_te_low = !n_t_83x; n_t_7x = !n_t_29x; cc_67x_low = !cc_67x; cc_run = !cc_run_low; /* e27: sn7410 */ n_t_22x = !(cc_sdrc_low&cc_sdrd_low&cc_sdld_low); n_t_109x = !(n_t_101x&cc_dtp&sync); /* e28: sp384n */ cc_init = initialize; cc_pwr_ok_low = power_ok_low; /* e29: dec8271 */ mtr1_low.ar = !n_t_5x; mtr1_low.d = mtr2_low&cc_uts # n_t_5x&!cc_uts # mtr1_low&!n_t_5x&!cc_uts; mtr1_low.ck = n_t_31x; mtr0_low.ar = !n_t_5x; mtr0_low.d = mtr1_low&cc_uts # n_t_5x&!cc_uts # mtr0_low&!n_t_5x&!cc_uts; mtr0_low.ck = n_t_31x; gdollar_4.ar = !n_t_5x; gdollar_4.d = mtr0_low&cc_uts # n_t_5x&!cc_uts # gdollar_4&!n_t_5x&!cc_uts; gdollar_4.ck = n_t_31x; gdollar_5.ar = !n_t_5x; gdollar_5.d = gdollar_4&cc_uts # n_t_5x&!cc_uts # gdollar_5&!n_t_5x&!cc_uts; gdollar_5.ck = n_t_31x; /* e30: sn7474 */ cc_s_g.ar = !n_t_18x; cc_s_g.d = df_db02; cc_s_g.ck = n_t_83x; cc_s_g.ap = !n_t_84x; cc_s_g_low = !cc_s_g; cc_r_w.ar = !n_t_68x; cc_r_w.d = df_db03; cc_r_w.ck = n_t_83x; cc_r_w.ap = !n_t_84x; cc_r_w_low = !cc_r_w; /* e31: sn7404 */ cc_dtp1_low = !cc_dtp1; cc_dtp0_low = !cc_dtp0; cc_t_m_en_low = !cc_t_m_en; n_t_30x = !n_t_2x; n_t_48x = !n_t_47x; n_t_35x = !cc_dtp0_low; /* e32: sn7404 */ n_t_45x = !cc_sdsq_low; n_t_46x = !cc_sdss_low; n_t_44x = !cc_sdst_low; df_hld_low = !t_cpld; cc_init_low = !cc_init; df_sel_er = !df_sel_er_low; /* e33: n8881n */ /* e34: sn7474 */ cc_f_r.ar = !cc_init_low; cc_f_r.d = df_db01; cc_f_r.ck = n_t_83x; cc_f_r.ap = !n_t_84x; cc_f_r_low = !cc_f_r; cc_unit.ar = !cc_init_low; cc_unit.d = df_db00; cc_unit.ck = n_t_83x; cc_unit.ap = !n_t_84x; cc_unit_low = !cc_unit; /* e35: sn7410 */ n_t_49x = !(cc_r_w_low&cc_dtp1&n_t_48x); n_t_50x = !(cc_dtp0&cc_r_w&n_t_48x); /* e36: sn7493 */ n_t_25x.ck = cc_dtp1; n_t_25x.t = 'b'1; n_t_25x.ar = !n_t_42x; gdollar_6.ck = cc_dtp1; gdollar_6.t = 'b'1; gdollar_6.ar = !n_t_42x; gdollar_7.ck = gdollar_6; gdollar_7.t = 'b'1; gdollar_7.ar = !n_t_42x; n_t_36x.ck = gdollar_7; n_t_36x.t = 'b'1; n_t_36x.ar = !n_t_42x; /* e37: sn7402 */ n_t_47x = !(n_t_22x # n_t_36x); n_t_41x = !df_time_er; n_t_18x = !(cc_init # cc_run); n_t_83x = !(cc_tp3_low # cc_sdlc_low); /* e38: sn7400 */ n_t_43x = !(n_t_22x&cc_btp3); n_t_42x = !(n_t_43x&cc_uts); /* e39: sn7417 */ /* e40: sn7430 */ n_t_66x = !(df_time_er_low&df_hld_low&cc_run_low&df_sel_er_low&cc_pwr_ok_low&cc_init_low); /* e41: n8881n */ /* e42: dec8242 */ /* e43: sn7401 */ /* e44: sp380n */ !n_t_87x = cc_init # tp4; !n_t_69x = cc_67x_low # md09_low; !n_t_70x = cc_67x_low # md10_low ; !n_t_71x = cc_67x_low # md11_low ; /* e45: dec8251 */ !cc_sdss_low = !cc_67x_low&!n_t_69x&!n_t_70x&n_t_71x; !cc_sdst_low = !cc_67x_low&!n_t_69x&n_t_70x&!n_t_71x; !cc_sdsq_low = !cc_67x_low&!n_t_69x&n_t_70x&n_t_71x; !cc_sdlc_low = !cc_67x_low&n_t_69x&!n_t_70x&!n_t_71x; !cc_sdld_low = !cc_67x_low&n_t_69x&!n_t_70x&n_t_71x; !cc_sdrc_low = !cc_67x_low&n_t_69x&n_t_70x&!n_t_71x; !cc_sdrd_low = !cc_67x_low&n_t_69x&n_t_70x&n_t_71x; /* e46: sn7401 */ /* r1: r_us_ */ /* r2: r_us_ */ n_t_5x = 'b'1; /* r3: r_us_ */ n_t_1x = 'b'1; /* r12: r_us_ */ n_t_84x = 'b'1; /* Open collector 'wire-or's */ property atmel {open_collector= c0_low}; c0_low = 'b'0; c0_low.oe = (n_t_69x&cc_sdld_low); property atmel {open_collector= c1_low}; c1_low = 'b'0; c1_low.oe = (n_t_69x&n_t_70x); property atmel {open_collector= con_all_halt}; con_all_halt = 'b'0; con_all_halt.oe = cc_run; property atmel {open_collector= data00_low}; data00_low = 'b'0; data00_low.oe = (!cc_unit_low&!cc_sdrc_low # sr00&!cc_sdrd_low); property atmel {open_collector= data01_low}; data01_low = 'b'0; data01_low.oe = (!cc_f_r_low&!cc_sdrc_low # sr01&!cc_sdrd_low); property atmel {open_collector= data02_low}; data02_low = 'b'0; data02_low.oe = (!cc_s_g_low&!cc_sdrc_low # sr02&!cc_sdrd_low); property atmel {open_collector= data03_low}; data03_low = 'b'0; data03_low.oe = (!cc_r_w_low&!cc_sdrc_low # sr03&!cc_sdrd_low); property atmel {open_collector= data04_low}; data04_low = 'b'0; data04_low.oe = (!df_hld_low&!cc_sdrc_low # sr04&!cc_sdrd_low); property atmel {open_collector= data05_low}; data05_low = 'b'0; data05_low.oe = (!n_t_41x&!cc_sdrc_low # sr05&!cc_sdrd_low); property atmel {open_collector= data06_low}; data06_low = 'b'0; data06_low.oe = (!mtr0_low&!cc_sdrc_low # sr06&!cc_sdrd_low); property atmel {open_collector= data07_low}; data07_low = 'b'0; data07_low.oe = (!mtr1_low&!cc_sdrc_low # sr07&!cc_sdrd_low); property atmel {open_collector= data08_low}; data08_low = 'b'0; data08_low.oe = (!mtr2_low&!cc_sdrc_low # sr08&!cc_sdrd_low); property atmel {open_collector= data09_low}; data09_low = 'b'0; data09_low.oe = (!mtr3_low&!cc_sdrc_low # sr09&!cc_sdrd_low); property atmel {open_collector= data10_low}; data10_low = 'b'0; data10_low.oe = (!mtr4_low&!cc_sdrc_low # sr10&!cc_sdrd_low); property atmel {open_collector= data11_low}; data11_low = 'b'0; data11_low.oe = (!mtr5_low&!cc_sdrc_low # sr11&!cc_sdrd_low); property atmel {open_collector= f_r_low}; f_r_low = 'b'0; f_r_low.oe = cc_f_r_low; property atmel {open_collector= internal_io_low}; internal_io_low = 'b'0; internal_io_low.oe = cc_67x; property atmel {open_collector= nd0}; nd0 = 'b'0; nd0.oe = n_t_39x; property atmel {open_collector= nd1}; nd1 = 'b'0; nd1.oe = n_t_38x; property atmel {open_collector= nd2}; nd2 = 'b'0; nd2.oe = n_t_33x; property atmel {open_collector= s_g_low}; s_g_low = 'b'0; s_g_low.oe = (n_t_88x&cc_pwr_ok_low); property atmel {open_collector= skip_low}; skip_low = 'b'0; skip_low.oe = (df_time_er&n_t_44x) # (n_t_25x&n_t_46x) # (n_t_45x&n_t_36x); property atmel {open_collector= t_m_enable}; t_m_enable = 'b'0; t_m_enable.oe = (cc_t_m_en&cc_wrt_ok); property atmel {open_collector= unith}; unith = 'b'0; unith.oe = cc_unit; property atmel {open_collector= wd_enab}; wd_enab = 'b'0; wd_enab.oe = (n_t_89x&cc_pwr_ok_low); property atmel {open_collector= wpt}; wpt = 'b'0; wpt.oe = n_t_107x; /* These are purely internal and didn't need ".oe". */ !n_t_33x = (!df_comp_wd&!n_t_32x # df_comp_wd&n_t_32x); !n_t_38x = (!n_t_34x&!df_comp_wd # n_t_34x&df_comp_wd); !n_t_39x = (!df_comp_wd&!n_t_10x # df_comp_wd&n_t_10x); !n_t_72x = (!sync&!rtt_low # sync&rtt_low); !n_t_73x = (cc_t_m_en_low&n_t_72x) # (n_t_74x&cc_t_m_en); !n_t_74x = (!cc_tpg1_low&!sync # cc_tpg1_low&sync); !n_t_90x = (!cc_f_r&!df_db01 # cc_f_r&df_db01) # (!cc_unit&!df_db00 # cc_unit&df_db00) # (!cc_s_g&!df_db02 # cc_s_g&df_db02); /* This isn't in the hardware, since it can't be asserted. */ /* We nontheless reserve a pin for it. */ property atmel {open_collector= int_rqst_low}; int_rqst_low = 'b'0; int_rqst_low.oe = 'b'0;