DIST3_00.pld: pld file for D0 distributor GAL3 (LCA Configuration GAL) |GAL22V10 2:ONESHOT, | 3:USEMTG, | 4:USEROM1, | 5:ROMDATA0, | 6:ROMCEO0b, | 7:ROMDATA1, | 8:ROMCEO1b, | 9:MTGDIN, | 10:MTGCCLK, | 11:RACKCONF, | 13:GLOBCONF, | 23:synca, | 22:q22, | 21:ROMCLK, | 20:ROMOEb, | 19:LOCPROGb, | 18:LOCCCLK, | 17:LOCDIN, | 16:romdin, | 15:DINEN, | 14:TRIGAb, |Clock: CLK2US | |Value: "DIST LCA Configuration GAL" |Type: "GAL22V10" | |Title: "Distributor Card LCA Configuration GAL" |Title: "February 15, 1994" | |Signature: "DIST3_00" Signals derived directly from configuration one-shot: | synca = CLK2US // ONESHOT | ROMOEb = CLK2US // synca | LOCPROGb = CLK2US // !( synca & !ROMOEb ) Note on USEROM1: what was originally intended to be SCP1 (ROM 0) was inadvertently assigned the reference SCP2 and vice versa. To fix this, (and keep the setup switch information on the silkscreen accurate), USEROM1 has been complemented in the equations below. ROMCLK and CCLK generation: | Tceobmux = ( USEROM1' * ROMCEO1b ) # ( USEROM1 * ROMCEO0b ) |mux: CEOb from ROM1 or ROM 0 | T1 = (!ROMCLK) # ROMOEb # (!Tceobmux) | ROMCLK = CLK2US // T1 | LOCCCLK = ( USEMTG * MTGCCLK ) # ( USEMTG' * ROMCLK ) |mux: CCLK from MTG or this GAL DIN generation: | Trommux = ( USEROM1' * ROMDATA1 ) # ( USEROM1 * ROMDATA0 ) |mux: DIN from ROM1 or ROM 0 | romdin = CLK2US // Trommux # Tceobmux' |DIN from ROM, forced high after last bit | Tdinmux = ( USEMTG * MTGDIN ) # ( USEMTG' * romdin ) |mux: DIN from MTG or ROM | LOCDIN = Tdinmux * DINEN |force DIN low after DINEN one-shot expires Configuration trigger: | q22 = CLK2US // RACKCONF ## GLOBCONF |if RACKCONF changes or GLOBCONF changes, q22 changes | TRIGAb = CLK2US // ( ( RACKCONF ## GLOBCONF ) ## q22 )' |if q22 changes, TRIGAb goes low for one clock cycle |Vectors: | { | End }