logicname sample
{ -------------------------------------- }
{ 手続き譜 }
{ -------------------------------------- }
procedure cmp
input ci,di;
input a,b;
output q[2];
bitn c,d;
if (ci & di)
c=1;
d=1;
else
if (ci)
switch(a,b)
case 0,0: c=1; d=0;
case 0,1: c=0; d=0;
case 1,0: c=0; d=1;
case 1,1: c=1; d=0;
endswitch
else
c=ci;
d=di;
endif
endif
q.0=c;
q.1=d;
endp
{ -------------------------------------- }
{ 実効譜 }
{ -------------------------------------- }
entity cmp8
input a[8],b[8];
output q[2];
bitn q0p[2];
bitn q1p[2];
bitn q2p[2];
bitn q3p[2];
bitn q4p[2];
bitn q5p[2];
bitn q6p[2];
bitn q7p[2];
q7p=cmp(1,0,a.7,b.7);
q6p=cmp(q7p.0,q7p.1,a.6,b.6);
q5p=cmp(q6p.0,q6p.1,a.5,b.5);
q4p=cmp(q5p.0,q5p.1,a.4,b.4);
q3p=cmp(q4p.0,q4p.1,a.3,b.3);
q2p=cmp(q3p.0,q3p.1,a.2,b.2);
q1p=cmp(q2p.0,q2p.1,a.1,b.1);
q0p=cmp(q1p.0,q1p.1,a.0,b.0);
q.0=q0p.0;
q.1=q0p.1;
ende
{ -------------------------------------- }
{ 機能実行譜 }
{ -------------------------------------- }
entity sim
output a[8],b[8];
output q[2];
bitr tc[16];
part cmp8(a,b,q)
tc=tc+1;
a=tc.0:7;
b=tc.8:15;;
ende
endlogic
|