2.4.2.1. 高速クロック・ドメイン
2.4.2.2. ループの再構築
2.4.2.3. コントロール信号のバックプレッシャー
2.4.2.4. FIFOステータス信号によるフロー・コントロール
2.4.2.5. スキッドバッファーを使用したフロー制御
2.4.2.6. リードモディファイライトメモリー
2.4.2.7. カウンターとアキュムレーター
2.4.2.8. ステートマシン
2.4.2.9. メモリー
2.4.2.10. DSPブロック
2.4.2.11. 一般ロジック
2.4.2.12. モジュラスと除算
2.4.2.13. リセット
2.4.2.14. ハードウェアの再利用
2.4.2.15. アルゴリズム要件
2.4.2.16. FIFO
2.4.2.17. 三進加算器
4.1. メジアンフィルターのデザイン例
このウォークスルーでは、画像処理のメディアン・フィルター・デザインを使用して、Fast ForwardコンパイルとHyper-Retimingを使用する方法を示します。メディアン・フィルターは、画像からインパルス性ノイズを除去する非線形フィルターです。これらのフィルターは最高の性能を必要とします。デザイン要件は、ファクトリ・フロアでリアルタイム画像処理を実行することです。
でン、このウォークスルーでのためのデザイン支援プロジェクト例とデザインファイルを見つけることができます 。検証済みのプロジェクト、制約、デザイン、RTLをmedian.zipからダウンロードして解凍し、このチュートリアルを完了することができます。An FPGA-Based Implementation for Median Filtering Meeting the Real-Time Requirements of Automated Visual Inspection Systems紙は、2002年にポルトガルのリスボンで開催された10th Mediterranean Conference on Control and Automationで初めてこのデザインを発表しました。このデザインは、Free Software Foundationが公開しているGNU General Public Licenseの下で公開されています。
図 95. メディアン・フィルタリングで処理された画像の前後
メジアンフィルターのデザイン例
ダウンロードおよび抽出後、Medianフィルターデザイン例の.zipファイルには、Median_filter_design_example_<version>ディレクトリーの下に次のディレクトリが含まれます。
| ファイル名 | 概要 |
|---|---|
| ベース | デザインおよびプロジェクトファイルのオリジナルバージョンが含まれています。 |
| 最終的 | すべてのRTL最適化が行われたデザインおよびプロジェクトファイルの最終バージョンが含まれています。 |
| fpga-median.ORIGINAL | Medianフィルターのオリジナルのオープンソースバージョンと関連する研究論文が含まれています。 |
| Step_1 | Fast Forward最適化ステップ1のインクリメンタルRTLデザイン変更とプロジェクトファイル。 |
| Step_2 | Fast Forward最適化ステップ2のインクリメンタルRTLデザイン変更とプロジェクトファイル。 |
この実習は以下のステップで構成されています。
- ステップ1:基本デザインのコンパイル
以下の手順に従って、中央値プロジェクトの基本デザインをコンパイルします。 - ステップ2:パイプライン・ステージを追加し、非同期リセットを削除する
この最初の最適化ステップでは、Fast Forwardが提案するデザインロケーションに5レベルのパイプライン・レジスターを追加し、デザインモジュールに存在する非同期リセットを削除します。 ALM間の相互接続にパイプライン・ステージを追加すると、長いルーティング遅延の一部がなくなります。この最適化ステップにより、fMAXのパフォーマンスがFast Forwardが推定するレベルまで向上します。 - ステップ3:パイプライン・ステージを追加して、すべての非同期リセットを削除する
Fast Forward Timing Closure Recommendationsは、リタイミング中に追加の最適化を有効にするために行うことができるさらなる変更を提案しています。Optimizations Analyzedタブでは、 分析する特定のレジスターをレポートして、修正することができます。レポートには、 state_machine.vに最適化を制限する非同期リセットがまだ含まれていることが示されています。 state_machine.vの残りの非同期リセットを削除し、パイプライン・ステージを追加するには、次の手順に従います。 - ステップ4:ショートパスとロングパスの条件を最適化する
非同期レジスターを削除し、パイプライン・ステージを追加した後、高速転送の詳細レポートは、ショートパスとロングパスの条件がさらなる最適化を制限することを示唆しています。この例では、最長パスがこの特定のクロックドメインのfMAXを制限します。パフォーマンスを向上させるには、次の手順に従って、このクロックドメインの最長パスの長さを短くします。