{ ===================================================== }
{ 74LP597 }
{ ===================================================== }
logicname 74LP597
{ ----------------------------------------------------- }
{ 実効譜 }
{ ----------------------------------------------------- }
entity TTL
input CLR;
input G;
input SCK,RCK;
input SI;
input SL;
input D[8];
output QH;
output TP_q[8];
output TP_d[8];
output TP_pa;
output TP_pb;
bitr q[8];
bitr d[8];
bitr pa[2],pb[2];
if (SCK)
if (pa==0)
pa=1;
else
if (pa==1)
pa=2;
else
pa=pa;
endif
endif
else
pa=0;
endif
if (RCK)
if (pb==0)
pb=1;
else
if (pb==1)
pb=2;
else
pb=pb;
endif
endif
else
pb=0;
endif
if (CLR)
if (SL)
if (pa.0)
q.0=SI;
q.1:7=q.0:6;
else
q=q;
endif
else
q=d;
endif
else
q=0;
endif
if (pb.0)
d=D;
else
d=d;
endif
QH=q.7;
TP_q=q;
TP_d=d;
TP_pa=pa.0;
TP_pb=pb.0;
ende
{ ----------------------------------------------------- }
{ 機能実行譜 }
{ ----------------------------------------------------- }
entity sim
output CLR;
output G;
output SCK,RCK;
output SI;
output SL;
output D[8];
output QH;
output TP_q[8];
output TP_d[8];
output TP_pa;
output TP_pb;
bitr tc[8];
part TTL(CLR,G,SCK,RCK,SI,SL,D,QH,TP_q,TP_d,TP_pa,TP_pb)
tc=tc+1;
if (tc<41) SCK=tc.1; endif
if ((tc>3)&(tc<55)) CLR=1; else CLR=0; endif
if (tc==45) RCK=1; endif
if (tc==50) SL=0; else SL=1; endif
if ((tc>42)&(tc<48)) D=0x55; endif
if ((tc>5)&(tc<9)) SI=1; endif
if ((tc>37)&(tc<41)) SI=1; endif
if ((tc>20)&(tc<24)) RCK=1; endif
ende
endlogic