Vengineerの戯言

人生は短いけど、長いです。人生を楽しみましょう!

Xilinx Vitis の中を調べる(その2)

はじめに

Xilinx Vitis の中を調べるのその2。

今回は、

  • C SIMULATION => Run C Simulation

を実行した時の生成ファイルをみていきます。

C SIMULATION => Run C Simulation で生成されたファイル

solution1 ディレクトリの下に以下のファイルが生成されました。

C SIMULATION => Run C Simulationを実行している最中に、下記のような csim.tcl というファイルも生成されますが、その後、消されています。

tcl ファイルで、このファイルを使って、csim_design コマンドを行っているんですね。。。

############################################################
## This file is generated automatically by Vitis HLS.
## Please DO NOT edit it.
## Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
############################################################
open_project multi_apuint
add_files multi_apuint.cpp
add_files -tb testbench_multi_apuint.cpp
open_solution "solution1" -flow_target vivado
set_part {xc7z010iclg225-1L}
create_clock -period 10 -name default
#source "./multi_apuint/solution1/directives.tcl"
csim_design -quiet

csim ディレクト

csim ディレクトリには、下記の2つのディレクトリが生成されます。

  • build
  • report

build ディレクトの下には、

  • Makefile.rules
  • csim.exe
  • csim.mk
  • obj
    • multi_apuint.d
    • multi_apuint.o
    • testbench_multi_apuint.d
    • testbench_multi_apuint.o
  • run_sim.tcl
  • sim.sh

が生成されます。

csim.exe を生成するためのもののようです。sim.sh の中で、vitis_hls に対して、run_sim.tcl ファイルを読み込んで実行しています。

#!/bin/sh
# ==============================================================
# Vitis HLS - High-Level Synthesis from C, C++ and OpenCL v2022.1 (64-bit)
# Tool Version Limit: 2022.04
# Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.
# ==============================================================
# The next line restarts using autoesl tclsh \
    exec /mnt/usb/XILINX/Vivado/2022.1/Vitis_HLS/2022.1/bin/vitis_hls run_sim.tcl

csim.exe を実行すると、

./csim.exe
multi_out = 0
multi_out = 2
multi_out = 6
multi_out = 12
multi_out = 20
multi_out = 30
multi_out = 42
multi_out = 56
multi_out = 72
multi_out = 90

になりました。

report ディレクトリの下には、

  • _csim.log

が生成されます。_csim.log の内容は、csim.exe を実行したもののようです。

INFO: [SIM 2] *************** CSIM start ***************
INFO: [SIM 4] CSIM will launch GCC as the compiler.
make: 'csim.exe' is up to date.
multi_out = 0
multi_out = 2
multi_out = 6
multi_out = 12
multi_out = 20
multi_out = 30
multi_out = 42
multi_out = 56
multi_out = 72
multi_out = 90
INFO: [SIM 1] CSim done with 0 errors.
INFO: [SIM 3] *************** CSIM finish ***************

vitis_hls run_sim.tcl を実行してみると

vitis_hls run_sim.tcl

****** Vitis HLS - High-Level Synthesis from C, C++ and OpenCL v2022.1 (64-bit)
  **** SW Build 3526262 on Mon Apr 18 15:47:01 MDT 2022
  **** IP Build 3524634 on Mon Apr 18 20:55:01 MDT 2022
    ** Copyright 1986-2022 Xilinx, Inc. All Rights Reserved.

source /mnt/usb/XILINX/Vivado/2022.1/Vitis_HLS/2022.1/scripts/vitis_hls/hls.tcl -notrace
INFO: [HLS 200-10] Running '/mnt/usb/XILINX/Vivado/2022.1/Vitis_HLS/2022.1/bin/unwrapped/lnx64.o/vitis_hls'
INFO: [HLS 200-10] For user 'vengineer' on host 'LAPTOP-HGGR6RPK.localdomain' (Linux_x86_64 version 5.10.60.1-microsoft-standard-WSL2) on Sun Jun 26 13:39:13 JST 2022
INFO: [HLS 200-10] On os Ubuntu 20.04.3 LTS
INFO: [HLS 200-10] In directory '/mnt/c/Users/haray/home/src/vitis/multi_apuint/solution1/csim/build'
Sourcing Tcl script 'run_sim.tcl'
INFO: [HLS 200-1510] Running: source run_sim.tcl
multi_out = 0
multi_out = 2
multi_out = 6
multi_out = 12
multi_out = 20
multi_out = 30
multi_out = 42
multi_out = 56
multi_out = 72
multi_out = 90
INFO: [HLS 200-112] Total CPU user time: 0.43 seconds. Total CPU system time: 0.31 seconds. Total elapsed time: 2.08 seconds; peak allocated memory: 19.297 MB.
INFO: [Common 17-206] Exiting vitis_hls at Sun Jun 26 13:39:13 2022...

おわりに

次回は、

  • C SYNTHESIS => Run C Synthesis

で生成されるファイルをみてみます。