Capter9 Creating an Embedded Test Bench (9.1-9.3) 6311653 中島大輝
前置き テストベンチとは… 組み込みプロセッサとHW accelerationを組み合わせることで,テスト設備やテスト環境を構築可能 設計が正確かどうか検証するための仮想的環境 結果として出力された値と事前に算出しておいた値とを比較することで電子回路の性能を評価 組み込みプロセッサとHW accelerationを組み合わせることで,テスト設備やテスト環境を構築可能 ストリームプログラムモデルを用いることで,新たなテストが生成された場合も,正確にHWモジュールを検証可能
前置き Impulse CのSWプロセスを利用したテストベンチ作成 HW-SW混在の組み込みシステムでは,テストベンチの作り方も重要 この章では,triple-DESアルゴリズムを使用したテストベンチを作成
9.1 A Mixed HW and SW Approach SW-HW混在システムの考察 それぞれを相対的なメリット・デメリットで評価 HW,SWの組み込みプロセッサとFPGAHWにおいて,同じアルゴリズムで実装 これによって,HWに対するSWの相対的メリットなどを分析 アルゴリズムのパフォーマンスとSW,HWインタフェースの処理にかかる負荷を評価可能 評価はシステム設計者の経験に依存
9.1 A Mixed HW and SW Approach 評価の主な要因は,既存のマイクロプロセッサやハードウェアへアルゴリズムをコンパイルする能力である C-to-HWコンパイルは,システム設計を容易にする ソフトウェア開発者にとって様々な評価が容易となる ハードウェアに関連したパーティショニング,設計,実装など低次でのハードウェアの設計が必要なく,相対的な評価のための膨大な計算も必要ない
9.1 A Mixed HW and SW Approach データ転送時のオーバーヘッド データのストリームを処理するアルゴリズムにおいては,処理自体とデータ通信のオーバーヘッドを考慮 HW approachの利点の評価においては,既存のプロセッサ上で動くソフトウェアの一部と専有化されたハードウェア間に起こるデータ転送コストを考慮し,できるだけ直接的に測定しなければならない
9.1 A Mixed HW and SW Approach HW approachにおける効果的なアルゴリズム 入出力処理で過度な制限なし 計算上集約されている 低レベル(ex.ループ内での状態のスケジューリングによって実現可能)での並列可能性 パイプライン処理又は並列処理のレベルでの並列可能性 SWアルゴリズム→FPGA 直接コンパイルすることは効果的で,よりリスクを減らすことができる.
9.2 The Embedded Processor As a Test Generator テスト/デバッグに組み込みコアプロセッサを用いるのは非常に有効 最終的に組み込みプロセッサを利用しない場合にも有効 Impulse Cでは,上記により性能のよいSW-HW混在テストベンチが実世界に即した形で実行できる
9.2 The Embedded Processor As a Test Generator この手法を用いるには,標準化されたSW-HWインターフェイスが必要 ex.MicroBlaze→Xilinxから提供されるFSLバス しかし、インターフェイスは各FPGAで異なるメカニズムを持つ ターゲットとしたプラットフォームで使用できるcommunication channelsを活用するように設計 その利用は事前によく調査・検討されなければならない
9.2 The Embedded Processor As a Test Generator このようなインターフェイスを“単体テスト”の考え方に沿って利用することで、アプリケーションンの各コンポーネントの高速な検証,HW-SWの境界をテストし、最適化することが可能 最終的にアプリケーションの質の向上につながる
9.2 The Embedded Processor As a Test Generator ユニットテストの考え方 アプリケーション内の重要なモジュールの単体テストを作ることが重要 ex.HDLシュミレータの使用 特定モジュールのテストは比較的簡単 実世界に即していなかったり非常に時間のかかるものもある
9.2 The Embedded Processor As a Test Generator 単体テスト ○想定していない条件や境界条件のテスト ×システム全体のテスト 特定の処理のみのテストや総当たりではなく境界値や特殊なケースのテストが実際のHW上(テスト目的)で可能 鍵となるのはSWによるテストベンチの高速な生成と必要なHWのプロトタイプの開発(Cレベル設計ではこれが可能) C-to-RTL コンパイルを使用することで,楽にHW,SW混在のテスト手順を作成可能
9.2 The Embedded Processor As a Test Generator デスクトップシミュレーションに対する組み込みテストベンチ Cレベル設計の特徴 HW,SWともにIDEで開発・デバッグ・コンパイル・実行可能 組み込みテストベンチ プラットフォームの制限 組み込みプロセッサに軽快なOSを組み込むことで容易に構築できる(詳細は後のChapter)
9.2 The Embedded Processor As a Test Generator データスループットとプロセッサの選定 in-systemテスト用のプロセッサの選定 FPGA内の領域確保 アプリケーションの一部のみをテストジェネレータとして使う場合は必要なし FPGAが限界使用率に達していた場合 より大きなデバイスに変更 組み込みハードプロセッサを含むFPGAに変更 設計時間の短縮 ハードコアプロセッサの使用
9.2 The Embedded Processor As a Test Generator データスループット ソフトウェアプロセッサの使用 ex.FSLバスを用いたXilinx MicroBlaze SW・HW間のデータストリームによりよい効果 Impulse Cライブラリの使用 SW・HW間の通信に使用 FPGAベースのプロセッサとバスプロトコルの相違をより抽象化
9.2 The Embedded Processor As a Test Generator HWのテストジェネレータを動かす パフォーマンスの向上 テスト機能(stimulus generatorなど)をHWに組み込む HWの生成 VHDLやVerilogだと再実行に時間がかかる automated C-to-RTLコンパイラを用いて高速化
9.3 The Role of HW Simulator In-systemテストをアプリケーションに組み込みのは面倒 HWシミュレーションの利点 コンパイル/論理合成/マッピングの際にHWモジュールをin-systemでテスト可能 エラーをなくす機能 テスト設計の可視化 Single-steppingの提供 プログラムのデバックの際に、命令ごともしくは1ステートメントごとに実行させること
9.3 The Role of HW Simulator 細かいタイミングでテストするならば,ソフトコアプロセッサでテストデータを作成したほうがよい post-route simulation modelsを用いたシミュレーションでは,どんなクロック数でも対応できる テスト対象の規模によっては,シミュレーションに数時間~数日かかる
9.3 The Role of HW Simulator 組み込みプロセッサを用いたin-systemテスト シミュレーションベースのテストをうまく支援 HWインタフェースや入力により各HW(低クロック)により実世界に即したテストを施す RTLシュミレーション環境よりも高速にシュミレート C-to-HWコンパイルツール システム全体をC言語で記述 →HDLに移植可能 →Cレベルの最適化可能