-
System Generator を起動します。
- Windows の場合は、 をクリックします。
- Linux システムの場合は、コマンド プロンプトに「
sysgen
」と入力します。
- コマンド プロンプトに「
open Lab1_4_1.slx
」と入力します。次の図に示すような Simulink デザインが表示されます。このデザインは、演習 1 手順 1 で使用したデザインと似ていますが、浮動小数点型が使用されており、フィルターはサブシステム FIR にインプリメントされています。
まずデザインの属性を確認し、デザインをシミュレーションしてパフォーマンスを検証した後、最後にデザインを合成します。
上の図では、インスタンス FIR の入力と出力はどちらも double 型です。 -
MATLAB コマンド ウィンドウに次を入力します。
MyCoeffs = xlfda_numerator('FDATool')
- FIR インスタンスをダブルクリックし、サブシステムを開きます。
-
Constant1 インスタンスダブルクリックし、プロパティ エディターを開きます。
[Constant value] は
MyCoeffs(1)
と定義されています。
- Constant1 のプロパティ エディターを閉じます。
- [Up To Parent] ツールバー ボタンをクリックするか、Lab1_4_1 タブをクリックして、最上位デザインに戻ります。
このデザインは、2 つの 9 MHz サイン波を加算します。System Generator への入力ゲートウェイは、18 MHz 以上のレートでデータをサンプリングする必要があります。
- Gateway In1 インスタンスをダブルクリックしてプロパティ エディターを開き、入力がデータを 20 MHz (サンプル周期 1/20e6) のレートでサンプリングすることを確認します。
- Gateway In のプロパティ エディターを閉じます。
- [Run simulation] ボタンをクリックしてデザインをシミュレーションします。
次の図に示す結果では、System Generator ブロックセットでほぼ理想的な結果 (中央) が得られています。System Generator デザインは入力波形を継続的に離散時間値にサンプリングする必要があるので、結果は同一ではありません。
最後に、最上位デザインを合成します。
- System Generator トークンをダブルクリックし、プロパティ エディターを開きます。
- [Compilation] タブで、[Compilation] に [IP Catalog] が選択されていることを確認します。
- [Clocking] タブで、[Perform analysis] に Post Synthesis を選択し、[Analyzer type] に Resource を選択します。このオプションを選択すると、完了後にリソース使用率の詳細が表示されます。
-
Generate をクリックし、デザインをハードウェア記述にコンパイルします。完了すると、次の図に示すように [Resource Analyzer] ダイアログ ボックスにリソース使用量が表示されます。
- OK をクリックして [Compilation status] ダイアログ ボックスを閉じます。
-
OK をクリックして System Generator トークンを閉じます。
演習 1 手順 1 では、同じフィルターを固定小数点型を使用してインプリメントしました。そのインプリメンテーションの合成結果 (次の図) と比較すると、今回のインプリメンテーションでは多量のレジスタ (FF)、LUT、および DSP48 (DSP) リソース (ザイリンクスの専用乗算/加算ユニット) が使用されているのがわかります。
浮動小数点型の完全な精度を保つのが理想ですが、それには多量のハードウェアが必要です。
このデザインでは、浮動小数点型の全範囲は必要ありません。この時点のデザインでは、必要以上に多量のリソースが使用されています。次のセクションでは、Simulink 環境内で異なるデータ型を使用するデザインを比較する方法を学びます。
- Vivado Design Suite を閉じます。
- Lab1_4_1.slx Simulink ワークシートを閉じます。
このセクションでは、浮動小数点型を使用してインプリメントしたデザインを確認します。