logicname sample { -------------------------------------- } { 手続き譜 上がり起点 } { -------------------------------------- } procedure spu input a; output q; bitr rq[2]; switch(rq) case 0: if (a) rq = 1; endif case 1: rq = 2; case 2: if (a) rq = rq; else rq = 0; endif endswitch q = rq.0; endp { -------------------------------------- } { 手続き譜 下がり起点 } { -------------------------------------- } procedure spd input a; output q; bitr rq[2]; switch(rq) case 0: if (a) rq = 1; endif case 1: if (a) rq = rq; else rq = 2; endif case 2: rq = 0; endswitch q = rq.1; endp { -------------------------------------- } { 実効譜 } { -------------------------------------- } entity dep input s[4]; {分周設定} input a; {分周入力} output q; {分周出力} output t0p,t1p; output t2p[4]; bitr rq[4]; bitn u,d; bitr p; bitn r[4]; r = s - 1; u = spu(a); d = spd(a); if (u | d) if (rq==r) rq = 0; p = p + 1; else rq = rq + 1; p = p; endif else rq = rq; p = p; endif q = p; t0p = u; t1p = d; t2p = rq; ende { -------------------------------------- } { 機能実行譜 } { -------------------------------------- } entity sim output s[4]; output a; output q; output t0p,t1p; output t2p[4]; bitr tc[5]; part dep(s,a,q,t0p,t1p,t2p) tc=tc+1; s=3; {←3分周に設定} a=tc.2; ende endlogic |