Vitis HLS 2023.2 (本当は統合されたので Vitis 2023.2 を使用しているが高位合成ということで、ご勘弁願いたい)で AXI4-Lite インターフェースのレジスタを生成したいということで、前回は、median_reg.cpp と median_reg_tb.cpp を貼って、C シミュレーションと C コードの合成を行った。今回は、C/RTL 協調シミュレーションと Package, Implementation を行った。
C/RTL 協調シミュレーションを行う。
左の VITIS COMPONENT ウインドウの median_reg -> Settings -> hls_config.cfg をクリックし、C/RTL Cosimulation の trace_level を all に設定した。
C/RTL 協調シミュレーションが終了した。
FLOW ウインドウの C/RTL COSIMULATION -> REPORTS -> Cosimulation をクリックして、レポートを表示した。
レイテンシは 1 クロックだった。
C/RTL 協調シミュレーションの波形を確認する。
FLOW ウインドウの C/RTL COSIMULATION -> REPORTS -> Wave Viewer をクリックした。
なお、s_axi_control_WDATA と col_size, row_size 信号は十進数に変換してある。
FLOW -> PACKAGE -> Run をクリックして、Package を行った。
Summary を示す。
median_reg/median_reg/hls/impl/ip ディレクトリに xilinx_com_hls_median_reg_1_0.zip が生成された。
hls_config.cfg をクリックし、Implementation の flow はデフォルトで Run full implementation (RTL synthesis, place and routte) に設定されていた。これで問題無い。
FLOW -> IMPLEMENTATION -> Run をクリックした。
Implementation が終了し、成功した。
FLOW -> IMPLEMENTATION -> Place and Route をクリックした。
CP achieved post-implementation の値は、1.529 ns で全く問題ない。