Vivado HLSのチュートリアルを進めていこう。次はInterface Synthesis(Chapter-4)だ。
ソースコードのシミュレーション(Cレベル)
まずは、Cソースコードでシミュレーションをしてみる。
vivado_hls -f run_hls.tcl ... Generating csim.exe 10+20+30=60 20+30+40=90 30+40+50=120 40+50+60=150 50+60+70=180 ----------Pass!------------ @I [SIM-1] CSim done with 0 errors.
次に、GUIを立ち上げて、プロジェクトを確認する。
vivado_hls -p adders_prj
まずは、adder.cを開く。 あれ、良く見てみると既にプラグマが付加されている??
int adders(int in1, int in2, int in3) { #pragma HLS INTERFACE ap_ctrl_none port=return // Prevent IO protocols on all input ports #pragma HLS INTERFACE ap_none port=in3 #pragma HLS INTERFACE ap_none port=in2 #pragma HLS INTERFACE ap_none port=in1 ...
次に、[Solution]→[Run C Synthesis]→[Active Solution]を選択する。
合成の結果から、[Interface]を参照してみよう。
やはり、信号が削除されている。では、このプラグマを除去するとどうなるだろう?
int adders(int in1, int in2, int in3) { // #pragma HLS INTERFACE ap_ctrl_none port=return // Prevent IO protocols on all input ports #pragma HLS INTERFACE ap_none port=in3 #pragma HLS INTERFACE ap_none port=in2 #pragma HLS INTERFACE ap_none port=in1 ...
インタフェースが変更された。