Chapter6.3 〜6. 5

28
Chapter6.3 〜 6.5 6311626 〜〜 〜

description

Chapter6.3 〜6. 5. 6311626 加藤 駿. 6.3 STREAM AND SIGNAL INTERFACES. Stream and Signal Protocols. ストリームとシグナルのハードウェアインタフェースを   生成する際に ImpulseC コンパイラが明確に定義した   プロトコルを使用する. Stream and Signal Protocols. Stream and Signal Protocols. ストリームは 1 本のデータラインとコントロールラインに よって構成されている. - PowerPoint PPT Presentation

Transcript of Chapter6.3 〜6. 5

Page 1: Chapter6.3 〜6. 5

Chapter6.3 〜 6.5

6311626 加藤 駿

Page 2: Chapter6.3 〜6. 5

6.3 STREAM AND SIGNAL INTERFACES

Page 3: Chapter6.3 〜6. 5

Stream and Signal Protocols

ストリームとシグナルのハードウェアインタフェースを

  生成する際に ImpulseC コンパイラが明確に定義した

  プロトコルを使用する

Page 4: Chapter6.3 〜6. 5

Stream and Signal Protocols

Page 5: Chapter6.3 〜6. 5

Stream and Signal Protocols

ストリームは 1 本のデータラインとコントロールラインに

よって構成されている

Page 6: Chapter6.3 〜6. 5

Stream and Signal Protocols

rdy 信号により制御されているストリームのライン  -- ストリームが演算中にストリームが読み込みまたは書き込みの

準備が出来ていることの指示の生成を rdy ラインの上で行う

ハンドシェイク制御を許可するための外部から制御される en 信号のストリームのライン

Page 7: Chapter6.3 〜6. 5

Stream and Signal Protocols

co-signal-close 関数で用いられる eos 信号のライン

   -- ストリームの終端を示す

アプリケーションのプログラマによって幅が定義された

データライン

Page 8: Chapter6.3 〜6. 5

Stream and Signal Protocols

rdy が active

システムに接続されたプロセスがデータラインよりストリームからの読み書きを行う

en 信号を出力

Page 9: Chapter6.3 〜6. 5

Stream and Signal Protocols

シグナルもストリームと同様に動作する

シグナルは eos ラインを持たない

メッセージを送信するための異なった通信規則に従う

コントロールラインをもつ

シグナルの書き込み処理はブロックされない

Page 10: Chapter6.3 〜6. 5

Stream and Signal Protocols HW-HW 間のインタフェースでは producer と

consumer の プロセスはストリームとシグナルのインタフェースを共

有する

Page 11: Chapter6.3 〜6. 5

Streams used in Write Mode 書き込みモードの場合にストリームインタフェィスは  以下のポートと対応する信号を伴って生成される(co_stream_open   O_WRONLY の使用 )

Page 12: Chapter6.3 〜6. 5

Streams used in Read Mode 読み込みモードの場合にストリームインタフェィスは 以下のポートと対応する信号を伴って生成される(co_stream_open O_RDONLY の使用 )

Page 13: Chapter6.3 〜6. 5

Signals used in Post(Write) Mode

送信モードの場合にシグナルインタフェィス  は以下のポートと対応する信号を伴って生成される(co_signal_post の使用 )

Page 14: Chapter6.3 〜6. 5

Signals used in Wait(Read) Mode

待ちモードの場合にシグナルインタフェィス は以下のポートと対応する信号を伴って生成される(co_signal_wait の使用 )

Page 15: Chapter6.3 〜6. 5

6.4 USING HDL SIMULATION TO UNDERSTANDING STREAM PROTOCOLS

Page 16: Chapter6.3 〜6. 5

生成されたストリームインタフェースとその伝達プロトコルを

理解するのに最も簡単な方法はテストベンチの シミュレーション内でそれらを調査することである

Page 17: Chapter6.3 〜6. 5
Page 18: Chapter6.3 〜6. 5

このループは以下のプロトコルに従う1.the_en コントロールラインを low(‘0’ の値 ) にセットする .

2.the_rdy ラインが high になるのを待つ .

3. ストリームの入力の the_data ラインに値を入力する .

4. the_en コントロールラインを high(‘1’ の値 ) にセットする .

  これはストリームに値を読ませるように指示する . 次のクロックエッジの際にストリームは値を読む .

5. クロック境界後に the_en に low をセットする (1 に戻る )

Page 19: Chapter6.3 〜6. 5

6.5 DEBAUGGING THE GENERATED HARDWARE

Page 20: Chapter6.3 〜6. 5

ソフトウェアシミュレーション中では完璧に動作しても

実機のハードウェアでは失敗することがある

生成された HDL をデバッグするのは気落ちしてしまうかもしれないが , 思ったほど悪くない

Page 21: Chapter6.3 〜6. 5

制御フローやサイクルごとの同期について解析するのにハードウェアジェネレータが各プロセスを別々のステートマシンに分けると便利

以下のように低レベル HDL ファイルで宣言される

Page 22: Chapter6.3 〜6. 5

b0 で定義されたブロック

b1,b2 で定義されたブロック

FIR フィルターの初期化処理の部分を表す

FIR フィルターのキールーチンとなる実際にデータストリーム    を処理する内部コードのループをあらわす

Page 23: Chapter6.3 〜6. 5

マシンを動作させるクロックロジックを含む b0s0 は以下のようになる

Page 24: Chapter6.3 〜6. 5

生成された HDL 内のコメントはどのブロックや演算のサイクルに関連付けられたかを特定するのに役立つ

例えば下の同時積和演算はブロック 1, ステージ 1 に 関連付けられている

Page 25: Chapter6.3 〜6. 5
Page 26: Chapter6.3 〜6. 5

C からコンパイルを行なった後のこの段階での ハードウェアシミュレーションの目標は サイクルごとの正確な動作を確認することである

この種のデバッグは特定の問題のエリアに集中するものであるので設計の 1 クロックのみをみていくものである

Impulse C のデザインフローは 3 つのサイクル精度のハードウェアシミュレーションを動作させる手法がある

Page 27: Chapter6.3 〜6. 5

1. 生成された HDL が HDL のテストベンチと組み合わせて

従来の HDL シミュレーターで用いることができる

2. 生成された HDL は正確なサイクルの C のモデルから 変換されたもので , このモデルは untimed な C とリン

ク しているため C のデバッガからふるまいを観測できる .

利点は C 言語でテストベンチが使用可能であるということ

利点はハードウェアシミュレーションが提供する多くの   デバッギングと視覚的な機能が利用できること

Page 28: Chapter6.3 〜6. 5

3. 合成された設計は FPGA のネットリストレベルでシミュレーションすることができる .

タイミングの調整により最高の動作速度を出すのに 効果的な方法である . が シミュレーションに時間がかかり , 合成された設計を 元の C のコードにフィードバックすることが大変難しい .