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本のデータラインとコントロールラインに よって構成されている Stream and Signal Protocols rdy信号により制御されているストリームのライン --ストリームが演算中にストリームが読み込みまたは書き込みの準備が 出来ていることの指示の生成をrdyラインの上で行う ハンドシェイク制御を許可するための外部から制御され るen信号のストリームのライン Stream and Signal Protocols co-signal-close関数で用いられるeos信号のライン --ストリームの終端を示す アプリケーションのプログラマによって幅が定義された データライン Stream and Signal Protocols rdyがactive システムに接続されたプロセスがデータラインより ストリームからの読み書きを行う en信号を出力 Stream and Signal Protocols シグナルもストリームと同様に動作する シグナルはeosラインを持たない メッセージを送信するための異なった通信規則に従う コントロールラインをもつ シグナルの書き込み処理はブロックされない Stream and Signal Protocols HW-HW間のインタフェースではproducerとconsumerの プロセスはストリームとシグナルのインタフェースを共有する Streams used in Write Mode 書き込みモードの場合にストリームインタフェィスは 以下のポートと対応する信号を伴って生成される (co_stream_open O_WRONLYの使用) Streams used in Read Mode 読み込みモードの場合にストリームインタフェィスは 以下のポートと対応する信号を伴って生成される (co_stream_open O_RDONLYの使用) Signals used in Post(Write) Mode 送信モードの場合にシグナルインタフェィス は以下のポートと対応する信号を伴って生成される (co_signal_postの使用) Signals used in Wait(Read) Mode 待ちモードの場合にシグナルインタフェィス は以下のポートと対応する信号を伴って生成される (co_signal_waitの使用) 6.4 USING HDL SIMULATION TO UNDERSTANDING STREAM PROTOCOLS 生成されたストリームインタフェースとその伝達プロトコルを 理解するのに最も簡単な方法はテストベンチの シミュレーション内でそれらを調査することである このループは以下のプロトコルに従う 1.the_enコントロールラインをlow(‘0’の値)にセットする. 2.the_rdyラインがhighになるのを待つ. 3.ストリームの入力のthe_dataラインに値を入力する. 4. the_enコントロールラインをhigh(‘1’の値)にセットする. これはストリームに値を読ませるように指示する. 次のクロックエッジの際にストリームは値を読む. 5.クロック境界後にthe_enにlowをセットする(1に戻る) 6.5 DEBAUGGING THE GENERATED HARDWARE ソフトウェアシミュレーション中では完璧に動作しても 実機のハードウェアでは失敗することがある 生成されたHDLをデバッグするのは気落ちしてしまうか もしれないが,思ったほど悪くない 制御フローやサイクルごとの同期について解析するのに ハードウェアジェネレータが各プロセスを別々のステート マシンに分けると便利 以下のように低レベルHDLファイルで宣言される b0で定義されたブロック FIRフィルターの初期化処理の部分を表す b1,b2で定義されたブロック FIRフィルターのキールーチンとなる実際にデータストリーム を処理する内部コードのループをあらわす マシンを動作させるクロックロジックを含む b0s0 は以下のようになる 生成されたHDL内のコメントはどのブロックや演算のサ イクルに関連付けられたかを特定するのに役立つ 例えば下の同時積和演算はブロック1,ステージ1に 関連付けられている Cからコンパイルを行なった後のこの段階での ハードウェアシミュレーションの目標は サイクルごとの正確な動作を確認することである この種のデバッグは特定の問題のエリアに集中するも のであるので設計の1クロックのみをみていくものである Impulse Cのデザインフローは3つのサイクル精度のハー ドウェアシミュレーションを動作させる手法がある 1.生成されたHDLがHDLのテストベンチと組み合わせて 従来のHDLシミュレーターで用いることができる 利点はハードウェアシミュレーションが提供する多くの デバッギングと視覚的な機能が利用できること 2.生成されたHDLは正確なサイクルのCのモデルから 変換されたもので,このモデルはuntimedなCとリンク しているためCのデバッガからふるまいを観測できる. 利点はC言語でテストベンチが使用可能であるということ 3.合成された設計はFPGAのネットリストレベルでシミュレー ションすることができる. タイミングの調整により最高の動作速度を出すのに 効果的な方法である. が シミュレーションに時間がかかり,合成された設計を 元のCのコードにフィードバックすることが大変難しい.
© Copyright 2024 ExpyDoc