LOCAL BUS CONTROL PLD DESCRIPTIONS
"io
state
machine
state_diagram
(iord,iowr,eprd,inta,iordy,recv1;
pa31 & !wr &
clk:
epreadl;
state
idle:
case
na
&
na
&
na
&
na
&
na
&
!buscyc &
!buscyc &
!buscyc &
!buscyc &
!buscyc &
!pa31 & !mio &
dc
&
wr
&
clk:
iowritel;
!pa31 & !mio &
dc
& !wr &
elk:
ioreadl;
!pa31 & !mio & !dc & !wr &
clk:
intakl;
mio
& !dc &
wr
&
clk:
iowrite2;
"halt
endcase;
state
epreadl:
state
epread2:
state
iowritel:
state
iowrite2:
if
(!timedly
&
clk)
then
epread2
else
epreadl;
if
(clk)
then
idle
else
epread2;
if
(!timedly
&
clk)
then
iowrite2
else
iowritel;
if
(!mio &
clk)
then
recover
else
if
(mio &
clk)
then
idle
else
iowrite2;
state
ioreadl:
state
ioread2:
state
intakl:
state
intak2:
state
recover:
if
(!timedly
&
clk)
then
ioread2
else
ioreadl;
if
(clk)
then
recover
else
ioread2;
if
(!timedly
&
clk)
then
intak2
else
intakl;
if
(clk)
then
recover
else
intak2;
if
(!timedly
&
clk)
then
idle
else
recover;
test_vectors
([clk2,clk,na,mio,wr,dc,pa31,timedly,buscyc,oe1
->
[iord,iowr,eprd,inta,iordy,recv1);
[c,h,h,h,h,h,h,h,h,ll
->
[h,h,h,h,h,h1;
,
'idle
[c,h,h,h,h,h,h,h,h,ll
->
[h,h,h,h,h,h1;
,
'idle
{c,h,h,h,h,h,h,h,h,ll
->
[h,h,h,h,h,h1;
,
'idle
[c,h,h,h,l,l,h,h,l,ll
->
(h,h,
1,h,h,h1;
I 'eprom
read
(c,h,h,h,l,l,h,h,l.ll
->
(h,h,
1
,h,h,h1;
, 'eprom
read
[c,h,h,h,l,l,h,h,l,ll
->
[h,h,
1
,h,h,h1;
, 'eprom
read
[c,h,h,h,l,l,h,h,l,ll
->
[h,h,
1,h,h,h1;
, I eprom
read
[c,h,h,h,l,l,h,l,l,ll
->
[h,h,1,h,1,h1;
, 'eprom
read
[c,h,h,h,h,h,h,h,
h,
11
->
[h,h,h,h,h,h1;
,
'idle
[c,h,h,l,l,h,l,h,l,ll
->
[1
,h,h,h,h,h1;
,
'io
read
[c,h,h,l,l,h,l,h,l,ll
->
[1
,h,h,h,h,h1;
,
'io
read
[c,h,h,l,l,h,l,h,l,ll
->
[l,h,h,h,h,h1;
, , i a
read
[c,h,h,l,l,h,l,h,l,ll
->
[1,h,h,h,h,h1;
,
'io
read
[c,h,h,l,l,h,l,l,l,lJ
->
[l,h,h,h,1,h1;
,
'io
read
[c,h,h,h,h,h,h,h,h,ll
->
[h,h,h,h,h,ll;
,
'recovery
[c,h,h,h,h,h,h,h
,h,
11
->
[h,h,h,h,h,lJ
; ,
'recovery
(c,h,h,h,h,h,h,l,h,ll
->
[h,h,h,h,h,h1;
,
'recovery
[c,h,h,l,h,h,l,h,l,ll
->
[h,1,h,h,h,h1;
, I
io
write
[c,h,h,l,h,h,l,h,l,ll
->
[h,1,h,h,h,h1;
,
'io
write
[c,h,h,l,h,h,l,h,l,ll
->
[h,1,h,h,h,h1;
l'
io
write
[c,h,h,l,h,h,l,h,l,ll
->
(h,1,h,h,h,h1;
,
'io
write
[c,h,h,l,h,h,l,l,l,ll
->
[h,h,h,h,1,h1;
"io
write
[c,h,h,l,h,h,h,h,h,ll
->
[h,h,h,h,h,ll;
,
'recovery
[c,h,h,h,h,h,h,h,h,ll
->
[h,h,h,h,h,ll;
,
'recovery
[c,h,h,h,h,h,h,l,h,ll
->
[h,h,h,h,h,h1;
,
'recovery
[c,h,h,l,l,l,l,h,l,ll
->
[h,h,h,1,h,h1;
"interrupt
ack
[c,h,h,l,l,l,l,h,l,ll
->
[h,h,h,
1,h,h1;
"interrupt
ack
[c,h,h,l,l,l,l,h,l,lJ
->
[h,h,h,1,h,h1;
,
'interrupt
ack
[c,h,h,l,l,l,l,h,l,ll
->
[h,h,h,1,h,h1;
,
'interrupt
ack
[c,h,h,l,l,l,l,l,l,ll
->
[h,h,h,1,1,h1;
"interrupt
ack
[c,h,h,h,h,h,h,h,h,ll
->
[h,h,h,h,h,lJ
;
"recovery
[c,h,h,h,h,h,h,h,h,ll
->
[h,h,h,h,h,ll;
"recovery
[c,h,h,h,h,h,h,l,h,ll
->
[h,h,h,h,h,h1;
,
'recovery
[c,h,h,h,h,l,l,h,l,ll
->
[h,h,h,h,1,h1;
"ha
lt
or
shutdown
Figure A-1. IOPLD1 Equations (Contd.)
A-4