複素乗算器を実装するために、4つのDSP48Eスライスを使用することができます。この乗算器への入力は4つの固定小数点数 (x1、x2、y1、およびy2) で、その各ペアは複素数を表します。

  • x1 + j * y1
  • x2 + j * y2

複素乗算器はこれらの入力を取得し、2つの固定小数点数を生成します。

  • x1 * x2 – y1 * y2
  • x1 * y2 + x2 * y1

次に、(x1 * x2 – y1* y2) + j(x1 * y2 + x2 * y1) を計算します。

複素乗算器を作成するには、以下の手順に従ってください。

  1. サポートされているFPGAターゲットで新規のブランクVIを作成します。
  2. DSP48E関数をブロックダイアグラムに追加します。
  3. この関数をダブルクリックし、以下の方法で構成します。
    1. 関数ページ:

    2. 端子ページ:

    3. OKボタンをクリックして変更を保存し、ブロックダイアグラムに戻ります。
    これを関数0と呼ぶことにします。
  4. <Ctrl>キーを押しながらこの関数を下にドラッグします。この動作により、DSP48E関数のコピーである関数1が作成されます。このコピーの構成は元の関数の構成と同じです。これでブロックダイアグラムは以下の図のようになります。

  5. 別のDSP48E関数を関数0の右側に追加します。この新しい関数は関数2です。
  6. この関数をダブルクリックし、以下の方法で構成します。
    1. 関数ページ:

    2. 端子ページ:

    3. レジスタページ:

      各データパスに対してレジスタを追加することにより、バランスの取れたレイテンシを実装します。
    4. OKボタンをクリックして変更を保存し、ブロックダイアグラムに戻ります。
  7. <Ctrl>キーを押しながらこの関数を関数1の右側 (関数2の下) にドラッグしてコピーを作成します。
  8. この新しいコピーをダブルクリックし、以下の方法で関数ページを構成します。

  9. OKボタンをクリックして変更を保存し、ブロックダイアグラムに戻ると、以下の図のようになります。

  10. 以下の図に示すように、制御器と表示器を作成し、配線します。

    メモ x1、x2、y1、およびy2のデータのソースによって、DSP48E入力端子の整数ワード長を構成する必要があります。
  11. VIをDSP48E Complex Multiplier.viという名前で任意のディレクトリに保存します。

これで、このVIをシミュレーションのためにエクスポートできるようになりました。FPGAターゲットでこのVIを実行するには、シングルサイクルタイミングループでコードを囲む必要があります。

ヒント  ブロックダイアグラム上でスペースを節約するために、関数のアイコンを縮小することができます。