動作環境
PYNQ-Z1
Windows 10 Pro v1909
Vivado HLS v2019.1
概要
- Vivado HLSでmemcpy()を使った実装でエラーが出る
- Vivado HLS v2019.1
- Vivado HLS v2016.2では出なかったエラー
症状
- FPGA プログラミング大全 Xilinx編 (小林優様)
- 10-4 AXIマスターの描画回路を設計
fillbox.cおよびfillbox_tb.cを用いてHLSでRun C SimulationとRun C Synthesisを行った。
- Run C Simulation : 成功
- Run C Synthesis: エラー (下記)
エラー
エラー1 > ERROR: [HLS 200-70] Synthesizability check failed.
ERROR: [HLS 200-70] Synthesizability check failed.
command 'ap_source' returned error code
while executing
"source C:/ip_200902/fillbox_2019_1_3/fillbox/solution1/csynth.tcl"
invoked from within
"hls::main C:/ip_200902/fillbox_2019_1_3/fillbox/solution1/csynth.tcl"
("uplevel" body line 1)
invoked from within
"uplevel 1 hls::main {*}$args"
(procedure "hls_proc" line 5)
invoked from within
"hls_proc $argv" fillbox:solution1 2020/09/15 20:10:12
エラー2 > memory copy is not supported unless used on bus interface possible
ERROR: [SYNCHK 200-22] ../fillbox_ip/SRC/fillbox.c:32: memory copy is not supported unless used on bus interface possible
cause(s): non-static/non-constant local array with initialization). fillbox:solution1 2020/09/15 20:10:12
エラー3 > unsupported memory access on variable 'vram' which is (or contains) an array with unknown size at compile time.
ERROR: [SYNCHK 200-61] ../fillbox_ip/SRC/fillbox.c:31: unsupported memory access on variable 'vram' which is (or
contains) an array with unknown size at compile time. fillbox:solution1 2020/09/15 20:10:12
v2016.2 > 問題なし
本の掲載時はv2016.2が使われていたようだ。
試しにv2016.2にしたところ、上記のエラーは出なくなった。
Vivadoのバージョンアップ時に上記のチェックを厳しくしたのだろうか。
関連
書いていることを理解するまでは学習が進んでいない。
組み合わせ
- Vivado HLS v2016.2
- fillbox IPの作成
- Vivado v2019.1
- bitstream作成
- XSDK v2019.1
- アプリ作成
上記の組み合わせで高位合成fillboxの実装を確認できた.