はじめに
Xilinx Vitis の中を調べるのその4。
今回は、
- C/RTL COSIMULATION => Run Cosimulation
を実行した時の生成ファイルをみていきます。
C/RTL COSIMULATION => Run Cosimulation で生成されたファイル
- sim (ディレクトリ)
sim ディレクトリの下には、下記の6個のディレクトリが生成されました。その6つのディレクリの下にもいろいろと生成されています。
- autowrap
- report
- tv/rtl.multi_apuint.autotvout_multi_out.dat
- verilog => これに関しては次回
- wrapc
- wrapc_pc
autowrap
下記のように2つのディレクタの下にいろいろなファイルがあります。systemc ディレクトリには、SystemCを使ったコードではなく、AutoESLのAutoPiloto内で使われているコードのようです。
- systemc/apatb_multi_apuint.cpp
- systemc/apatb_multi_apuint.h
- systemc/apatb_multi_apuint_ir.ll
- testbench/multi_apuint.cpp_pre.cpp
- testbench/multi_apuint.cpp_pre.cpp.tb.cpp
- testbench/tb.status.tcl
- testbench/testbench_multi_apuint.cpp_pre.cpp
- testbench/testbench_multi_apuint.cpp_pre.cpp.tb.cpp
report
report ディレクトには、レポートファイルがストアされています。
- report/multi_apuint_cosim.rpt
tv
tv ディレクトリは、cdatafile ディレクトリの下に下記のような5つのファイルが生成されました。また、rtldatafile ディレクトリには1つのファイルが生成されました。
cdatafile:
- c.multi_apuint.autotvin_multi_in0.dat
- c.multi_apuint.autotvin_multi_in1.dat
- c.multi_apuint.autotvin_multi_out.dat
- c.multi_apuint.autotvout_multi_out.dat
- ref.tcl
rtldatafile
- rtl.multi_apuint.autotvout_multi_out.dat
wrapc と wrapc_pc
wrapc と wrapc_pcディレクトりでは、同じファイルで、wrapc の obj ディレクトリとsc0.log/cosim.tv.exe/cosim.tv.mk 、wrapc_pc ディレクトリのrun_xsim.log/cosim.pc.exe/cosim.pc.mkの違いぐらいのようです。
wrapc
- AESL_pkg.h
- Makefile.rules
- apatb_multi_apuint.cpp
- apatb_multi_apuint.h
- apatb_multi_apuint_ir.ll
- cosim.tv.exe
- cosim.tv.mk
- multi_apuint.cpp_pre.cpp.tb.cpp
- obj
- sc0.log
- testbench_multi_apuint.cpp_pre.cpp.tb.cpp
wrapc_pc
- AESL_pkg.h
- Makefile.rules
- apatb_multi_apuint.cpp
- apatb_multi_apuint.h
- apatb_multi_apuint_ir.ll
- cosim.pc.exe
- cosim.pc.mk
- run_xsim.log
- multi_apuint.cpp_pre.cpp.tb.cpp
- testbench_multi_apuint.cpp_pre.cpp.tb.cpp
sc0.log ファイルは、cosim.tv.exe の生成時のログファイル。make -f cosim.tv.mk の出力結果と同じです。なお、LD_LIBRARY_PATHに、${VITIS_HOME}/lib/lnx64.o を追加しないと、libsqlite3.28.0.so が無いと怒られます。また、LD_LIBRARY_PATH に、/usr/lib/x85_64-linux-gnu を追加しないと、crt1.o と crti.o が無いと怒られます。
make -f cosim.tv.mk Build using "/mnt/usb/XILINX/Vivado/2022.1/Vitis_HLS/2022.1/tps/lnx64/gcc-8.3.0/bin/g++" Compiling testbench_multi_apuint.cpp_pre.cpp.tb.cpp Compiling apatb_multi_apuint.cpp Compiling multi_apuint.cpp_pre.cpp.tb.cpp Compiling apatb_multi_apuint_ir.ll Generating cosim.tv.exe
このコマンドを実行すると、obj ディレクトリが生成され、ビルド時の中間ファイルが出力されます。
- apatb_multi_apuint.d
- apatb_multi_apuint_ir.o
- testbench_multi_apuint.cpp_pre.cpp.tb.o
- apatb_multi_apuint.o
- multi_apuint.cpp_pre.cpp.tb.o
run_xsim.log ファイルは、C/RTL cosimulation の実行ログファイルです。最初に csim.pc.exe ファイルを実行し、その後に、xsim を実行しています。 xsim を実行するためのディレクトリが verilog になります。