EXAMPLE
Plc
DESIGN
This section is a description of the schematic for a small 16 kilobyte
RAM board that we designed as our first test PIC for the expansion
architecture. The schematic for this board is Figure A.2, in Appendix A.
It
is valuable as an example because
it
implements all of the basic fea-
tures of a slave
Plc.
The
PIC
at System
Startup
Reading the
ID
Locations
The heart of auto-config is in U1 (address register), U2 (address
comparator), and
U3
(ID
PAL and control PAL).
When the board comes out of Reset, CONFIG-OUT* is inactive, and
does not pass the
config token on to the next Plc. CONFIG-IN* may
or may not be active at first. If
it
is not active, the board will not re-
spond to any bus cycles. For instance, we can see at
U
1 1 that SLAVE*
is
disabled when CONFIG-IN* is inactive (high), because this does not
allow BOARD-SEL* to go active.
In turn. BOARD-SEL* is an input to
U3,
the control PAL. Without
BOARD-SEL*, all ten of the PAL outputs are held inactive (see PAL
equations for test ram).
Eventually, during execution of the auto
config code. CONFIG-IN*
will be asserted to this PIC between bus cycles (AS* inactive). Notice
that the address latch is tri-stated off so that the pull-up and
pull-
down resistors are inputing a pattern of E8 to the address compara-
tor. When the backplane addresses
E8xxxx, this board will now re-
spond because CONFIG-IN*
is
active but CONFIG-OUT* is not yet
active. In other words, CONFIG-IN*
is
enabling board select, and
CONFIG-OUT* has not yet allowed the address latch to move the
board to a different address space.
Notice that whenever BOARD-SEL* goes active, SLAVE* will go ac-
tive unless SHUT-UP-FOREVER is latched active.
SHUT-UP-FOR-
EVER* is a feedback latch in the PAL.
It
is
only set by the software if
the board cannot be configured into the system (for instance, if the
user has plugged in too many large address space
PlCs and there is
no room left for this one).
If you analyze the PAL equations for BD1
5
through BD1
2,
you will
see that their data drivers turn on for all reads
ANDed with BOARD-
-SEL active, until CONFIG-OUT* is set active (or some exception hap-
pens such as reset, bus error, or
shutup).
By the way, if you're not used to PALS, it's normal old Boolean:
*
means AND,
1
is
negation,
+
is OR, IF(term) means "If the term eval-
uates to TRUE then turn on the tri-state driver".