|
logicname sample
{ -------------------------------------- }
{ 実効譜 }
{ -------------------------------------- }
entity crc32
input res,ld;
input d[32];
input sin;
output q[32];
bitr rq[32];
if (res)
rq = 0;
else
if (ld)
rq = d;
else
rq.0 = rq.31 ^ sin;
rq.1 = rq.0 ^ (rq.31 ^ sin);
rq.2 = rq.1 ^ (rq.31 ^ sin);
rq.4 = rq.3 ^ (rq.31 ^ sin);
rq.5 = rq.4 ^ (rq.31 ^ sin);
rq.7 = rq.6 ^ (rq.31 ^ sin);
rq.8 = rq.7 ^ (rq.31 ^ sin);
rq.10 = rq.9 ^ (rq.31 ^ sin);
rq.11 = rq.10 ^ (rq.31 ^ sin);
rq.12 = rq.11 ^ (rq.31 ^ sin);
rq.16 = rq.15 ^ (rq.31 ^ sin);
rq.22 = rq.21 ^ (rq.31 ^ sin);
rq.23 = rq.22 ^ (rq.31 ^ sin);
rq.26 = rq.25 ^ (rq.31 ^ sin);
rq.3 = rq.2;
rq.6 = rq.5;
rq.9 = rq.8;
rq.13:15 = rq.12:14;
rq.17:21 = rq.16:20;
rq.24:25 = rq.23:24;
rq.27:31 = rq.26:30;
endif
endif
q = rq;
ende
{ -------------------------------------- }
{ 機能実行譜 }
{ -------------------------------------- }
entity sim
output res,ld;
output d[32];
output sin;
output q[32];
bitr tc[8];
bitr td[32];
part crc32(res,ld,d,sin,q)
tc=tc+1;
if (tc<4)
d.24:31=0b00000100; {←初期値データ}
d.16:23=0b11000001;
d.8:15 =0b00011101;
d.0:7 =0b10110111;
endif
if (tc<4)
td.24:31=0b00000100; {←テストデータ}
td.16:23=0b11000001;
td.8:15 =0b00011101;
td.0:7 =0b10110111;
else
td.1:31=td.0:30;
endif
if (tc==3) ld=1; endif {←初期値導入}
sin=td.31; {←テストデータ入力}
ende
endlogic
|
|