iPROVE によるサイクル精度検証のメリット
• 大規模な FPGA を用いたプロトタイピングにおいてブロック毎 の実チップによる機能検証が可能
–
大規模チップによるFPGA
プロトタイピング•
配置配線に多大な時間•
シミュレーションと比較し観測性が悪い•
実速度で動作可能– iPROVE
によるサイクル精度機能検証• SystemC/HDLのテストベンチによる検証が可能
•
内部データの取得が容易•
ブロック毎の実ディバイスによる検証が可能□動作合成ツール DesignPrototyper の特徴
□デザイン事例
□ USBlink IO Bridge( プロトコル変換回路 ) □ JPEG CODEC
□ デモンストレーション
■ boost::serialization を活用した効率的な検証手法
□まとめ
C言語ベース Top Down 設計手法による ハードウェア設計の課題
SystemC Simulator
Algorithm code
C/C++ Compiler C/C++ HDL Simulator
RTL Synthesis
RTL Synthesis
Synthesizable Verilog HDL
DesignPrototyperTM
SystemC(BCA), ANSI-C [FDA-C]
大規模なアルゴリズムコードから 実装用記述を作成する際の
等価性検証の工数が膨大
C言語ベース Top Down 設計手法による ハードウェア設計の課題
•
アルゴリズムコードから実装用ハードウェア 記述に変換する際の等価性検証の工数が 膨大•テストデータ抽出プログラム
•
単体テストベンチ•
複雑なデータ構造•
大規模なシステムの場合、SystemC
で全体 モデルを開発するのに多大な工数が必要実装用SystemC BCA記述
実装用アルゴリズム 記述 C/C++
プローブポイント、
パラメター設定
SystemC テストベンチ
従来の手法:
プローブポイントの変数をファイル
/
データベース に書き出すプログラム/システムで対応C言語ベース上流設計手法における boost::serialization の活用
実装用アルゴリズム 記述 C/C++
プローブポイント、
パラメター設定 ファイル
SystemC テストベンチ
A B C
A B C
プローブポイント/ パラメター設定 を定義したクラス
プローブポイントクラス
プローブポイントクラス
プローブポイントクラスに定義した メンバー変数をboost::serializationの 機能でファイルに書き出し
プローブポイントクラスに定義した メンバー変数をboost::serializationの 機能でファイルから読み出し
ファイルの形式: 以下のフォーマットを選択可能 テキスト
バイナリー XML
大規模なアルゴリズムのコードの一部を
事例 H.264 変換量子化回路
-+
量子化 テーブル
4x4変換 量子化
uint16̲t
mCoefTable[4][4][4] ; uint16̲t
mCoef̲base[4][4][4] ;
4
4
4
uint8̲t mPIX1[8][8] ;
uint8̲t mPIX2[8][8] ;
int16̲t mDCT8x8[8][8] ;
8x8画素
8x8画素
8x8画素
dct8x8̲cmode 0:Y 1:Cb 2:Cr
リファレンスコード x264 - a free h264/avc encoder http://www.videolan.org/developers/x264.html ライセンス GNU General Public License