-
Digital Filter Design インスタンスをダブルクリックし、プロパティ エディターを開きます。
既存のフィルターのプロパティを確認します。
- Digital Filter Design インスタンスのプロパティ エディターを閉じます。
- FDATool インスタンスをダブルクリックし、プロパティ エディターを開きます。
- フィルター仕様を次のように設定します。
- [Frequency Specifications]
- [Units]: [MHz]
- [Fs]: [20]
- [Fpass]: [1.5]
- [Fstop]: [8.5]
- [Magnitude Specifications]
- [Units]: [dB]
- [Apass]: [0.01]
- [Astop]: [100]
- [Frequency Specifications]
- 下部にある Design Filter ボタンをクリックし、プロパティ エディターを閉じます。
次に、FDATool インスタンスのフィルター パラメーターを Digital FIR Filter インスタンスに関連付けます。
- Digital FIR Filter インスタンスをダブルクリックし、プロパティ エディターを開きます。
- [Filter Parameters] セクションで [Coefficient Vector] に「
xlfda_numerator('FDATool')
」と入力し、FDATool インスタンスで定義されている係数が使用されるようにします。
-
OK をクリックして Digital FIR Filter のプロパティ エディターを閉じます。
FPGA では、デザインは特定のクロック レートで動作し、特定のビット数を使用してデータ値が表現されます。
標準 Simulink 環境で使用される連続時間を FPGA ハードウェア環境での離散時間に変換するには、Gateway In ブロックでサンプル レートを定義します。これにより、連続入力波形のサンプリング頻度が決まります。このサンプル レートは、System Generator によりデザインのほかのブロックにも自動的に伝搬されます。データを表現するのに使用されるビット数も、Gateway In ブロックで定義するとシステム全体に伝搬されます。
このチュートリアルでは使用しませんが、一部のザイリンクス ブロックでは、自動伝搬の一部としてレートとビット幅の変更 (増加または減少) がイネーブルになっています。これらのブロックの詳細は、 『Vivado Design Suite リファレンス ガイド: System Generator を使用したモデル ベースの DSP デザイン』 (UG958) を参照してください。
これらの属性 (レートおよびビット幅) により、連続時間信号の表現の精度が決まります。これらの属性は、最終的なハードウェアのサイズ、パフォーマンス、およびコストにも影響します。
System Generator では、Simulink 環境を使用して定義およびシミュレーションすることにより、これらの属性の影響を確認できます。
-
Gateway In ブロックをダブルクリックし、プロパティ エディターを開きます。
デザインの周波数が最大のサイン波は 9 MHz なので、入力ポートのサンプリング周波数は 18 MHz 以上にする必要があります。このデザインでは 20 MHz を使用します。
- プロパティ エディターで [Sample period] を [1/20e6] に設定します。
- デフォルト設定のままにし、固定小数点 ([Fixed-point])、2 の補数 ([Signed (2's comp)]、[Number of bits] は 16 ビット、[Binary point] は 14 ビットを使用します。この設定では、サイン波 (どちらも振幅 1) の和を表すのに必要な範囲を超える -2.0 ~ 1.999 の範囲を表現できます。
-
OK をクリックして Gateway In のプロパティ エディターを閉じます。
これで、ハードウェアでの精度を確認するために正確なサンプル レートおよびビット幅を使用できます。
-
System Generator
トークンをダブルクリックし、プロパティ エディターを開きます。
データを十分に表現するため入力ポートは 20 MHz でサンプリングされるので、FPGA のクロック レートと Simulink のサンプル周期を 20 MHz 以上に設定する必要があります。
- [Clocking] タブをクリックします。
- [FPGA clock period] を 50 ns (1/20 MHz) に指定します。
- [Simulink system period] を 1/20e6 秒に指定します。
- [Perform analysis] に Post
Synthesis、[Analyzer type] に Resource を選択します。このオプションを選択すると、完了後にリソース使用量が表示されます。
- OK をクリックして System Generator トークンを閉じます。
- [Run simulation] ボタン をクリックしてデザインをシミュレーションし、結果を確認します。
新しいデザインはサイクル精度およびビット精度なので、前よりもシミュレーションに時間がかかる場合があります。
上の図に示す結果では、右側の [Spectrum Analyzer Sysgen] ウィンドウは左側の [Spectrum Analyzer FDA Tool] ウィンドウに示される元のデザインとは異なります。これは、連続時間システムを離散時間ハードウェアで記述する際に発生する量子化およびサンプリングによるものです。
最後に、このデザインをハードウェアにインプリメントします。これにより、Gateway In と Gateway Out ブロック間にあるすべてのものがハードウェア記述に合成されます。デザインのこの記述は、Verilog または VHDL ハードウェア記述言語 (HDL) で出力されます。このプロセスは、System Generator トークンで制御されます。
- System Generator トークンをダブルクリックし、プロパティ エディターを開きます。
- Compilation タブをクリックしてデバイスとデザイン フローの詳細を指定します。
- [Compilation] に [IP Catalog] を選択し、出力が IP カタログ フォーマットになるようにします。[Part] で FPGA デバイスを選択します。ここでは、デフォルトのデバイスを使用します。[Hardware description language] もデフォルトの [VHDL] を使用します。
-
Generate クリックしてデザインをハードウェアにコンパイルします。
コンパイル プロセスで Simulink ブロックのデザインが業界標準の RTL デザイン記述に変換されます。RTL デザインは、ハードウェア デザインに合成できます。ハードウェア デザイン記述が生成されると、[Resource Analyzer] ウィンドウが表示されます。
[Compilation status] ダイアログ ボックスも表示されます。
- OK をクリックして [Compilation status] ダイアログ ボックスを閉じます。
- OK をクリックして [Resource Analyzer] ウィンドウを閉じます。
- OK をクリックして System Generator トークンを閉じます。
まず、新しいフィルターの係数を定義します。ここでは、ザイリンクスの FDATool ブロックを使用します。既存の FDATool ブロックを開いて、周波数および振幅の設定を確認します。
最後の手順では、ハードウェアを作成して結果を確認します。