アダルト・ヴァイオリン May the force be with you..

2009年12月27日

NSL:バレルシフタ

Filed under: Weblog — い~ぐる @ 9:04 PM

NSLの構造展開のfor文を用いたバレルシフタの例。
整数変数やvariableは、出現順順次評価を行なうことに注意。

// Copyright (c) IP ARCH, Inc. Naohiko Shimizu
// All rights reserved.
#define N 8
#define M 4
declare shift_%N%_%M% {
input A[N], B[M];
output F[N];
func_in shift_do(A,B);
}
module shift_%N%_%M% {
integer i,sv;
variable ps[N];
function shift_do {
ps=A;
sv=1;
for(i=0;i<M;i++) {
ps = if(B[i]) (ps << sv) else ps;
sv = sv << 1;
}
F = ps;
}
}

コメントはまだありません »

No comments yet.

RSS feed for comments on this post. TrackBack URL

Leave a comment

Powered by WordPress