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

2009年12月30日

NSL:整数乗算回路(単一クロック版)

Filed under: Weblog — い~ぐる @ 2:07 AM

整数変数とvariableによる構造展開の例題として、もう一つ、乗算回路を示します。
これは、大きなビット数の乗算において、実用に使うには向かないですが、ビット数が少ない時には、十分使えますし、記述はシンプルな筆算形なので、分かりやすいと思います。

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

Powered by WordPress