UNITY_X4.ABL.txt
//============================================================
//
// NAME
// UNITY_X4 -- Unity X4 (PPMC8240/PPMC8245) miscellany PAL
//
// DESCRIPTION
// UNITY_X4 collects miscellaneous logic on the Unity X4 into
// one device.
//
// COPYRIGHT
// Copyright 2000 by Motorola Inc.
// All Rights Reserved.
// Motorola RISC Applications
// Written by Gary Milliorn
// risc10@email.sps.mot.com
//
// REVISION
// 1.0 - GWM - 20000127 - Original
//
//------------------------------------------------------------
module unity
//unity device 'P22V10C';
// pin 1; // NC
rcs2_ pin 2; // ROM chip select #2.
rcs0_ pin 3; // ROM chip select #0.
rcs1_ pin 4; // ROM chip select #1.
progsel pin 5; // Programming mode select.
romsel pin 6; // Local Boot-ROM select.
lclrst_ pin 7; // Local reset strobe (switch).
// pin 8; // NC
cop_hrst_ pin 9; // Reset from COP port.
pcirst_ pin 10; // Reset from PCI bus.
cop_trst_ pin 11; // JTAG reset from COP port.
sysrsten_ pin 12; // Allow COP reset to reset system.
cs0_ pin 13; // Memory bank 0 selected.
// pin 14; // NC
// pin 15; // NC
irdy_ pin 16; // PCI initiator ready.
ramled pin 17; // RAM activity LED.
romled pin 18; // ROM activity LED.
pciled pin 19; // PCI activity LED.
statled pin 20; // Status LED (selectable).
Page 1
UNITY_X4.ABL.txt
sysrst_ pin 21; // System reset.
// pin 22; // NC
cpu_hrst_ pin 23; // CPU reset output.
cpu_trst_ pin 24; // CPU JTAG reset output.
nc pin 25; // NC
rcs1_out_ pin 26; // ROM #1 chip select.
rcs0_out_ pin 27; // ROM #0 chip select.
//------------------------------------------------------------
equations
// Set the chip-selects for the local ROMs. The following table will describe
// the details:
//
// ======= ====== + ========= ========= + ================= ========================
// PROGSEL ROMSEL | RCS0_OUT_ RCS1_OUT_ | MODE DESCRIPTION
// ======= ====== + ========= ========= + ================= ========================
// 0 0 | RCS2_ RCS1_ | Alternate Program PCI can program ROM1 through RCS1
// 0 1 | RCS1_ RCS2_ | Program Normal PCI can program ROM0 through RCS1
// 1 0 | RCS1_ RCS0_ | Alternate Mode Boot ROM1, backup is ROM0
// 1 1 | RCS0_ RCS1_ | Normal Mode Boot ROM0, backup is ROM1
// ======= ====== + ========= ========= + ================= ========================
rcs0_out_ = !( (!rcs0_ & ( progsel & romsel))
# (!rcs1_ & ( progsel & !romsel))
# (!rcs1_ & (!progsel & romsel))
# (!rcs2_ & (!progsel & !romsel))
);
rcs1_out_ = !( (!rcs0_ & ( progsel & !romsel))
# (!rcs1_ & ( progsel & romsel))
# (!rcs1_ & (!progsel & !romsel))
# (!rcs2_ & (!progsel & romsel))
);
// The processor can be reset from PCI, the local reset controller,
// or the COP port.
cpu_hrst_ = !(!pcirst_ # !cop_hrst_ # !lclrst_);
// The JTAG TRST* pin is driven when the CPU is being reset, or when the COP
// connector pin is asserted, but NOT cop_hrst_.
Page 2
UNITY_X4.ABL.txt
cpu_trst_ = !(!pcirst_ # !lclrst_ # !cop_trst_);
// SYSRST* is a PPMC pin which is optionally driven. It will reset the
// carrier board from the COP port or from the local reset switch, if
// enabled.
sysrst_ = !((!cop_hrst_ # !lclrst_) & !sysrsten_);
// Create LED activity monitors. The LED outputs are active low, and are
// also asserted during HRESET* (for testing purposes).
romled = !(!rcs0_ # (!cpu_hrst_ # !lclrst_));
ramled = !(!cs0_ # (!cpu_hrst_ # !lclrst_));
pciled = !(!irdy_ # (!cpu_hrst_ # !lclrst_));
// The status LED can be whatever we want (hooked up to the PAL).
// Currently it monitors the other ROM chip selects, but other possibilities
// are to monitor the trigger, prog mode, etc.
statled = !(!rcs1_ # !rcs2_ # (!cpu_hrst_ # !lclrst_));
// Unused output.
nc = 0;
end
Page 3