LOCAL
BUS
CONTROL
PAL
DESCRIPTIONS
"
Macros:
COUNTING
macro
(
(Q1
# QO)
);
"
true
until
sequencer
counts
down
to
zero
LOWCOUNTING
macro
«
QO)};
"
true
until
sequencer
counts
down
to
zero
" same
as
COUNTING
except
used
to
reduce
PAL
"
terms
and
only
works
if
count
less
than
't"IIIIIII'II""'IIIIII"""'I'I'"IIIIIIIIIIII""I'""""""'IIIII""H""""I'""IIIII,I'I'""""'IIIIIII"IIIIII'111111111"1111"1'
state_diagram
BUSSTATE
state
IDLEBUS:
if
RESET
then
IDLEBUS
else
if
ICLK
#
ADS
then
else
"bus
is
idle
or
first
"reset
to
J.DLEBUS
IDLEBUS
"remain
til
sample
ACTlVEBUS;
"
•••
then
go
ACTIVE
CLK
of
unpipelined
ADS
active
state
ACTIVEBUS:
if
RESET
then
IDLEBUS
"subsequent
CLKS
of
active
bus
"reset
to
IDLEBUS
else
if
ICLK
#
READY
then
ACTlVEBUS
else
if
lADS
then
PIPEBUS
'
"remain
til
sample
READY
active
"
•••
then
next
cycle
either
piped
else
IDLEBUS;
state
PIPEBUS:
if
RESET
then
IDLE
BUS
else
if
ICLK
then
PIPEBUS
else
ACTIVEBUS;
state
ILLEGALBUS:
goto
IDLEBUS;
"
•••
or
idle
"first
CLK
of
pipelined
cycle
"reset
to
IDLEBUS
"remain
for
just
one
CLK
"
•••
then
go
ACTIVE
"unused
state
-
should
never
occur
"if
entered
upon
power-up
•..
go
IDLE
11"'1111"111111"1""""'1"""""""""111'"11""""""',",",n"IIIIIIIIIIIIIIII'I"'I'I",,"""'IIIIIII""1111111'1111"1""1111111111111
state_diagram
LOCALS
TATE
state
WAITING:
"waiting
for
next
bus
cycle
NA
:=
OFF;
if
RESET
then
WAITING
"reset
to
WAITING
else
if
ICLK
# (
ADS
&
IDLE}
"remain
while
idle
bus
#(
ICSIO &
LOWCOUNTING)
then
WAITING
"
..
and
remain
for
recovery
time
else
SAMPLECS;"
.•
else
begin
bus
cycle
state
SAMPLECS:
NA
:=
OFF;
if
RESET
then
WAITING
else
if
ICS1WS
then
MEMORY
else
if
!CSIO
then
CMDDELAY
else
NOTLOCAL;
state
CMDDELAY:
NA
:= OFF;
if
RESET
then
WAITING
else
10;
state
10:
NA
:=
(!COUNTING
&
CLK)
#
NA;
if
RESET
then
WAITING
else
if
!NA
then
10
else
ENDIO;
state
ENDIO:
NA
:=
OFF;
if
RESET
then
WAITING
else
if
LOWCOUNTING
then
ENDIO
else
FLOAT;
"CLK2
before
ALE
falls
and
CS
is
sampled
"reset
to
WAITING
"start
lWS
access
"start
10
access
"start
non-local
access
"delay
before
CMD
active
"reset
to
WAITING
"only
in
state
for
1
CLK2,
then
10
"10
CMD
active
"activate
NA
after
count
down
to
zero
"reset
to
WAITING
"remain
until
NA
active
"
...
then
ENDIO
"10
CMD
active
"reset
to
WAITING
"remain
while
COUNTING
down
"
•..
then
FLOAT
Figure A-1. PAL-1 State Listings (Cont'd.)
A-4