logicname sample { -------------------------------------- } { 手続き譜 } { -------------------------------------- } procedure add input a,b; input ci; output pq[2]; {←手続きの出力} bitn q; {←内部信号に変える} bitn co; {← 〃 } switch(a,b,ci) case 0,0,0: q=0; co=0; case 0,1,0: q=1; co=0; case 1,0,0: q=1; co=0; case 1,1,0: q=0; co=1; case 0,0,1: q=1; co=0; case 0,1,1: q=0; co=1; case 1,0,1: q=0; co=1; case 1,1,1: q=1; co=1; endswitch pq.0=q; {←手続きの出力に代入} pq.1=co; {← 〃 } endp { -------------------------------------- } { 実効譜 } { -------------------------------------- } entity add4 input a[4],b[4]; input ci; output q[4]; output co; bitn n0q[2]; bitn n1q[2]; bitn n2q[2]; bitn n3q[2]; n0q=add(a.0,b.0,ci); {←手続き add を4個使います。} n1q=add(a.1,b.1,n0q.1); n2q=add(a.2,b.2,n1q.1); n3q=add(a.3,b.3,n2q.1); q.0=n0q.0; q.1=n1q.0; q.2=n2q.0; q.3=n3q.0; co=n3q.1; ende { -------------------------------------- } { 機能実行譜 } { -------------------------------------- } entity sim output a[4],b[4]; output ci; output q[4]; output co; bitr tc[9]; part add4(a,b,ci,q,co) tc=tc+1; a=tc.0:3; b=tc.4:7; ci=tc.8; ende endlogic |