スライド 1

Chapter6.1-2
6311616 大蘆康一
1
6.Generating FPGA Hardware

以前の章でインパルスCのプログラミングの方法を示し
た

この章の内容


2
Cからハードウェアへのコンパイルの流れ
生成結果に影響するCの制約とプログラミング方法
6.1 The Hardware Generation Flow

図はハードウェア生成の流れを
示している

インパルスのライブラリは,並列
処理のエミュレーション機能を提
供する

Cのアプリケーションはハード
ウェアとソフトウェアのバイナリ
ファイルにコンパイルされる

3
組込みプロセッサなどは,クロス
コンパイラで処理される
Optimization and Hardware Generation

アプリケーションのハードウェアになる
部分はRTL生成器で解析され,コンパ
イラによって最適化される

最適化とハードウェア生成の各ステッ
プを説明していく
4
Optimization and Hardware Generation
Cの前処理(C preprocessing)



includeファイルの参照やマクロの展開などを組み込む
“#ifdef”の知識があれば,デスクトップシミュレーションの文は
消せるかもしれない
Cの解析(C analysis)



5
co_process_configをもとにハードウェアとソフトウェアを分割
stream, signal, shared memoryのインタフェースの生成
Optimization and Hardware Generation
初期の最適化(Initial optimization)


ハードウェアプロセス上で様々な最適化を行う

定数畳込み,冗長除去のようなポイントで行われる
ループ展開(Loop unrolling)


UNROLL pragmaを使い,ループを等価な文に展開する

6
展開できないとエラーを生成する
Optimization and Hardware Generation
Instruction stage optimization



並列性を抽出する最適化を行う
PIPELINE pragmaがあれば実行する
ハードウェア生成(Hardware generation)


最適化・並列化されたコードからHDLファイルを合成する
ここまでのステップがコンパイラの代表的な仕事


7
しかし,FPGAを動かすにはさらに必要
Optimization and Hardware Generation
論理合成とFPGAテクノロジーマッピング(Logic synthesis
and FPGA technology mapping)



FPGAベンダのツールで実行される
ハードウェア記述はFPGAのネットリストを作るためにさらに最
適化される
FPGA place-and-route



8
ネットリストは解析され,FPGA上に割り当てられる
この結果,FPGAのビットマップができる
6.1
インターコネクト構造の複雑さや,FPGAに合わせて論理
を要素に分解する必要性から,この2ステップは時間がか
かる


プロセッサや周辺機器を組み込みとなおさら
HDLファイルのレベルでのシミュレーションや生成結果
の確認は有用

9
6.2
Understanding The Generated Structure

6.1の結果として,HDL(VHDL)が生成される

エンティティ宣言,アーキテクチャ本体によって表される

エンティティ(entity)


アーキテクチャ(architecture)


10
外部との入出力のインタフェースを定義する
動作を記述する
Top-levelとLower-levelの階層構造
階層構造

アプリケーションのふるまいはTop-levelのVHDLで表す


RTL(Lower-level)を抽象化することができる
実際の動作はRTLを参照する
11
6.2

Cではリセットやクロックはないが,生成されたHDLにはあ
る


ハードウェアとソフトウェアプロセスで違う周波数で実行したい
場合,dual-clock streamの作成も可能
generic

12
ストリームのパラメータを指定する
ご清聴ありがとうございました
13