Subversion Repositories KoE_projects

Rev

Blame | Last modification | View Log | Download | RSS feed | ?url?

%       PENTAGON-1024SL ver 2.2

    *** Additional CPLD design ***

        King Of Evil 2004-2006
%

Title "P1024SL2";
Subdesign P1024SL2

(
a0, a1, a3, a9, a12, a13, a14, a15, mreq, iorq, wr,
trd, m1, f8, sr, sl, wd, wfde, rdd: input;              

drd, rclk, wrd, wgclk, wrfe, bc1, bdir, port1, port2,
tr, ma: output;

)
Variable

ftakt, wgtrg1, wgtrg2, count[3..0], shift[3..0],
strg1, strg2 :dff;

a1415, trtr, iowr, ay, 7ffd, eff7, mm, notwfde, qdr, cclk, f1 :node;

Begin

mm=mreq or m1;
a1415=a14 nor a15; 
ma=mm or a1415;

trtr=not (a1415 and (not trd) and a13 and a12 and (not a9));
tr=trtr or mm;

iowr=iorq or wr;

ay=(a15 and a13) nand (a1 nor iorq);
bc1=ay nor (a14 nand m1);
bdir=ay nor wr;

7ffd=a15 or a1 or iowr;
eff7=iowr or a3 or a12 or (not (a15 and a14 and a13));
wrfe=iowr or a0;
port1=eff7 and wrfe; port2=wrfe nand 7ffd;

notwfde=not wfde;
ftakt.clk=f8; cclk=not (ftakt.q); ftakt.d=cclk;
strg1.clk=cclk; f1=not(strg1.q); strg1.d=f1;
strg2.clk=f1; wgclk=not(strg2.q); strg2.d=wgclk;
wgtrg1.clk=cclk; wgtrg1.d=rdd; wgtrg1.clrn=notwfde; wgtrg1.prn=vcc; 
qdr=wgtrg1.q;
wgtrg2.clk=cclk; wgtrg2.d=qdr; wgtrg2.prn=notwfde; wgtrg2.clrn=vcc;
drd=(not (wgtrg2.q)) or qdr;

rclk=count[3].q;
count[].clk=cclk; 
if drd then count[].d=count[].q+1;
else count[0].d=gnd; count[1].d=gnd; count[2].d=vcc; count[3].d=rclk;
end if;

shift[].clk=not cclk;
if wd then shift[0].d=sr; shift[1].d=sr nor sl; shift[2].d=sl; shift[3].d=gnd;
else shift[3..1].d=shift[2..0].q; shift[0].d=gnd;
end if;
wrd=shift[3].q;

end;