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 |