四桁の乗算器 その壱

乗算器は加算器を拡張したものです。 加算器をたくさん使って一度に結果を出す方法と ひとつの加算器で時間を分けて計算を行いその答えを 累積して結果を出す方法があります。

多数の加算器を使って一度に結果を出します。

logicname sample

{ -------------------------------------- }
{    実効譜                              }
{ -------------------------------------- }
entity mul4
input  a[4],b[4];
output q[8];
bitn   n0n[8],n1n[8],n2n[8],n3n[8];
   
   if (b.0) n0n.0:3=a; endif
   if (b.1) n1n.1:4=a.0:3; endif
   if (b.2) n2n.2:5=a.0:3; endif
   if (b.3) n3n.3:6=a.0:3; endif

   q=(n0n+n1n)+(n2n+n3n);

ende

{ -------------------------------------- }
{    機能実行譜                          }
{ -------------------------------------- }
entity sim
output a[4],b[4];
output q[8];
bitr   tc[8];

   part mul4(a,b,q)

   tc=tc+1;

   a=tc.0:3;
   b=tc.4:7;

ende

endlogic

q = a × b の計算です。

  • b.0 が 1 なら n0n は a をそのまま代入しています。
  • b.1 が 1 なら n1n は a を 1桁ずらして代入しています。
  • b.2 が 1 なら n2n は a を 2桁ずらして代入しています。
  • b.3 が 1 なら n3n は a を 3桁ずらして代入しています。

n0n から n3n までの値を加算して乗算の結果にしま す。
q=n0n+n1n+n2n+n3n
と書くと前から順番に加算するために 3段になります 。
q=(n0n+n1n)+(n2n+n3n)
と書くとカッコ内に計算を優先させるので 2段になり ます。

機能実行の結果の PDF です。