この手順では、手順 1 で使用したデザインにオーバーサンプリングを使用して、FPGA に最適化されたデザインを作成します。ワークスペース変数を使用する方法も学びます。
- コマンド プロンプトに「
open Lab1_2.slx
」と入力します。 - Simulink プロジェクト ワークシートで をクリックするか [Run simulation] ボタン をクリックし、これが「手順 1: FPGA でのデザインの作成」と同じデザインであることを確認します。
-
System Generator トークンをダブルクリックし、プロパティ エディターを開きます。
手順 1 で述べたとおり、このデザインには 18 MHz 以上のサンプル周波数が必要で、現時点では 20 MHz (FPGA クロック周期 50 ns) に設定されています。
FPGA デバイスに供給可能なクロックの周波数は、20 MHz 以上にすることができます。FPGA を実行するクロック周波数を高くすると、System Generator で同じハードウェア リソースを使用して複数の中間結果を計算できるようになります。 - FDATool インスタンスをダブルクリックし、プロパティ エディターを開きます。
-
Filter Coefficients ボタン
をクリックし、フィルター係数を再表示します。
フィルターで 11 個の対称係数が使用されていることが示されます。これには、6 回以上の乗算が必要です。「System Generator ブロックの設定」セクションの結果でも、ハードウェアで乗算を実行するための FPGA リソースである DSP48 コンポーネントが 6 個使用されていることが示されています。
現時点のデザインでは、データは 20 MHz のレートでサンプリングされます。入力を 6 倍の周波数でサンプリングすれば、すべての計算を 1 つの乗算器で実行できます。
- FDATool のプロパティ エディターを閉じます。
- このデザインの一部の属性をワークスペース変数に置き換えます。まず、ワークスペース変数を定義します。
-
MATLAB のコマンド ウィンドウで次を実行します。
- 「
num_bits = 16
」と入力します。 - 「
bin_pt = 14
」と入力します。
- 「
- デザイン Lab1_2 で Gateway In ブロックをダブルクリックし、プロパティ エディターを開きます。
- [Fixed-Point Precision] セクションで 16 を
num_bits
に変更し、14 をbin_pt
に変更します。
-
OK をクリックして変更を保存し、プロパティ エディターを閉じます。次の手順を実行して、System Generator トークンのサンプリング周波数を 120 MHz (6 * 20 MHz) に変更します。
- [FPGA clock period] を 8.33 ns (1/120 MHz) に設定します。
- [Simulink system period] を 1/120e6 秒に設定します。
- 次の図に示すように、[Perform Analysis] に Post Synthesis、[Analyzer type] に Resource を選択します。このオプションを選択すると、完了後にリソース使用率の詳細が表示されます。
-
Generate をクリックし、デザインをハードウェア記述にコンパイルします。
この場合、リソースが共有されるようにしてリソースを削減するため、デザインに意図的にサンプル レートを超えるクロックを供給しているので、[Diagnostic Viewer] ウィンドウに表示されるメッセージは無視できます。[Diagnostic Viewer] ウィンドウを閉じます。
- 生成が完了したら、OK をクリックして [Compilation status] ダイアログ ボックスを閉じます。
生成が完了すると次の図に示すような [Resource Analyzer] ウィンドウが開き、合成後のデザインの見積もりが表示されます。
ハードウェア デザインで使用される DSP48 リソースは 1 つのみとなり (乗算器 1 つ)、System Generator ブロックの設定 の結果と比較してリソース使用量は約半分になります。
- OK をクリックして [Resource Analyzer] ウィンドウを閉じます。
- OK をクリックして System Generator トークンを閉じます。
Lab1_2.slx
Simulink ワークシートを閉じます。