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
© Copyright 2024 ExpyDoc