fpgaのコンパイル

さて、gccのインストールとコンパイルがうまく言ったので

gcc-4.4.7 - info-akiron-com’s diary

次はFPGAモジュールのコンパイルをしないとね

 

引数にtest-fpgaと渡すとFPGAモジュールのコンパイルが行えますっと

> make test-fpga
i++ counter.cpp -I/usr/include/c++/4.4.7 -I/usr/include/c++/4.4.7/x86_64-linux-gnu -L/home/jb/intelFPGA_lite/17.1/hls/linux64/lib/dspba/linux64 -v -march=Arria10 -o test-fpga
Target FPGA part name: 10AX115U1F45I1SG
Target FPGA family name: Arria 10
Target FPGA speed grade: -2
Analyzing counter.cpp for testbench generation
Creating x86-64 testbench
Analyzing counter.cpp for hardware generation
Optimizing component(s) and generating Verilog files
Generating cosimulation support
Generating simulation files for components: count
HLS simulation directory: /home/mizutani/intelFPGA_lite/17.1/hls/examples/counter/test-fpga.prj/verification.
HLS Elaborate verification testbench FAILED.
See /home/mizutani/intelFPGA_lite/17.1/hls/examples/counter/test-fpga.prj/debug.log for details.
Error: Cosim testbench elaboration failed.

Makefile:52: ターゲット 'test-fpga' のレシピで失敗しました
make: *** [test-fpga] エラー 1

 

 ありゃまたエラー、もうこんなのは慣れっこです

よく見るとFPGAがArria 10になってる

Makefileを修正して50行を変更

元: test-fpga: CXXFLAGS := $(CXXFLAGS) $(HLS_CXX_FLAGS) -march=Arria10 -o test-fpga


直:test-fpga: CXXFLAGS := $(CXXFLAGS) $(HLS_CXX_FLAGS) -march=CycloneV -o test-fpga

さあmakeしよう

> make test-fpga
i++ counter.cpp -I/usr/include/c++/4.4.7 -I/usr/include/c++/4.4.7/x86_64-linux-gnu -L/home/jb/intelFPGA_lite/17.1/hls/linux64/lib/dspba/linux64 -v -march=CycloneV -o test-fpga
Target FPGA part name: 5CEFA9F23I7
Target FPGA family name: Cyclone V
Target FPGA speed grade: -8
Analyzing counter.cpp for testbench generation
Creating x86-64 testbench
Analyzing counter.cpp for hardware generation
Optimizing component(s) and generating Verilog files
Generating cosimulation support
Generating simulation files for components: count
HLS simulation directory: /home/mizutani/intelFPGA_lite/17.1/hls/examples/counter/test-fpga.prj/verification.
HLS Elaborate verification testbench FAILED.
See /home/mizutani/intelFPGA_lite/17.1/hls/examples/counter/test-fpga.prj/debug.log for details.
Error: Cosim testbench elaboration failed.

Makefile:52: ターゲット 'test-fpga' のレシピで失敗しました
make: *** [test-fpga] エラー 1

やっぱりエラー・・・

うん、これは予想できてた

まあデバイスは変更できたみたいだね

昔はこんな長ったらしい(笑)英語が出てきたらほっといたんだけど

ちゃんと読んで見ると、debug.logに詳細が書いてるよんって事なので

見てみると1057行に

# -- Compiling module tb
#
# Top level modules:
# tb
# End time: 16:43:41 on Mar 29,2018, Elapsed time: 0:00:00
# Errors: 0, Warnings: 0

 

と、書かれてる

ここまではエラーがない

その次にエラーコードが出てる,vsim を実行した時に出てる様だ

# ** Fatal: ** Error: (vsim-3827) Could not compile 'export_tramp.so': cmd = '/usr/bin/gcc -shared -fPIC -m32 -B/usr/lib32 -g -I. -I"/home/mizutani/intelFPGA_lite/17.1/modelsim_ase/include" -I"/home/mizutani/intelFPGA_lite/17.1/modelsim_ase/../oem/include" -o "/tmp/mizutani@ubuntu_dpi_8326/linuxpe_gcc-4.4.7/export_tramp.so" "/tmp/mizutani@ubuntu_dpi_8326/linuxpe_gcc-4.4.7/export_tramp.S"'
# (vsim-50) A call to system(/usr/bin/gcc -shared -fPIC -m32 -B/usr/lib32 -g -I. -I"/home/mizutani/intelFPGA_lite/17.1/modelsim_ase/include" -I"/home/mizutani/intelFPGA_lite/17.1/modelsim_ase/../oem/include" -o "/tmp/mizutani@ubuntu_dpi_8326/linuxpe_gcc-4.4.7/export_tramp.so" "/tmp/mizutani@ubuntu_dpi_8326/linuxpe_gcc-4.4.7/export_tramp.S" >'/tmp/questatmp.weSnfG' 2>&1) returned error code '1'.

 

調べたら、Modelsimにはエラーコードの内容を教えてくれるコマンドverrorと言うのがあるので、タイプする

verror 3827

# vsim Message # 3827:
# ModelSim automatically generates and compiles "glue" code for exported
# SystemVerilog DPI tasks and functions. The compilation of the generated
# code failed. See the error message text for clues to the problem.

えーっと

verror 3827

# ヴイシム めっせーじ # 3827:
# モデルシム 自動的に 生成してコンパイル "グルー" コード 
# SystemVerilog DPI タスクと関数を取り出す?. コード生成には失敗したです
# 手がかりが欲しければ、エラーメッセージをみてね

って事はエラーメッセージに戻るのか・・・

export_tramp.soのコンパイルに失敗してる・・

またCコードの解析か・・・

ハードウェア屋さんなのにな・・・