LoginSignup
11
8

More than 5 years have passed since last update.

各種高位合成ツールが生成するモジュールの外部インターフェース

Last updated at Posted at 2017-03-08

はじめに

ちょっと内輪で必要になったので各種高位合成ツールが生成するモジュールの外部インターフェースをまとめてみました。まだ未完成です。これからいろいろと追加していく予定。

Synthesijer Method Interface

Fig.1 Synthesijer Method Interface

Fig.1 Synthesijer Method Interface


  • 制御は func _req と func _busy の2本のハンドシェイク。
  • func _busy が L の時に func _req を H にすることでメソッド呼び出し(cycle 1)。
  • func _busy が H になった時点で速やかに func _req をL にする(cycle 2)。ただし次のクロックの立ち上がり(cycle 3)まで H でも可。
  • メソッドの引数は func _req が H の時に有効な値を入力(cycle 2)。
  • メソッドの終了は func _busy が H から L に遷移したことで判別する(cycle 6)。
  • メソッドの戻り値は func _busy が H からL に遷移したサイクル(cycle 6)の一つ前のサイクル(cycle 5)で出力されるようだ。
  • cycle 5 でなんらかの信号を出力してくれると、呼び出し側としては1サイクル早くシーケンスを進めることが出来るのにと思わないでもない。

Polyphony Method Interface

Fig.2 Polyphony Method Interface

Fig.2 Polyphony Method Interface


  • 制御は func _ready、 func _valid、 func _accept の3本。
  • func _ready を H にすることでメソッド呼び出し(cycle 1)。
    ただしモジュールが動作中かどうかを示す信号が提供されていないので、メソッド呼び出しに関してハンドシェイクが出来ないのが難点。メソッド実行中に func _ready を H にしても無視される。
  • メソッドの引数は func _ready が H の時に有効な値を入力(cycle 2)。
  • メソッドの戻り値は func _valid が H の時有効(cycle 5〜)
  • メソッドの終了は func _valid が H の時に func _accept を H にした時(cycle 5)。
  • メソッド終了(cycle 5)以降も func _valid は H の状態であることに注意。次のメソッド開始まで H の状態を保つ。

Vivado-HLS Method Interface

Fig.3 Vivado-HLS ap_ctrl_hs Interface (non-pipeline)

Fig.3 Vivado-HLS ap_ctrl_hs Interface (non-pipeline)


  • メソッドの開始は ap_start と ap_ready でハンドシェイク。
    ap_start を H にすることでメソッド開始。ap_ready が H になるまで ap_start は H の状態を保つ。
  • メソッドの引数は ap_start が H の時に有効な値を入力(cycle 1-5)。
  • メソッドの終了は ap_done が H になったことで判別(cycle 5)。
  • メソッドの戻り値は ap_done が H の時有効(cycle 5)。
  • メソッドが動作中は ap_idle は L になる。
  • パイプライン処理で無い場合は、ap_ready が H になるタイミングは ap_done が H になるタイミングと同じ(cycle 5)。
  • パイプライン処理の場合は下の図のようにap_ready が H になるタイミングと ap_done が H になるタイミングがズレる。

Fig.4 Vivado-HLS ap_ctrl_hs Interface (pipeline)

Fig.4 Vivado-HLS ap_ctrl_hs Interface (pipeline)


11
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
8