手順 2: HDL で記述されたブロックのモデリング - 2020.2 日本語

Vivado Design Suite チュートリアル: System Generator を使用したモデル ベースの DSP デザイン (UG948)

Document ID
UG948
Release Date
2020-12-11
Version
2020.2 日本語
この手順では、RTL デザインを System Generator にブラック ボックスとしてインポートします。

ブラック ボックスを使用すると、記述がハードウェア記述言語 (HDL) フォーマットであっても、デザインを System Generator にインポートできます。

目標

この手順を終了すると、次のことができるようになります。

  • RTL HDL 記述を System Generator for DPS にインポート。
  • デザインを正しくシミュレーションできるようにブラック ボックスを設定。
  1. System Generator を起動し、MATLAB コンソールでディレクトリを C:\SysGen_Tutorial\Lab2\HDL に変更します。

    このディレクトリには、次のファイルが含まれています。

    • Lab2_2.slx: ブラック ボックス例を含む Simulink モデル。
    • transpose_fir.vhd: 転置型 FIR フィルターの最上位 VHDL。このファイルは、ブラック ボックスに関連付けられている VHDL です。
    • mac.vhd: 転置型 FIR フィルターの作成に使用される乗加算コンポーネント。
  2. open Lab2_2.slx」と入力します。
  3. Down Converter というサブシステムを開きます。
  4. Transpose FIR Filter Black Box というサブシステムを開きます。

    このサブシステムには、2 つの入力ポートと 1 つの出力ポートがあります。このサブシステムにブラック ボックスを追加します。



  5. デザイン キャンバスを右クリックして Xilinx BlockAdd をクリックし、このサブシステムに Black Box ブロックを追加します。

    ブラウザー ウィンドウが開き、ブラック ボックスに関連付けることが可能な VHDL ファイルがリストされます。

  6. ブラウザー ウィンドウで最上位 VHDL ファイル transpose_fir.vhd を選択します。これを次の図に示します。

    関連のコンフィギュレーション M コード transpose_fir_config.m がエディターに開きます。

  7. エディターを閉じます。
  8. ブラック ボックスのポートを対応するサブシステム ポートに接続し、デザインを保存します。

  9. Black Box ブロックをダブルクリックし、次のダイアログ ボックスを開きます。

    このダイアログ ボックスには、次のオプションがあります。
    Block configuration m-function
    ブラック ボックスのコンフィギュレーション M 関数の名前を指定します。この例では、Configuration Wizard で生成された関数の名前が含まれています。デフォルトでは、ブラック ボックスにはウィザードで生成された関数の名前が使用されます。これは自分で作成したものに変更できます。
    Simulation mode
    次の 3 つのシミュレーション モードがあります。
    Inactive
    シミュレーションでブラック ボックスへの入力は無視され、0 が生成されます。この設定は、ブラック ボックスに個別のシミュレーション モデルが存在している場合によく使用され、その場合シミュレーション モデルはシミュレーション マルチプレクサーを使用してブラック ボックスと並列に接続されます。
    Vivado Simulator
    ブラック ボックスのシミュレーション結果は、ブラック ボックスに関連付けられている HDL の協調シミュレーションを使用して生成されます。
    External co-simulator
    ModelSim HDL 協調シミュレーション ブロックデザインに追加し、[HDL co-simulator to use] フィールドに ModelSim ブロックの名前を指定する必要があります。このモードでは、ブラック ボックスは HDL 協調シミュレーションを使用してシミュレーションされます。
  10. [Simulation mode] で [Inactive] をオンにし、OK をクリックします。
  11. デザインの最上位に移動し、[Run simulation] ボタン をクリックしてシミュレーションを実行します。その後、Scope ブロックをダブルクリックします。
  12. [Output Signal] スコープに表示されているブラック ボックス出力は 0 です。これは、ブラック ボックスを非アクティブに設定したからです。

  13. Simulink エディター メニューから Display > Signals & Ports > Port Data Types をクリックし、ブラック ボックスのポートのデータ型を表示します。
  14. モデルをコンパイルし (Ctrl + D キーを押す)、ポートのデータ型がアップデートされることを確認します。

    ブラック ボックスのポート出力のデータ型は UFix_26_0 です。このデータ型は、符号なし、26 ビット幅、2 進数小数点 0 位置は最下位ビットの左側です。

  15. コンフィギュレーション M 関数 transpose_fir_config.m を開き、出力のデータ型を UFix_26_0 から Fix_26_12 に変更します。変更後の行 (26 行目) は次のようになります。
    dout_port.setType('Fix_26_12');

    次の手順を使用して、コンフィギュレーション M 関数を編集し、追加の HDL ファイルをブラック ボックスに関連付けます。

  16. 次に示す 65 行目に移動します。
    this_block.addFile('transpose_fir.vhd');
  17. この行の上に、次の行を追加します。
    this_block.addFile('mac.vhd');
  18. 変更をコンフィギュレーション M 関数に保存し、ファイルを閉じます。
  19. デザイン キャンバスをクリックし、Ctrl + D キーを押してモデルをコンパイルし直します。

    Transpose FIR Filter Black Box サブシステムは次の図のようになります。



  20. Black Box ブロックのパラメーター ダイアログ ボックスで、[Simulation mode] の設定を Inactive から Vivado Simulator に変更し、OK をクリックします。
  21. デザインの最上位に移動し、シミュレーションを実行します。
  22. シミュレーションが終了したら、[Scope] ウィンドウの出力を確認します。

    波形は 0 ではありません。シミュレーション モードが [Inactive] に設定されていた時は、[Output Signal] スコープの出力は 0 でした。今回は、[Output Signal] に Vivado シミュレーションからの結果がサイン波で示されています。

  23. [Output Signal] 表示を右クリックし、Configuration Properties をクリックします。[Main] タブで Axis ScalingAuto に設定します。

    次のような出力が表示されます。