高性能ディジタル回路設計とハイレベル・シンセシスの基礎
高性能ディジタル回路設計とハイレベル・シンセシスの基礎
|
【コース】1日コース,7時間(昼休み1時間を含む) 【内容のカスタマイズ】可能.要相談
【セミナNo.】ESSM01 【出張範囲】全国
【セミナNo.】ESSM01 【出張範囲】全国
FPGAおよびASIC,SoCのディジタル回路設計においては,「HDL(ハードウェア記述言語)によりRTL(クロック単位の回路動作)記述を行い,論理合成ツールで回路を生成する」という設計手法が普及している.ここ数年で,C言語などによるソフトウェア記述からRTLを生成するハイレベル・シンセシス(高位合成)も,FPGAでは無償利用できるようになった.
しかし,使用言語がプログラミング言語風であっても,設計で用いる思考はハードウェア独特であり,それを知らずにツールを使うと回路が著しく遅く大きいものになったり,安定動作しない回路を作ってしまったりする原因となる.有効な解決策は,回路の構造(アーキテクチャ)や動作(データの流れ)を頭の中にイメージすることである.
本セミナの前半ではHDLと回路の対応づけや最適化法を説明し,後半ではC言語によるハイレベル・シンセシスやアーキテクチャ設計の基本を紹介して,実用回路を設計するための考え方を身につける.
しかし,使用言語がプログラミング言語風であっても,設計で用いる思考はハードウェア独特であり,それを知らずにツールを使うと回路が著しく遅く大きいものになったり,安定動作しない回路を作ってしまったりする原因となる.有効な解決策は,回路の構造(アーキテクチャ)や動作(データの流れ)を頭の中にイメージすることである.
本セミナの前半ではHDLと回路の対応づけや最適化法を説明し,後半ではC言語によるハイレベル・シンセシスやアーキテクチャ設計の基本を紹介して,実用回路を設計するための考え方を身につける.
●対象聴講者
・Verilog HDLまたはVHDLといった言語や論理合成などのEDAツールを少し試してみたことはあるが,今ひとつ深く分からない方
・FPGAやASIC,SoCの実用回路設計をこれから始めたいが,どのような視点で物を考えればよいか知りたい方
・アルゴリズムをハードウェア化したいが,ソフトウェア設計とどのように異なるのかを知りたい方
●講演の目標
・HDLやC言語を使ってどのように回路を設計するかを学ぶ
(これらの言語を見たことがある,という程度の知識は必要)
・高い処理性能や小さな回路規模を達成しなければならなくなったとき,回路をどのように作り,ツールをどのように使うかを学ぶ
・多少複雑な処理を作ることが要求されたとき,モジュール分割や回路全体構成(アーキテクチャ設計)をどう進めるかを学ぶ
●内容
1. 一つのモジュールを書いたHDLから回路をイメージ
1.1 典型的なSoC/FPGAの内部回路構成
1.2 回路の動き・構造・HDLの対応をつける
1.3 回路の動きをHDLで書く
1.4 HDLから回路構造を読み取る
1.5 回路構造から回路の動きを読み取る
1.6 実用回路で使うVerilog HDL/VHDL記法
1.7 より複雑な動きの記述(ステート・マシン)
2. 一つのモジュールの性能最適化と誤動作の防止
2.1 回路性能の指標とその評価ツール
2.2 動作周波数の向上,回路規模や消費電力の低減
2.3 並列化に向いた処理アルゴリズムの導入
2.4 クロック境界やインターフェース部での誤動作防止
3. 一つのモジュールをC言語で設計する
3.1 ハイレベル・シンセシス・ツール利用のようす
3.2 HDLでは難しいがCでは容易な設計
3.3 HDLでは容易だがCでは難しい設計
3.4 C言語上でのインターフェース調整
3.5 C言語上での回路最適化
3.6 ハイレベル・シンセシスとHDL設計の使い分け
4. 複数のモジュールで大きなシステムを組むための基礎
4.1 マクロ・アーキテクチャの概念
4.2 データ・フローを意識して全体性能見積もり
4.3 メモリ・アーキテクチャの工夫
4.4 複数のモジュールの接続と全体動作制御
4.5 高位合成の適切な活用のしかた
・Verilog HDLまたはVHDLといった言語や論理合成などのEDAツールを少し試してみたことはあるが,今ひとつ深く分からない方
・FPGAやASIC,SoCの実用回路設計をこれから始めたいが,どのような視点で物を考えればよいか知りたい方
・アルゴリズムをハードウェア化したいが,ソフトウェア設計とどのように異なるのかを知りたい方
●講演の目標
・HDLやC言語を使ってどのように回路を設計するかを学ぶ
(これらの言語を見たことがある,という程度の知識は必要)
・高い処理性能や小さな回路規模を達成しなければならなくなったとき,回路をどのように作り,ツールをどのように使うかを学ぶ
・多少複雑な処理を作ることが要求されたとき,モジュール分割や回路全体構成(アーキテクチャ設計)をどう進めるかを学ぶ
●内容
1. 一つのモジュールを書いたHDLから回路をイメージ
1.1 典型的なSoC/FPGAの内部回路構成
1.2 回路の動き・構造・HDLの対応をつける
1.3 回路の動きをHDLで書く
1.4 HDLから回路構造を読み取る
1.5 回路構造から回路の動きを読み取る
1.6 実用回路で使うVerilog HDL/VHDL記法
1.7 より複雑な動きの記述(ステート・マシン)
2. 一つのモジュールの性能最適化と誤動作の防止
2.1 回路性能の指標とその評価ツール
2.2 動作周波数の向上,回路規模や消費電力の低減
2.3 並列化に向いた処理アルゴリズムの導入
2.4 クロック境界やインターフェース部での誤動作防止
3. 一つのモジュールをC言語で設計する
3.1 ハイレベル・シンセシス・ツール利用のようす
3.2 HDLでは難しいがCでは容易な設計
3.3 HDLでは容易だがCでは難しい設計
3.4 C言語上でのインターフェース調整
3.5 C言語上での回路最適化
3.6 ハイレベル・シンセシスとHDL設計の使い分け
4. 複数のモジュールで大きなシステムを組むための基礎
4.1 マクロ・アーキテクチャの概念
4.2 データ・フローを意識して全体性能見積もり
4.3 メモリ・アーキテクチャの工夫
4.4 複数のモジュールの接続と全体動作制御
4.5 高位合成の適切な活用のしかた
【ご用意いただくもの】
筆記用具
筆記用具
【講師】
森岡 澄夫 氏〔インターステラ・テクノロジズ株式会社 シニアフェロー,博士(工学)〕
回路設計エンジニア.NTT,IBM,Sony,NECの各研究所において高性能回路IPやハイレベルシンセシスの研究,およびプレイステーションなどの製品用SoC開発に従事した後,現職にて民間宇宙ロケットの飛行制御コンピュータの研究開発に従事.FPGAや高位合成を活用している.
森岡 澄夫 氏〔インターステラ・テクノロジズ株式会社 シニアフェロー,博士(工学)〕
回路設計エンジニア.NTT,IBM,Sony,NECの各研究所において高性能回路IPやハイレベルシンセシスの研究,およびプレイステーションなどの製品用SoC開発に従事した後,現職にて民間宇宙ロケットの飛行制御コンピュータの研究開発に従事.FPGAや高位合成を活用している.