{"id":463,"date":"2022-05-18T19:30:00","date_gmt":"2022-05-18T12:30:00","guid":{"rendered":"https:\/\/dgway.com\/blog_E\/?p=463"},"modified":"2022-05-19T07:39:09","modified_gmt":"2022-05-19T00:39:09","slug":"003-from-rtl-ip-core-to-rtl-kernel-with-host-application-demo","status":"publish","type":"post","link":"https:\/\/dgway.com\/blog_E\/2022\/05\/18\/003-from-rtl-ip-core-to-rtl-kernel-with-host-application-demo\/","title":{"rendered":"#003 \u2013 From RTL IP core to RTL Kernel with Host Application demo"},"content":{"rendered":"\n<p><strong>For Turnkey Accelerator System (TKAS-D2101) with Alveo U250 Card and Xilinx Vitis\u2122 Unified Software Platform 2021.1<\/strong><\/p>\n\n\n\n<p>Based on Xilinx\u2019s Vitis\u2122 Application Acceleration Development Flow Tutorials: <a href=\"https:\/\/github.com\/Xilinx\/Vitis-Tutorials\/tree\/2021.1\/Hardware_Acceleration\/Design_Tutorials\/05-bottom_up_rtl_kernel\">bottom_up_rtl_kernel<\/a><\/p>\n\n\n\n<p>This tutorial introduces a bottom-up Vitis-based RTL kernel construct and wrap-up process, as well as the host-kernel interaction with <a href=\"https:\/\/xilinx.github.io\/XRT\/\">Xilinx Runtime library (XRT)<\/a>. All the steps in this tutorial use the command-line interface, except those needed to view waveform or system diagram.<br><\/p>\n\n\n\n<p>This tutorial uses an example design to illustrate the relevant concept and steps. The following image shows the block diagram of this design. It is a simple AES accelerator design and comprises two kernels, krnl_aes and krnl_cbc. The krnl_aes kernel is the core AES computation core with AXI streams slave and master ports. The krnl_cbc kernel handles the host-kernel data exchange, and the implementation of AES-ECB and AES-CBD modes along with the krnl_aes module.<\/p>\n\n\n\n<p class=\"has-large-font-size\"><strong>Step by Step to run on TKAS-D2101<\/strong><\/p>\n\n\n\n<h1 class=\"has-medium-font-size wp-block-heading\">Set enviroment<\/h1>\n\n\n\n<p><code>source \/tools\/Xilinx\/Vitis\/2021.1\/settings64.sh<br>source \/opt\/xilinx\/xrt\/setup.sh<\/code><\/p>\n\n\n\n<h1 class=\"has-medium-font-size wp-block-heading\">Goto working folder from example #001<\/h1>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"778\" height=\"161\" src=\"https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2022\/05\/image.png\" alt=\"\" class=\"wp-image-464\" srcset=\"https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2022\/05\/image.png 778w, https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2022\/05\/image-300x62.png 300w, https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2022\/05\/image-768x159.png 768w\" sizes=\"auto, (max-width: 778px) 100vw, 778px\" \/><\/figure>\n\n\n\n<p class=\"has-medium-font-size\"><strong>Additional requirements for Ubuntu<\/strong><\/p>\n\n\n\n<p><code>sudo apt install libssl-dev<\/code><\/p>\n\n\n\n<p class=\"has-medium-font-size\"><strong>AES HDL(Verilog) &amp; Simulation<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"953\" height=\"264\" src=\"https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2022\/05\/image-1.png\" alt=\"\" class=\"wp-image-465\" srcset=\"https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2022\/05\/image-1.png 953w, https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2022\/05\/image-1-300x83.png 300w, https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2022\/05\/image-1-768x213.png 768w\" sizes=\"auto, (max-width: 953px) 100vw, 953px\" \/><\/figure>\n\n\n\n<p class=\"has-medium-font-size\"><strong>Run make script to simulate<\/strong><\/p>\n\n\n\n<p>cd ~\/aes<br>make runsim<\/p>\n\n\n\n<p class=\"has-medium-font-size\"><strong>Simulation result<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"517\" src=\"https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2022\/05\/image-2-1024x517.png\" alt=\"\" class=\"wp-image-466\" srcset=\"https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2022\/05\/image-2-1024x517.png 1024w, https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2022\/05\/image-2-300x152.png 300w, https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2022\/05\/image-2-768x388.png 768w, https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2022\/05\/image-2.png 1196w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>The simulation is executed with 256 input words (128-bit) along with pre-defined KEY. You can modified the simulation options in the ~\/aes\/runsim_aes_xsim.sh file. After simulation finishes, a waveform dump file called <strong>work.tb_aes.wdb <\/strong>is generated, in which you can view the interface waveform.<\/p>\n\n\n\n<p class=\"has-medium-font-size\"><strong>Open WDB wavform dump file from console<\/strong><\/p>\n\n\n\n<p>Create TCL script file name &#8220;open_waveform.tcl&#8221; with content below<\/p>\n\n\n\n<p><code>current_fileset<\/code><br><code>open_wave_database work.tb_aes.wdb<\/code><\/p>\n\n\n\n<p>Run vivado tcl script to open WDB waveform<\/p>\n\n\n\n<p><code>vivado -source open_waveform.tcl<\/code><\/p>\n\n\n\n<p>Waveform windows<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"457\" src=\"https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2022\/05\/image-3-1024x457.png\" alt=\"\" class=\"wp-image-467\" srcset=\"https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2022\/05\/image-3-1024x457.png 1024w, https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2022\/05\/image-3-300x134.png 300w, https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2022\/05\/image-3-768x343.png 768w, https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2022\/05\/image-3-1536x686.png 1536w, https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2022\/05\/image-3.png 1626w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"has-medium-font-size\"><strong>Create RTL module and pack into Vivado\u00ae IP and Vitis Kernel (XO) file<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Go to folder &#8220;~\/alveo_examples\/Vitis-Tutorials\/Hardware_Acceleration\/Design_Tutorials\/05-bottom_up_rtl_kernel\/krnl_aes&#8221;<\/li><li>Make change in Makefile to match with your Alveo card and tool version 2021.1<br>Here are summary changed in Makefile.<br>Line 41-42<br><strong>#PART := xcu200-fsgd2104-2-e<\/strong><br><strong>PART := xcu250-figd2104-2L-e<\/strong><br>Line 48-49<br><strong>#PLATFORM := xilinx_u200_xdma_201830_2<\/strong><br><strong>PLATFORM := xilinx_u250_gen3x16_xdma_3_1_202020_1<\/strong><\/li><\/ul>\n\n\n\n<p>Note: no need and do not set clock constrain in &#8220;krnl_aes_test.xdc&#8221; file for Tool versions 2021.1, otherwise implementation error like below will occur.<\/p>\n\n\n\n<p class=\"has-medium-font-size\"><strong>Read this note and look inside Makefile &amp; each TCL scripts to get idea for your own customization<\/strong><\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/Xilinx\/Vitis-Tutorials\/blob\/2021.1\/Hardware_Acceleration\/Design_Tutorials\/05-bottom_up_rtl_kernel\/doc\/krnl_aes.md\">https:\/\/github.com\/Xilinx\/Vitis-Tutorials\/blob\/2021.1\/Hardware_Acceleration\/Design_Tutorials\/05-bottom_up_rtl_kernel\/doc\/krnl_aes.md<\/a><\/p>\n\n\n\n<p class=\"has-medium-font-size\"><strong>IP Generation<\/strong><\/p>\n\n\n\n<p>IP Generation by Makefile and gen_ip.tcl script.&nbsp; Please a look inside these files to see how it works<\/p>\n\n\n\n<p><code>make gen_ip<\/code><\/p>\n\n\n\n<p class=\"has-medium-font-size\"><strong>IP generation output message<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted has-small-font-size\">tkas-user@tkas-d2101:~\/alveo_examples\/Vitis-Tutorials\/Hardware_Acceleration\/Desiggn_Tugn_Tugn_Tgngn_Tutgn_Tutggn_gn_Tggngn_Tutorials\/05-bottom_up_rtl_kernel\/krnl_aes$ make gen_ip\nrm -rf ip_generation; mkdir ip_generation; vivado -mode batch -source .\/gen_ip.tcl -tclargs xcu250-figd2104-2L-e\n\n****** Vivado v2021.1 (64-bit)\n  **** SW Build 3247384 on Thu Jun 10 19:36:07 MDT 2021\n  **** IP Build 3246043 on Fri Jun 11 00:30:35 MDT 2021\n    ** Copyright 1986-2021 Xilinx, Inc. All Rights Reserved.\n\nsource .\/gen_ip.tcl\n# set_part [lindex $argv 0]\nINFO: [Coretcl 2-1500] The part has been set to 'xcu250-figd2104-2L-e' for the current project only. Run set_part -help for more details. To evaluate different speed grades in the current design, use the set_speed_grade command, or use the open_checkpoint -part command to change the part used by an existing checkpoint design.\n# create_ip -name clk_wiz \\\n#           -vendor xilinx.com \\\n#           -library ip \\\n#           -version 6.0 \\\n#           -module_name clk_gen \\\n#           -dir .\/ip_generation\nINFO: [IP_Flow 19-234] Refreshing IP repositories\nINFO: [IP_Flow 19-1704] No user IP repositories specified\nINFO: [IP_Flow 19-2313] Loaded Vivado IP repository '\/tools\/Xilinx\/Vivado\/2021.1\/data\/ip'.\ncreate_ip: Time (s): cpu = 00:00:07 ; elapsed = 00:00:08 . Memory (MB): peak = 2972.422 ; gain = 416.820 ; free physical = 25643 ; free virtual = 36540\n# set_property -dict [list CONFIG.USE_PHASE_ALIGNMENT {false} \\\n#                          CONFIG.PRIM_SOURCE {No_buffer} \\\n#                          CONFIG.PRIM_IN_FREQ {300.000} \\\n#                          CONFIG.CLKOUT1_REQUESTED_OUT_FREQ {400.000} \\\n#                          CONFIG.USE_RESET {false} \\\n#                          CONFIG.CLKOUT1_DRIVES {Buffer} \\\n#                          CONFIG.RESET_PORT {resetn}] \\\n#              [get_ips clk_gen]\n# generate_target all [get_files  .\/ip_generation\/clk_gen\/clk_gen.xci]\nINFO: [IP_Flow 19-1686] Generating 'Instantiation Template' target for IP 'clk_gen'...\nINFO: [IP_Flow 19-1686] Generating 'Synthesis' target for IP 'clk_gen'...\nINFO: [IP_Flow 19-1686] Generating 'Simulation' target for IP 'clk_gen'...\nINFO: [IP_Flow 19-1686] Generating 'Implementation' target for IP 'clk_gen'...\nINFO: [IP_Flow 19-1686] Generating 'Change Log' target for IP 'clk_gen'...\n# create_ip -name axis_clock_converter \\\n#           -vendor xilinx.com \\\n#           -library ip \\\n#           -version 1.1 \\\n#           -module_name axis_clock_converter \\\n#           -dir .\/ip_generation\n# set_property -dict [list CONFIG.TDATA_NUM_BYTES {16} \\\n#                          CONFIG.IS_ACLK_ASYNC {1} \\\n#                          CONFIG.SYNCHRONIZATION_STAGES {3}] \\\n#              [get_ips axis_clock_converter]\n# generate_target all [get_files  .\/ip_generation\/axis_clock_converter\/axis_clock_converter.xci]\nINFO: [IP_Flow 19-1686] Generating 'Instantiation Template' target for IP 'axis_clock_converter'...\nINFO: [IP_Flow 19-1686] Generating 'Synthesis' target for IP 'axis_clock_converter'...\nWARNING: [IP_Flow 19-4994] Overwriting existing constraint file '\/home\/tkas-user\/alveo_examples\/Vitis-Tutorials\/Hardware_Acceleration\/Design_Tutorials\/05-bottom_up_rtl_kernel\/krnl_aes\/ip_generation\/axis_clock_converter\/axis_clock_converter_ooc.xdc'\nINFO: [IP_Flow 19-1686] Generating 'Simulation' target for IP 'axis_clock_converter'...\nINFO: [IP_Flow 19-1686] Generating 'Change Log' target for IP 'axis_clock_converter'...\n# create_ip -name axi_clock_converter \\\n#           -vendor xilinx.com \\\n#           -library ip \\\n#           -version 2.1 \\\n#           -module_name axi_clock_converter \\\n#           -dir .\/ip_generation\n# set_property -dict [list CONFIG.PROTOCOL {AXI4LITE} \\\n#                          CONFIG.ADDR_WIDTH {12} \\\n#                          CONFIG.SYNCHRONIZATION_STAGES {3} \\\n#                          CONFIG.DATA_WIDTH {32} \\\n#                          CONFIG.ID_WIDTH {0} \\\n#                          CONFIG.AWUSER_WIDTH {0} \\\n#                          CONFIG.ARUSER_WIDTH {0} \\\n#                          CONFIG.RUSER_WIDTH {0} \\\n#                          CONFIG.WUSER_WIDTH {0} \\\n#                          CONFIG.BUSER_WIDTH {0}] \\\n#              [get_ips axi_clock_converter]\n# generate_target all [get_files .\/ip_generation\/axi_clock_converter\/axi_clock_converter.xci]\nINFO: [IP_Flow 19-1686] Generating 'Instantiation Template' target for IP 'axi_clock_converter'...\nINFO: [IP_Flow 19-1686] Generating 'Synthesis' target for IP 'axi_clock_converter'...\nWARNING: [IP_Flow 19-4994] Overwriting existing constraint file '\/home\/tkas-user\/alveo_examples\/Vitis-Tutorials\/Hardware_Acceleration\/Design_Tutorials\/05-bottom_up_rtl_kernel\/krnl_aes\/ip_generation\/axi_clock_converter\/axi_clock_converter_ooc.xdc'\nINFO: [IP_Flow 19-1686] Generating 'Simulation' target for IP 'axi_clock_converter'...\nINFO: [IP_Flow 19-5611] Unable to find an associated reset port for the interface 'S_AXI'. A default connection has been created.\nINFO: [IP_Flow 19-5611] Unable to find an associated reset port for the interface 'M_AXI'. A default connection has been created.\nINFO: [IP_Flow 19-1686] Generating 'Implementation' target for IP 'axi_clock_converter'...\nINFO: [IP_Flow 19-1686] Generating 'Change Log' target for IP 'axi_clock_converter'...\n# create_ip -name axi4stream_vip \\\n#           -vendor xilinx.com \\\n#           -library ip \\\n#           -version 1.1 \\\n#           -module_name axis_vip_mst \\\n#           -dir .\/ip_generation\n# set_property -dict [list CONFIG.INTERFACE_MODE {MASTER} \\\n#                          CONFIG.TDATA_NUM_BYTES {16}] \\\n#              [get_ips axis_vip_mst]\n# generate_target all [get_files  .\/ip_generation\/axis_vip_mst\/axis_vip_mst.xci]\nINFO: [IP_Flow 19-1686] Generating 'Instantiation Template' target for IP 'axis_vip_mst'...\nINFO: [IP_Flow 19-1686] Generating 'Synthesis' target for IP 'axis_vip_mst'...\nINFO: [IP_Flow 19-1686] Generating 'Simulation' target for IP 'axis_vip_mst'...\nINFO: [IP_Flow 19-1686] Generating 'Change Log' target for IP 'axis_vip_mst'...\n# create_ip -name axi4stream_vip \\\n#           -vendor xilinx.com \\\n#           -library ip \\\n#           -version 1.1 \\\n#           -module_name axis_vip_slv \\\n#           -dir .\/ip_generation\n# set_property -dict [list CONFIG.INTERFACE_MODE {SLAVE} \\\n#                          CONFIG.TDATA_NUM_BYTES {16}] \\\n#              [get_ips axis_vip_slv]\n# generate_target all [get_files  .\/ip_generation\/axis_vip_slv\/axis_vip_slv.xci]\nINFO: [IP_Flow 19-1686] Generating 'Instantiation Template' target for IP 'axis_vip_slv'...\nINFO: [IP_Flow 19-1686] Generating 'Synthesis' target for IP 'axis_vip_slv'...\nINFO: [IP_Flow 19-1686] Generating 'Simulation' target for IP 'axis_vip_slv'...\nINFO: [IP_Flow 19-1686] Generating 'Change Log' target for IP 'axis_vip_slv'...\n# create_ip -name axi_vip \\\n#           -vendor xilinx.com \\\n#           -library ip \\\n#           -version 1.1 \\\n#           -module_name axi_vip_mst \\\n#           -dir .\/ip_generation\n# set_property -dict [list CONFIG.INTERFACE_MODE {MASTER} \\\n#                          CONFIG.PROTOCOL {AXI4LITE} \\\n#                          CONFIG.SUPPORTS_NARROW {0} \\\n#                          CONFIG.HAS_BURST {0} \\\n#                          CONFIG.HAS_LOCK {0} \\\n#                          CONFIG.HAS_CACHE {0} \\\n#                          CONFIG.HAS_REGION {0} \\\n#                          CONFIG.HAS_QOS {0} \\\n#                          CONFIG.HAS_PROT {0} \\\n#                          CONFIG.HAS_WSTRB {1}] \\\n#              [get_ips axi_vip_mst]\n# generate_target all [get_files  .\/ip_generation\/axi_vip_mst\/axi_vip_mst.xci]\nINFO: [IP_Flow 19-1686] Generating 'Instantiation Template' target for IP 'axi_vip_mst'...\nINFO: [IP_Flow 19-1686] Generating 'Synthesis' target for IP 'axi_vip_mst'...\nINFO: [IP_Flow 19-1686] Generating 'Simulation' target for IP 'axi_vip_mst'...\nINFO: [IP_Flow 19-1686] Generating 'Change Log' target for IP 'axi_vip_mst'...\nINFO: [Common 17-206] Exiting Vivado at Sun Mar 20 13:36:28 2022...<\/pre>\n\n\n\n<p class=\"has-medium-font-size\"><strong>Pack the Design into Vivado IP and Vitis Kernel (.XO file)<\/strong><\/p>\n\n\n\n<p><code>make pack_kernel<\/code><\/p>\n\n\n\n<p class=\"has-medium-font-size\"><strong>Output message<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted has-small-font-size\">tkas-user@tkas-d2101:~\/alveo_examples\/Vitis-Tutorials\/Hardware_Acceleration\/Design_Tutorials\/05-bottom_up_rtl_kernel\/krnl_aes$ make pack_kernel\nrm -rf vivado_pack_krnl_project; mkdir vivado_pack_krnl_project; cd vivado_pack_krnl_project; vivado -mode batch -source ..\/pack_kernel.tcl -tclargs xcu250-figd2104-2L-e\n\n****** Vivado v2021.1 (64-bit)\n  **** SW Build 3247384 on Thu Jun 10 19:36:07 MDT 2021\n  **** IP Build 3246043 on Fri Jun 11 00:30:35 MDT 2021\n    ** Copyright 1986-2021 Xilinx, Inc. All Rights Reserved.\n\nsource ..\/pack_kernel.tcl\n# create_project krnl_aes .\/krnl_aes -part [lindex $argv 0]\n# add_files -norecurse \\\n#        {                                    \\\n#         ..\/rtl\/aes_wrapper.sv               \\\n#         ..\/rtl\/axis_interface.sv            \\\n#         ..\/rtl\/krnl_aes_axi_ctrl_slave.v    \\\n#         ..\/rtl\/krnl_aes.sv                  \\\n#         ..\/..\/aes\/rtl\/AesControl.v          \\\n#         ..\/..\/aes\/rtl\/AesDecipher.v         \\\n#         ..\/..\/aes\/rtl\/AesEncipher.v         \\\n#         ..\/..\/aes\/rtl\/AesInvMixColumns.v    \\\n#         ..\/..\/aes\/rtl\/AesInvShiftRows.v     \\\n#         ..\/..\/aes\/rtl\/AesInvSubBytes.v      \\\n#         ..\/..\/aes\/rtl\/AesKeyExpansion.v     \\\n#         ..\/..\/aes\/rtl\/AesMixColumns.v       \\\n#         ..\/..\/aes\/rtl\/AesShiftRows.v        \\\n#         ..\/..\/aes\/rtl\/AesSubBytes.v         \\\n#         ..\/..\/aes\/rtl\/Aes.v                 \\\n#         ..\/..\/aes\/rtl\/SPSR.v                \\\n#         ..\/ip_generation\/clk_gen\/clk_gen.xci      \\\n#         ..\/ip_generation\/axi_clock_converter\/axi_clock_converter.xci \\\n#         ..\/ip_generation\/axis_clock_converter\/axis_clock_converter.xci \\\n#         ..\/krnl_aes.xdc                     \\\n#        }\nINFO: [IP_Flow 19-234] Refreshing IP repositories\nINFO: [IP_Flow 19-1704] No user IP repositories specified\nINFO: [IP_Flow 19-2313] Loaded Vivado IP repository '\/tools\/Xilinx\/Vivado\/2021.1\/data\/ip'.\n# update_compile_order -fileset sources_1\n# ipx::package_project -root_dir .\/krnl_aes_ip -vendor xilinx.com -library user -taxonomy \/UserIP -import_files -set_current true\nWARNING: [IP_Flow 19-5101] Packaging a component with a SystemVerilog top file is not fully supported. Please refer to UG1118 'Creating and Packaging Custom IP'.\nINFO: [IP_Flow 19-5107] Inferred bus interface 'axis_mst0' of definition 'xilinx.com:interface:axis:1.0' (from Xilinx Repository).\nINFO: [IP_Flow 19-5107] Inferred bus interface 'axis_mst1' of definition 'xilinx.com:interface:axis:1.0' (from Xilinx Repository).\nINFO: [IP_Flow 19-5107] Inferred bus interface 'axis_mst2' of definition 'xilinx.com:interface:axis:1.0' (from Xilinx Repository).\nINFO: [IP_Flow 19-5107] Inferred bus interface 'axis_mst3' of definition 'xilinx.com:interface:axis:1.0' (from Xilinx Repository).\nINFO: [IP_Flow 19-5107] Inferred bus interface 'axis_slv0' of definition 'xilinx.com:interface:axis:1.0' (from Xilinx Repository).\nINFO: [IP_Flow 19-5107] Inferred bus interface 'axis_slv1' of definition 'xilinx.com:interface:axis:1.0' (from Xilinx Repository).\nINFO: [IP_Flow 19-5107] Inferred bus interface 'axis_slv2' of definition 'xilinx.com:interface:axis:1.0' (from Xilinx Repository).\nINFO: [IP_Flow 19-5107] Inferred bus interface 'axis_slv3' of definition 'xilinx.com:interface:axis:1.0' (from Xilinx Repository).\nINFO: [IP_Flow 19-5107] Inferred bus interface 's_axi_control' of definition 'xilinx.com:interface:aximm:1.0' (from Xilinx Repository).\nINFO: [IP_Flow 19-5107] Inferred bus interface 'ap_rst_n' of definition 'xilinx.com:signal:reset:1.0' (from Xilinx Repository).\nINFO: [IP_Flow 19-5107] Inferred bus interface 'ap_clk' of definition 'xilinx.com:signal:clock:1.0' (from Xilinx Repository).\nINFO: [IP_Flow 19-4728] Bus Interface 'ap_rst_n': Added interface parameter 'POLARITY' with value 'ACTIVE_LOW'.\nINFO: [IP_Flow 19-4728] Bus Interface 'ap_clk': Added interface parameter 'ASSOCIATED_RESET' with value 'ap_rst_n'.\nWARNING: [IP_Flow 19-3158] Bus Interface 'axis_mst0': FREQ_HZ bus parameter missing from AXI interface when interface is not associated to a clock.\nWARNING: [IP_Flow 19-3158] Bus Interface 'axis_mst1': FREQ_HZ bus parameter missing from AXI interface when interface is not associated to a clock.\nWARNING: [IP_Flow 19-3158] Bus Interface 'axis_mst2': FREQ_HZ bus parameter missing from AXI interface when interface is not associated to a clock.\nWARNING: [IP_Flow 19-3158] Bus Interface 'axis_mst3': FREQ_HZ bus parameter missing from AXI interface when interface is not associated to a clock.\nWARNING: [IP_Flow 19-3158] Bus Interface 'axis_slv0': FREQ_HZ bus parameter missing from AXI interface when interface is not associated to a clock.\nWARNING: [IP_Flow 19-3158] Bus Interface 'axis_slv1': FREQ_HZ bus parameter missing from AXI interface when interface is not associated to a clock.\nWARNING: [IP_Flow 19-3158] Bus Interface 'axis_slv2': FREQ_HZ bus parameter missing from AXI interface when interface is not associated to a clock.\nWARNING: [IP_Flow 19-3158] Bus Interface 'axis_slv3': FREQ_HZ bus parameter missing from AXI interface when interface is not associated to a clock.\nWARNING: [IP_Flow 19-3158] Bus Interface 's_axi_control': FREQ_HZ bus parameter missing from AXI interface when interface is not associated to a clock.\nWARNING: [IP_Flow 19-3157] Bus Interface 'ap_rst_n': Bus parameter POLARITY is ACTIVE_LOW but port 'ap_rst_n' is not *resetn - please double check the POLARITY setting.\nWARNING: [IP_Flow 19-5661] Bus Interface 'ap_clk' does not have any bus interfaces associated with it.\nINFO: [IP_Flow 19-2181] Payment Required is not set for this core.\nINFO: [IP_Flow 19-2187] The Product Guide file is missing.\n# ipx::infer_bus_interface ap_clk xilinx.com:signal:clock_rtl:1.0 [ipx::current_core]\nINFO: [IP_Flow 19-5107] Inferred bus interface 'ap_clk' of definition 'xilinx.com:signal:clock:1.0' (from TCL Argument).\n# ipx::infer_bus_interface ap_rst_n xilinx.com:signal:reset_rtl:1.0 [ipx::current_core]\nINFO: [IP_Flow 19-5107] Inferred bus interface 'ap_rst_n' of definition 'xilinx.com:signal:reset:1.0' (from TCL Argument).\n# ipx::associate_bus_interfaces -busif s_axi_control  -clock ap_clk [ipx::current_core]\nINFO: [IP_Flow 19-4728] Bus Interface 'ap_clk': Added interface parameter 'ASSOCIATED_BUSIF' with value 's_axi_control'.\n# ipx::associate_bus_interfaces -busif axis_mst0      -clock ap_clk [ipx::current_core]\n# ipx::associate_bus_interfaces -busif axis_mst1      -clock ap_clk [ipx::current_core]\n# ipx::associate_bus_interfaces -busif axis_mst2      -clock ap_clk [ipx::current_core]\n# ipx::associate_bus_interfaces -busif axis_mst3      -clock ap_clk [ipx::current_core]\n# ipx::associate_bus_interfaces -busif axis_slv0      -clock ap_clk [ipx::current_core]\n# ipx::associate_bus_interfaces -busif axis_slv1      -clock ap_clk [ipx::current_core]\n# ipx::associate_bus_interfaces -busif axis_slv2      -clock ap_clk [ipx::current_core]\n# ipx::associate_bus_interfaces -busif axis_slv3      -clock ap_clk [ipx::current_core]\n# ipx::associate_bus_interfaces -clock ap_clk -reset ap_rst_n [ipx::current_core]\n# ipx::add_register CTRL      [ipx::get_address_blocks reg0 -of_objects [ipx::get_memory_maps s_axi_control -of_objects [ipx::current_core]]]\n# ipx::add_register MODE      [ipx::get_address_blocks reg0 -of_objects [ipx::get_memory_maps s_axi_control -of_objects [ipx::current_core]]]\n# ipx::add_register KEY_LEN   [ipx::get_address_blocks reg0 -of_objects [ipx::get_memory_maps s_axi_control -of_objects [ipx::current_core]]]\n# ipx::add_register STATUS    [ipx::get_address_blocks reg0 -of_objects [ipx::get_memory_maps s_axi_control -of_objects [ipx::current_core]]]\n# ipx::add_register KEY_W7    [ipx::get_address_blocks reg0 -of_objects [ipx::get_memory_maps s_axi_control -of_objects [ipx::current_core]]]\n# ipx::add_register KEY_W6    [ipx::get_address_blocks reg0 -of_objects [ipx::get_memory_maps s_axi_control -of_objects [ipx::current_core]]]\n# ipx::add_register KEY_W5    [ipx::get_address_blocks reg0 -of_objects [ipx::get_memory_maps s_axi_control -of_objects [ipx::current_core]]]\n# ipx::add_register KEY_W4    [ipx::get_address_blocks reg0 -of_objects [ipx::get_memory_maps s_axi_control -of_objects [ipx::current_core]]]\n# ipx::add_register KEY_W3    [ipx::get_address_blocks reg0 -of_objects [ipx::get_memory_maps s_axi_control -of_objects [ipx::current_core]]]\n# ipx::add_register KEY_W2    [ipx::get_address_blocks reg0 -of_objects [ipx::get_memory_maps s_axi_control -of_objects [ipx::current_core]]]\n# ipx::add_register KEY_W1    [ipx::get_address_blocks reg0 -of_objects [ipx::get_memory_maps s_axi_control -of_objects [ipx::current_core]]]\n# ipx::add_register KEY_W0    [ipx::get_address_blocks reg0 -of_objects [ipx::get_memory_maps s_axi_control -of_objects [ipx::current_core]]]\n# set_property description    {Control Signals}   [ipx::get_registers CTRL    -of_objects [ipx::get_address_blocks reg0 -of_objects [ipx::get_memory_maps s_axi_control -of_objects [ipx::current_core]]]]\n# set_property address_offset {0x000}             [ipx::get_registers CTRL    -of_objects [ipx::get_address_blocks reg0 -of_objects [ipx::get_memory_maps s_axi_control -of_objects [ipx::current_core]]]]\n# set_property size           {32}                [ipx::get_registers CTRL    -of_objects [ipx::get_address_blocks reg0 -of_objects [ipx::get_memory_maps s_axi_control -of_objects [ipx::current_core]]]]\n# set_property description    {AES working mode}  [ipx::get_registers MODE    -of_objects [ipx::get_address_blocks reg0 -of_objects [ipx::get_memory_maps s_axi_control -of_objects [ipx::current_core]]]]\n# set_property address_offset {0x010}             [ipx::get_registers MODE    -of_objects [ipx::get_address_blocks reg0 -of_objects [ipx::get_memory_maps s_axi_control -of_objects [ipx::current_core]]]]\n# set_property size           {32}                [ipx::get_registers MODE    -of_objects [ipx::get_address_blocks reg0 -of_objects [ipx::get_memory_maps s_axi_control -of_objects [ipx::current_core]]]]\n# set_property description    {AES key length}    [ipx::get_registers KEY_LEN -of_objects [ipx::get_address_blocks reg0 -of_objects [ipx::get_memory_maps s_axi_control -of_objects [ipx::current_core]]]]\n# set_property address_offset {0x018}             [ipx::get_registers KEY_LEN -of_objects [ipx::get_address_blocks reg0 -of_objects [ipx::get_memory_maps s_axi_control -of_objects [ipx::current_core]]]]\n# set_property size           {32}                [ipx::get_registers KEY_LEN -of_objects [ipx::get_address_blocks reg0 -of_objects [ipx::get_memory_maps s_axi_control -of_objects [ipx::current_core]]]]\n# set_property description    {AES engine status} [ipx::get_registers STATUS  -of_objects [ipx::get_address_blocks reg0 -of_objects [ipx::get_memory_maps s_axi_control -of_objects [ipx::current_core]]]]\n# set_property address_offset {0x020}             [ipx::get_registers STATUS  -of_objects [ipx::get_address_blocks reg0 -of_objects [ipx::get_memory_maps s_axi_control -of_objects [ipx::current_core]]]]\n# set_property size           {32}                [ipx::get_registers STATUS  -of_objects [ipx::get_address_blocks reg0 -of_objects [ipx::get_memory_maps s_axi_control -of_objects [ipx::current_core]]]]\n# set_property description    {AES key word 7}    [ipx::get_registers KEY_W7  -of_objects [ipx::get_address_blocks reg0 -of_objects [ipx::get_memory_maps s_axi_control -of_objects [ipx::current_core]]]]\n# set_property address_offset {0x028}             [ipx::get_registers KEY_W7  -of_objects [ipx::get_address_blocks reg0 -of_objects [ipx::get_memory_maps s_axi_control -of_objects [ipx::current_core]]]]\n# set_property size           {32}                [ipx::get_registers KEY_W7  -of_objects [ipx::get_address_blocks reg0 -of_objects [ipx::get_memory_maps s_axi_control -of_objects [ipx::current_core]]]]\n# set_property description    {AES key word 6}    [ipx::get_registers KEY_W6  -of_objects [ipx::get_address_blocks reg0 -of_objects [ipx::get_memory_maps s_axi_control -of_objects [ipx::current_core]]]]\n# set_property address_offset {0x030}             [ipx::get_registers KEY_W6  -of_objects [ipx::get_address_blocks reg0 -of_objects [ipx::get_memory_maps s_axi_control -of_objects [ipx::current_core]]]]\n# set_property size           {32}                [ipx::get_registers KEY_W6  -of_objects [ipx::get_address_blocks reg0 -of_objects [ipx::get_memory_maps s_axi_control -of_objects [ipx::current_core]]]]\n# set_property description    {AES key word 5}    [ipx::get_registers KEY_W5  -of_objects [ipx::get_address_blocks reg0 -of_objects [ipx::get_memory_maps s_axi_control -of_objects [ipx::current_core]]]]\n# set_property address_offset {0x038}             [ipx::get_registers KEY_W5  -of_objects [ipx::get_address_blocks reg0 -of_objects [ipx::get_memory_maps s_axi_control -of_objects [ipx::current_core]]]]\n# set_property size           {32}                [ipx::get_registers KEY_W5  -of_objects [ipx::get_address_blocks reg0 -of_objects [ipx::get_memory_maps s_axi_control -of_objects [ipx::current_core]]]]\n# set_property description    {AES key word 4}    [ipx::get_registers KEY_W4  -of_objects [ipx::get_address_blocks reg0 -of_objects [ipx::get_memory_maps s_axi_control -of_objects [ipx::current_core]]]]\n# set_property address_offset {0x040}             [ipx::get_registers KEY_W4  -of_objects [ipx::get_address_blocks reg0 -of_objects [ipx::get_memory_maps s_axi_control -of_objects [ipx::current_core]]]]\n# set_property size           {32}                [ipx::get_registers KEY_W4  -of_objects [ipx::get_address_blocks reg0 -of_objects [ipx::get_memory_maps s_axi_control -of_objects [ipx::current_core]]]]\n# set_property description    {AES key word 3}    [ipx::get_registers KEY_W3  -of_objects [ipx::get_address_blocks reg0 -of_objects [ipx::get_memory_maps s_axi_control -of_objects [ipx::current_core]]]]\n# set_property address_offset {0x048}             [ipx::get_registers KEY_W3  -of_objects [ipx::get_address_blocks reg0 -of_objects [ipx::get_memory_maps s_axi_control -of_objects [ipx::current_core]]]]\n# set_property size           {32}                [ipx::get_registers KEY_W3  -of_objects [ipx::get_address_blocks reg0 -of_objects [ipx::get_memory_maps s_axi_control -of_objects [ipx::current_core]]]]\n# set_property description    {AES key word 2}    [ipx::get_registers KEY_W2  -of_objects [ipx::get_address_blocks reg0 -of_objects [ipx::get_memory_maps s_axi_control -of_objects [ipx::current_core]]]]\n# set_property address_offset {0x050}             [ipx::get_registers KEY_W2  -of_objects [ipx::get_address_blocks reg0 -of_objects [ipx::get_memory_maps s_axi_control -of_objects [ipx::current_core]]]]\n# set_property size           {32}                [ipx::get_registers KEY_W2  -of_objects [ipx::get_address_blocks reg0 -of_objects [ipx::get_memory_maps s_axi_control -of_objects [ipx::current_core]]]]\n# set_property description    {AES key word 1}    [ipx::get_registers KEY_W1  -of_objects [ipx::get_address_blocks reg0 -of_objects [ipx::get_memory_maps s_axi_control -of_objects [ipx::current_core]]]]\n# set_property address_offset {0x058}             [ipx::get_registers KEY_W1  -of_objects [ipx::get_address_blocks reg0 -of_objects [ipx::get_memory_maps s_axi_control -of_objects [ipx::current_core]]]]\n# set_property size           {32}                [ipx::get_registers KEY_W1  -of_objects [ipx::get_address_blocks reg0 -of_objects [ipx::get_memory_maps s_axi_control -of_objects [ipx::current_core]]]]\n# set_property description    {AES key word 0}    [ipx::get_registers KEY_W0  -of_objects [ipx::get_address_blocks reg0 -of_objects [ipx::get_memory_maps s_axi_control -of_objects [ipx::current_core]]]]\n# set_property address_offset {0x060}             [ipx::get_registers KEY_W0  -of_objects [ipx::get_address_blocks reg0 -of_objects [ipx::get_memory_maps s_axi_control -of_objects [ipx::current_core]]]]\n# set_property size           {32}                [ipx::get_registers KEY_W0  -of_objects [ipx::get_address_blocks reg0 -of_objects [ipx::get_memory_maps s_axi_control -of_objects [ipx::current_core]]]]\n# set_property sdx_kernel true [ipx::current_core]\n# set_property sdx_kernel_type rtl [ipx::current_core]\n# ipx::update_source_project_archive -component [ipx::current_core]\n# ipx::save_core [ipx::current_core]\n# package_xo -force -xo_path ..\/krnl_aes.xo -kernel_name krnl_aes -ctrl_protocol ap_ctrl_hs -ip_directory .\/krnl_aes_ip -output_kernel_xml ..\/krnl_aes.xml\nWARNING: [Vivado 12-4404] The CPU emulation flow in v++ is only supported when using a packaged XO file that contains C-model files, none were found.\nWARNING: [IP_Flow 19-3157] Bus Interface 'ap_rst_n': Bus parameter POLARITY is ACTIVE_LOW but port 'ap_rst_n' is not *resetn - please double check the POLARITY setting.\nINFO: [IP_Flow 19-2181] Payment Required is not set for this core.\nINFO: [IP_Flow 19-2187] The Product Guide file is missing.\nINFO: [Ipptcl 7-1486] check_integrity: Integrity check passed.\nINFO: [Common 17-206] Exiting Vivado at Sun Mar 20 13:42:54 2022...<\/pre>\n\n\n\n<p>This starts Vivado in batch mode and calls ~\/krnl_aes\/pack_kernel.tcl to package the RTL sources, generated IP XCI files, and XDC files into Vivado IP. It then generates the Vitis kernel file ~\/krnl_aes\/krnl_aes.xo.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"892\" height=\"494\" src=\"https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2022\/05\/image-4.png\" alt=\"\" class=\"wp-image-468\" srcset=\"https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2022\/05\/image-4.png 892w, https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2022\/05\/image-4-300x166.png 300w, https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2022\/05\/image-4-768x425.png 768w\" sizes=\"auto, (max-width: 892px) 100vw, 892px\" \/><\/figure>\n\n\n\n<p class=\"has-medium-font-size\"><strong>Build for hardware target<\/strong><\/p>\n\n\n\n<p><code>make build_hw<\/code><\/p>\n\n\n\n<p class=\"has-medium-font-size\"><strong>Build output message. It will take around 1 hour 4 minutes (From 15:47 to 16:51)<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted has-small-font-size\">tkas-user@tkas-d2101:~\/alveo_examples\/Vitis-Tutorials\/Hardware_Acceleration\/Design_Tutorials\/05-bottom_up_rtl_kernel\/krnl_aes$ make build_hw\nv++ --link --optimize 3 --vivado.synth.jobs 15 --vivado.impl.jobs 15 --platform xilinx_u250_gen3x16_xdma_3_1_202020_1 -t hw  -s -g  --config krnl_aes_test.cfg -o krnl_aes_test_hw.xclbin krnl_aes.xo strm_dump.xo strm_issue.xo \nOption Map File Used: '\/tools\/Xilinx\/Vitis\/2021.1\/data\/vitis\/vpp\/optMap.xml'\n\n****** v++ v2021.1 (64-bit)\n  **** SW Build 3246112 on 2021-06-09-14:19:56\n    ** Copyright 1986-2020 Xilinx, Inc. All Rights Reserved.\n\nINFO: [v++ 60-1306] Additional information associated with this v++ link can be found at:\n\tReports: \/home\/tkas-user\/alveo_examples\/Vitis-Tutorials\/Hardware_Acceleration\/Design_Tutorials\/05-bottom_up_rtl_kernel\/krnl_aes\/_x\/reports\/link\n\tLog files: \/home\/tkas-user\/alveo_examples\/Vitis-Tutorials\/Hardware_Acceleration\/Design_Tutorials\/05-bottom_up_rtl_kernel\/krnl_aes\/_x\/logs\/link\nRunning Dispatch Server on port: 35047\nINFO: [v++ 60-1548] Creating build summary session with primary output \/home\/tkas-user\/alveo_examples\/Vitis-Tutorials\/Hardware_Acceleration\/Design_Tutorials\/05-bottom_up_rtl_kernel\/krnl_aes\/krnl_aes_test_hw.xclbin.link_summary, at Sun Mar 20 15:47:26 2022\nINFO: [v++ 60-1316] Initiating connection to rulecheck server, at Sun Mar 20 15:47:26 2022\nRunning Rule Check Server on port:34523\nINFO: [v++ 60-1315] Creating rulecheck session with output '\/home\/tkas-user\/alveo_examples\/Vitis-Tutorials\/Hardware_Acceleration\/Design_Tutorials\/05-bottom_up_rtl_kernel\/krnl_aes\/_x\/reports\/link\/v++_link_krnl_aes_test_hw_guidance.html', at Sun Mar 20 15:47:27 2022\nINFO: [v++ 60-895]   Target platform: \/opt\/xilinx\/platforms\/xilinx_u250_gen3x16_xdma_3_1_202020_1\/xilinx_u250_gen3x16_xdma_3_1_202020_1.xpfm\nINFO: [v++ 60-1578]   This platform contains Xilinx Shell Archive '\/opt\/xilinx\/platforms\/xilinx_u250_gen3x16_xdma_3_1_202020_1\/hw\/hw.xsa'\nINFO: [v++ 74-78] Compiler Version string: 2021.1\nINFO: [v++ 60-629] Linking for hardware target\nINFO: [v++ 60-423]   Target device: xilinx_u250_gen3x16_xdma_3_1_202020_1\nINFO: [v++ 60-1332] Run 'run_link' status: Not started\nINFO: [v++ 60-1443] [15:47:28] Run run_link: Step system_link: Started\nINFO: [v++ 60-1453] Command Line: system_link --xo \/home\/tkas-user\/alveo_examples\/Vitis-Tutorials\/Hardware_Acceleration\/Design_Tutorials\/05-bottom_up_rtl_kernel\/krnl_aes\/krnl_aes.xo --xo \/home\/tkas-user\/alveo_examples\/Vitis-Tutorials\/Hardware_Acceleration\/Design_Tutorials\/05-bottom_up_rtl_kernel\/krnl_aes\/strm_dump.xo --xo \/home\/tkas-user\/alveo_examples\/Vitis-Tutorials\/Hardware_Acceleration\/Design_Tutorials\/05-bottom_up_rtl_kernel\/krnl_aes\/strm_issue.xo -keep --config \/home\/tkas-user\/alveo_examples\/Vitis-Tutorials\/Hardware_Acceleration\/Design_Tutorials\/05-bottom_up_rtl_kernel\/krnl_aes\/_x\/link\/int\/syslinkConfig.ini --xpfm \/opt\/xilinx\/platforms\/xilinx_u250_gen3x16_xdma_3_1_202020_1\/xilinx_u250_gen3x16_xdma_3_1_202020_1.xpfm --target hw --output_dir \/home\/tkas-user\/alveo_examples\/Vitis-Tutorials\/Hardware_Acceleration\/Design_Tutorials\/05-bottom_up_rtl_kernel\/krnl_aes\/_x\/link\/int --temp_dir \/home\/tkas-user\/alveo_examples\/Vitis-Tutorials\/Hardware_Acceleration\/Design_Tutorials\/05-bottom_up_rtl_kernel\/krnl_aes\/_x\/link\/sys_link\nINFO: [v++ 60-1454] Run Directory: \/home\/tkas-user\/alveo_examples\/Vitis-Tutorials\/Hardware_Acceleration\/Design_Tutorials\/05-bottom_up_rtl_kernel\/krnl_aes\/_x\/link\/run_link\nINFO: [SYSTEM_LINK 60-1316] Initiating connection to rulecheck server, at Sun Mar 20 15:47:30 2022\nINFO: [SYSTEM_LINK 82-70] Extracting xo v3 file \/home\/tkas-user\/alveo_examples\/Vitis-Tutorials\/Hardware_Acceleration\/Design_Tutorials\/05-bottom_up_rtl_kernel\/krnl_aes\/krnl_aes.xo\nINFO: [SYSTEM_LINK 82-70] Extracting xo v3 file \/home\/tkas-user\/alveo_examples\/Vitis-Tutorials\/Hardware_Acceleration\/Design_Tutorials\/05-bottom_up_rtl_kernel\/krnl_aes\/strm_dump.xo\nINFO: [SYSTEM_LINK 82-70] Extracting xo v3 file \/home\/tkas-user\/alveo_examples\/Vitis-Tutorials\/Hardware_Acceleration\/Design_Tutorials\/05-bottom_up_rtl_kernel\/krnl_aes\/strm_issue.xo\nINFO: [SYSTEM_LINK 82-53] Creating IP database \/home\/tkas-user\/alveo_examples\/Vitis-Tutorials\/Hardware_Acceleration\/Design_Tutorials\/05-bottom_up_rtl_kernel\/krnl_aes\/_x\/link\/sys_link\/_sysl\/.cdb\/xd_ip_db.xml\nINFO: [SYSTEM_LINK 82-38] [15:47:30] build_xd_ip_db started: \/tools\/Xilinx\/Vitis\/2021.1\/bin\/build_xd_ip_db -ip_search 0  -sds-pf \/home\/tkas-user\/alveo_examples\/Vitis-Tutorials\/Hardware_Acceleration\/Design_Tutorials\/05-bottom_up_rtl_kernel\/krnl_aes\/_x\/link\/sys_link\/hw.hpfm -clkid 0 -ip \/home\/tkas-user\/alveo_examples\/Vitis-Tutorials\/Hardware_Acceleration\/Design_Tutorials\/05-bottom_up_rtl_kernel\/krnl_aes\/_x\/link\/sys_link\/iprepo\/xilinx_com_hls_strm_issue_1_0,strm_issue -ip \/home\/tkas-user\/alveo_examples\/Vitis-Tutorials\/Hardware_Acceleration\/Design_Tutorials\/05-bottom_up_rtl_kernel\/krnl_aes\/_x\/link\/sys_link\/iprepo\/xilinx_com_user_krnl_aes_1_0,krnl_aes -ip \/home\/tkas-user\/alveo_examples\/Vitis-Tutorials\/Hardware_Acceleration\/Design_Tutorials\/05-bottom_up_rtl_kernel\/krnl_aes\/_x\/link\/sys_link\/iprepo\/xilinx_com_hls_strm_dump_1_0,strm_dump -o \/home\/tkas-user\/alveo_examples\/Vitis-Tutorials\/Hardware_Acceleration\/Design_Tutorials\/05-bottom_up_rtl_kernel\/krnl_aes\/_x\/link\/sys_link\/_sysl\/.cdb\/xd_ip_db.xml\nINFO: [SYSTEM_LINK 82-37] [15:47:33] build_xd_ip_db finished successfully\nTime (s): cpu = 00:00:04 ; elapsed = 00:00:03 . Memory (MB): peak = 2004.715 ; gain = 0.000 ; free physical = 27450 ; free virtual = 37716\nINFO: [SYSTEM_LINK 82-51] Create system connectivity graph\nINFO: [SYSTEM_LINK 82-102] Applying explicit connections to the system connectivity graph: \/home\/tkas-user\/alveo_examples\/Vitis-Tutorials\/Hardware_Acceleration\/Design_Tutorials\/05-bottom_up_rtl_kernel\/krnl_aes\/_x\/link\/sys_link\/cfgraph\/cfgen_cfgraph.xml\nINFO: [SYSTEM_LINK 82-38] [15:47:33] cfgen started: \/tools\/Xilinx\/Vitis\/2021.1\/bin\/cfgen  -nk strm_dump:4 -nk strm_issue:4 -sc krnl_aes_1.axis_mst0:strm_dump_1.data_input -sc krnl_aes_1.axis_mst1:strm_dump_2.data_input -sc krnl_aes_1.axis_mst2:strm_dump_3.data_input -sc krnl_aes_1.axis_mst3:strm_dump_4.data_input -sc strm_issue_1.data_output:krnl_aes_1.axis_slv0 -sc strm_issue_2.data_output:krnl_aes_1.axis_slv1 -sc strm_issue_3.data_output:krnl_aes_1.axis_slv2 -sc strm_issue_4.data_output:krnl_aes_1.axis_slv3 -slr strm_dump_1:SLR0 -slr strm_dump_2:SLR0 -slr strm_dump_3:SLR0 -slr strm_dump_4:SLR0 -slr strm_issue_1:SLR0 -slr strm_issue_2:SLR0 -slr strm_issue_3:SLR0 -slr strm_issue_4:SLR0 -slr krnl_aes_1:SLR0 -dmclkid 0 -r \/home\/tkas-user\/alveo_examples\/Vitis-Tutorials\/Hardware_Acceleration\/Design_Tutorials\/05-bottom_up_rtl_kernel\/krnl_aes\/_x\/link\/sys_link\/_sysl\/.cdb\/xd_ip_db.xml -o \/home\/tkas-user\/alveo_examples\/Vitis-Tutorials\/Hardware_Acceleration\/Design_Tutorials\/05-bottom_up_rtl_kernel\/krnl_aes\/_x\/link\/sys_link\/cfgraph\/cfgen_cfgraph.xml\nINFO: [CFGEN 83-0] Kernel Specs: \nINFO: [CFGEN 83-0]   kernel: strm_dump, num: 4  {strm_dump_1 strm_dump_2 strm_dump_3 strm_dump_4}\nINFO: [CFGEN 83-0]   kernel: strm_issue, num: 4  {strm_issue_1 strm_issue_2 strm_issue_3 strm_issue_4}\nINFO: [CFGEN 83-0]   kernel: krnl_aes, num: 1  {krnl_aes_1}\nINFO: [CFGEN 83-0] Stream Specs: \nINFO: [CFGEN 83-0]   krnl_aes_1.axis_mst0 =&gt; strm_dump_1.data_input\nINFO: [CFGEN 83-0]   krnl_aes_1.axis_mst1 =&gt; strm_dump_2.data_input\nINFO: [CFGEN 83-0]   krnl_aes_1.axis_mst2 =&gt; strm_dump_3.data_input\nINFO: [CFGEN 83-0]   krnl_aes_1.axis_mst3 =&gt; strm_dump_4.data_input\nINFO: [CFGEN 83-0]   strm_issue_1.data_output =&gt; krnl_aes_1.axis_slv0\nINFO: [CFGEN 83-0]   strm_issue_2.data_output =&gt; krnl_aes_1.axis_slv1\nINFO: [CFGEN 83-0]   strm_issue_3.data_output =&gt; krnl_aes_1.axis_slv2\nINFO: [CFGEN 83-0]   strm_issue_4.data_output =&gt; krnl_aes_1.axis_slv3\nINFO: [CFGEN 83-0] SLR Specs: \nINFO: [CFGEN 83-0]   instance: krnl_aes_1, SLR: SLR0\nINFO: [CFGEN 83-0]   instance: strm_dump_1, SLR: SLR0\nINFO: [CFGEN 83-0]   instance: strm_dump_2, SLR: SLR0\nINFO: [CFGEN 83-0]   instance: strm_dump_3, SLR: SLR0\nINFO: [CFGEN 83-0]   instance: strm_dump_4, SLR: SLR0\nINFO: [CFGEN 83-0]   instance: strm_issue_1, SLR: SLR0\nINFO: [CFGEN 83-0]   instance: strm_issue_2, SLR: SLR0\nINFO: [CFGEN 83-0]   instance: strm_issue_3, SLR: SLR0\nINFO: [CFGEN 83-0]   instance: strm_issue_4, SLR: SLR0\nINFO: [CFGEN 83-2226] Inferring mapping for argument strm_dump_1.data_output to DDR[1]\nINFO: [CFGEN 83-2226] Inferring mapping for argument strm_dump_2.data_output to DDR[1]\nINFO: [CFGEN 83-2226] Inferring mapping for argument strm_dump_3.data_output to DDR[1]\nINFO: [CFGEN 83-2226] Inferring mapping for argument strm_dump_4.data_output to DDR[1]\nINFO: [CFGEN 83-2226] Inferring mapping for argument strm_issue_1.data_input to DDR[1]\nINFO: [CFGEN 83-2226] Inferring mapping for argument strm_issue_2.data_input to DDR[1]\nINFO: [CFGEN 83-2226] Inferring mapping for argument strm_issue_3.data_input to DDR[1]\nINFO: [CFGEN 83-2226] Inferring mapping for argument strm_issue_4.data_input to DDR[1]\nINFO: [SYSTEM_LINK 82-37] [15:47:36] cfgen finished successfully\nTime (s): cpu = 00:00:03 ; elapsed = 00:00:03 . Memory (MB): peak = 2004.715 ; gain = 0.000 ; free physical = 27449 ; free virtual = 37715\nINFO: [SYSTEM_LINK 82-52] Create top-level block diagram\nINFO: [SYSTEM_LINK 82-38] [15:47:36] cf2bd started: \/tools\/Xilinx\/Vitis\/2021.1\/bin\/cf2bd  --linux --trace_buffer 1024 --input_file \/home\/tkas-user\/alveo_examples\/Vitis-Tutorials\/Hardware_Acceleration\/Design_Tutorials\/05-bottom_up_rtl_kernel\/krnl_aes\/_x\/link\/sys_link\/cfgraph\/cfgen_cfgraph.xml --ip_db \/home\/tkas-user\/alveo_examples\/Vitis-Tutorials\/Hardware_Acceleration\/Design_Tutorials\/05-bottom_up_rtl_kernel\/krnl_aes\/_x\/link\/sys_link\/_sysl\/.cdb\/xd_ip_db.xml --cf_name dr --working_dir \/home\/tkas-user\/alveo_examples\/Vitis-Tutorials\/Hardware_Acceleration\/Design_Tutorials\/05-bottom_up_rtl_kernel\/krnl_aes\/_x\/link\/sys_link\/_sysl\/.xsd --temp_dir \/home\/tkas-user\/alveo_examples\/Vitis-Tutorials\/Hardware_Acceleration\/Design_Tutorials\/05-bottom_up_rtl_kernel\/krnl_aes\/_x\/link\/sys_link --output_dir \/home\/tkas-user\/alveo_examples\/Vitis-Tutorials\/Hardware_Acceleration\/Design_Tutorials\/05-bottom_up_rtl_kernel\/krnl_aes\/_x\/link\/int --target_bd ulp.bd\nINFO: [CF2BD 82-31] Launching cf2xd: cf2xd -linux -trace-buffer 1024 -i \/home\/tkas-user\/alveo_examples\/Vitis-Tutorials\/Hardware_Acceleration\/Design_Tutorials\/05-bottom_up_rtl_kernel\/krnl_aes\/_x\/link\/sys_link\/cfgraph\/cfgen_cfgraph.xml -r \/home\/tkas-user\/alveo_examples\/Vitis-Tutorials\/Hardware_Acceleration\/Design_Tutorials\/05-bottom_up_rtl_kernel\/krnl_aes\/_x\/link\/sys_link\/_sysl\/.cdb\/xd_ip_db.xml -o dr.xml\nINFO: [CF2BD 82-28] cf2xd finished successfully\nINFO: [CF2BD 82-31] Launching cf_xsd: cf_xsd -disable-address-gen -bd ulp.bd -dn dr -dp \/home\/tkas-user\/alveo_examples\/Vitis-Tutorials\/Hardware_Acceleration\/Design_Tutorials\/05-bottom_up_rtl_kernel\/krnl_aes\/_x\/link\/sys_link\/_sysl\/.xsd\nINFO: [CF2BD 82-28] cf_xsd finished successfully\nINFO: [SYSTEM_LINK 82-37] [15:47:40] cf2bd finished successfully\nTime (s): cpu = 00:00:04 ; elapsed = 00:00:04 . Memory (MB): peak = 2004.715 ; gain = 0.000 ; free physical = 27433 ; free virtual = 37704\nINFO: [v++ 60-1441] [15:47:40] Run run_link: Step system_link: Completed\nTime (s): cpu = 00:00:13 ; elapsed = 00:00:12 . Memory (MB): peak = 1899.504 ; gain = 0.000 ; free physical = 27468 ; free virtual = 37739\nINFO: [v++ 60-1443] [15:47:40] Run run_link: Step cf2sw: Started\nINFO: [v++ 60-1453] Command Line: cf2sw -sdsl \/home\/tkas-user\/alveo_examples\/Vitis-Tutorials\/Hardware_Acceleration\/Design_Tutorials\/05-bottom_up_rtl_kernel\/krnl_aes\/_x\/link\/int\/sdsl.dat -rtd \/home\/tkas-user\/alveo_examples\/Vitis-Tutorials\/Hardware_Acceleration\/Design_Tutorials\/05-bottom_up_rtl_kernel\/krnl_aes\/_x\/link\/int\/cf2sw.rtd -nofilter \/home\/tkas-user\/alveo_examples\/Vitis-Tutorials\/Hardware_Acceleration\/Design_Tutorials\/05-bottom_up_rtl_kernel\/krnl_aes\/_x\/link\/int\/cf2sw_full.rtd -xclbin \/home\/tkas-user\/alveo_examples\/Vitis-Tutorials\/Hardware_Acceleration\/Design_Tutorials\/05-bottom_up_rtl_kernel\/krnl_aes\/_x\/link\/int\/xclbin_orig.xml -o \/home\/tkas-user\/alveo_examples\/Vitis-Tutorials\/Hardware_Acceleration\/Design_Tutorials\/05-bottom_up_rtl_kernel\/krnl_aes\/_x\/link\/int\/xclbin_orig.1.xml\nINFO: [v++ 60-1454] Run Directory: \/home\/tkas-user\/alveo_examples\/Vitis-Tutorials\/Hardware_Acceleration\/Design_Tutorials\/05-bottom_up_rtl_kernel\/krnl_aes\/_x\/link\/run_link\nINFO: [v++ 60-1441] [15:47:45] Run run_link: Step cf2sw: Completed\nTime (s): cpu = 00:00:05 ; elapsed = 00:00:05 . Memory (MB): peak = 1899.504 ; gain = 0.000 ; free physical = 27482 ; free virtual = 37753\nINFO: [v++ 60-1443] [15:47:45] Run run_link: Step rtd2_system_diagram: Started\nINFO: [v++ 60-1453] Command Line: rtd2SystemDiagram\nINFO: [v++ 60-1454] Run Directory: \/home\/tkas-user\/alveo_examples\/Vitis-Tutorials\/Hardware_Acceleration\/Design_Tutorials\/05-bottom_up_rtl_kernel\/krnl_aes\/_x\/link\/run_link\nINFO: [v++ 60-1441] [15:47:45] Run run_link: Step rtd2_system_diagram: Completed\nTime (s): cpu = 00:00:00 ; elapsed = 00:00:00.24 . Memory (MB): peak = 1899.504 ; gain = 0.000 ; free physical = 27466 ; free virtual = 37737\nINFO: [v++ 60-1443] [15:47:45] Run run_link: Step vpl: Started\nINFO: [v++ 60-1453] Command Line: vpl -t hw -f xilinx_u250_gen3x16_xdma_3_1_202020_1 -g --remote_ip_cache \/home\/tkas-user\/alveo_examples\/Vitis-Tutorials\/Hardware_Acceleration\/Design_Tutorials\/05-bottom_up_rtl_kernel\/krnl_aes\/.ipcache -s --output_dir \/home\/tkas-user\/alveo_examples\/Vitis-Tutorials\/Hardware_Acceleration\/Design_Tutorials\/05-bottom_up_rtl_kernel\/krnl_aes\/_x\/link\/int --log_dir \/home\/tkas-user\/alveo_examples\/Vitis-Tutorials\/Hardware_Acceleration\/Design_Tutorials\/05-bottom_up_rtl_kernel\/krnl_aes\/_x\/logs\/link --report_dir \/home\/tkas-user\/alveo_examples\/Vitis-Tutorials\/Hardware_Acceleration\/Design_Tutorials\/05-bottom_up_rtl_kernel\/krnl_aes\/_x\/reports\/link --config \/home\/tkas-user\/alveo_examples\/Vitis-Tutorials\/Hardware_Acceleration\/Design_Tutorials\/05-bottom_up_rtl_kernel\/krnl_aes\/_x\/link\/int\/vplConfig.ini -k \/home\/tkas-user\/alveo_examples\/Vitis-Tutorials\/Hardware_Acceleration\/Design_Tutorials\/05-bottom_up_rtl_kernel\/krnl_aes\/_x\/link\/int\/kernel_info.dat --webtalk_flag Vitis --temp_dir \/home\/tkas-user\/alveo_examples\/Vitis-Tutorials\/Hardware_Acceleration\/Design_Tutorials\/05-bottom_up_rtl_kernel\/krnl_aes\/_x\/link --no-info --iprepo \/home\/tkas-user\/alveo_examples\/Vitis-Tutorials\/Hardware_Acceleration\/Design_Tutorials\/05-bottom_up_rtl_kernel\/krnl_aes\/_x\/link\/int\/xo\/ip_repo\/xilinx_com_hls_strm_issue_1_0 --iprepo \/home\/tkas-user\/alveo_examples\/Vitis-Tutorials\/Hardware_Acceleration\/Design_Tutorials\/05-bottom_up_rtl_kernel\/krnl_aes\/_x\/link\/int\/xo\/ip_repo\/xilinx_com_user_krnl_aes_1_0 --iprepo \/home\/tkas-user\/alveo_examples\/Vitis-Tutorials\/Hardware_Acceleration\/Design_Tutorials\/05-bottom_up_rtl_kernel\/krnl_aes\/_x\/link\/int\/xo\/ip_repo\/xilinx_com_hls_strm_dump_1_0 --messageDb \/home\/tkas-user\/alveo_examples\/Vitis-Tutorials\/Hardware_Acceleration\/Design_Tutorials\/05-bottom_up_rtl_kernel\/krnl_aes\/_x\/link\/run_link\/vpl.pb \/home\/tkas-user\/alveo_examples\/Vitis-Tutorials\/Hardware_Acceleration\/Design_Tutorials\/05-bottom_up_rtl_kernel\/krnl_aes\/_x\/link\/int\/dr.bd.tcl\nINFO: [v++ 60-1454] Run Directory: \/home\/tkas-user\/alveo_examples\/Vitis-Tutorials\/Hardware_Acceleration\/Design_Tutorials\/05-bottom_up_rtl_kernel\/krnl_aes\/_x\/link\/run_link\n\n****** vpl v2021.1 (64-bit)\n  **** SW Build 3246112 on 2021-06-09-14:19:56\n    ** Copyright 1986-2020 Xilinx, Inc. All Rights Reserved.\n\nINFO: [VPL 60-839] Read in kernel information from file '\/home\/tkas-user\/alveo_examples\/Vitis-Tutorials\/Hardware_Acceleration\/Design_Tutorials\/05-bottom_up_rtl_kernel\/krnl_aes\/_x\/link\/int\/kernel_info.dat'.\nINFO: [VPL 74-78] Compiler Version string: 2021.1\nINFO: [VPL 60-423]   Target device: xilinx_u250_gen3x16_xdma_3_1_202020_1\nINFO: [VPL 60-1032] Extracting hardware platform to \/home\/tkas-user\/alveo_examples\/Vitis-Tutorials\/Hardware_Acceleration\/Design_Tutorials\/05-bottom_up_rtl_kernel\/krnl_aes\/_x\/link\/vivado\/vpl\/.local\/hw_platform\n[15:47:55] Run vpl: Step create_project: Started\nCreating Vivado project.\n[15:47:55] Run vpl: Step create_project: Completed\n[15:47:55] Run vpl: Step create_bd: Started\n[15:48:19] Run vpl: Step create_bd: Completed\n[15:48:19] Run vpl: Step update_bd: Started\n[15:48:19] Run vpl: Step update_bd: Completed\n[15:48:19] Run vpl: Step generate_target: Started\n[15:49:07] Run vpl: Step generate_target: Completed\n[15:49:07] Run vpl: Step config_hw_runs: Started\n[15:49:09] Run vpl: Step config_hw_runs: Completed\n[15:49:09] Run vpl: Step synth: Started\n[15:49:40] Block-level synthesis in progress, 0 of 8 jobs complete, 1 job running.\n[15:49:56] Run vpl: Step synth: Completed\n[15:49:56] Run vpl: Step impl: Started\n[15:54:57] Finished 2nd of 6 tasks (FPGA linking synthesized kernels to platform). Elapsed time: 00h 07m 10s \n\n[15:54:57] Starting logic optimization..\n[15:55:27] Phase 1 Retarget\n[15:55:27] Phase 2 Constant propagation\n[15:55:27] Phase 3 Sweep\n[15:55:57] Phase 4 BUFG optimization\n[15:55:57] Phase 5 Shift Register Optimization\n[15:55:57] Phase 6 Post Processing Netlist\n[15:57:28] Finished 3rd of 6 tasks (FPGA logic optimization). Elapsed time: 00h 02m 30s \n\n[15:57:28] Starting logic placement..\n[15:57:28] Phase 1 Placer Initialization\n[15:57:28] Phase 1.1 Placer Initialization Netlist Sorting\n[15:59:58] Phase 1.2 IO Placement\/ Clock Placement\/ Build Placer Device\n[16:03:59] Phase 1.3 Build Placer Netlist Model\n[16:04:59] Phase 1.4 Constrain Clocks\/Macros\n[16:04:59] Phase 2 Global Placement\n[16:04:59] Phase 2.1 Floorplanning\n[16:05:29] Phase 2.1.1 Partition Driven Placement\n[16:05:59] Phase 2.1.1.1 PBP: Partition Driven Placement\n[16:05:59] Phase 2.1.1.2 PBP: Clock Region Placement\n[16:06:59] Phase 2.1.1.3 PBP: Compute Congestion\n[16:06:59] Phase 2.1.1.4 PBP: UpdateTiming\n[16:06:59] Phase 2.1.1.5 PBP: Add part constraints\n[16:06:59] Phase 2.2 Physical Synthesis After Floorplan\n[16:07:30] Phase 2.3 Update Timing before SLR Path Opt\n[16:07:30] Phase 2.4 Post-Processing in Floorplanning\n[16:07:30] Phase 2.5 Global Placement Core\n[16:11:31] Phase 2.5.1 Physical Synthesis In Placer\n[16:13:01] Phase 3 Detail Placement\n[16:13:01] Phase 3.1 Commit Multi Column Macros\n[16:13:01] Phase 3.2 Commit Most Macros &amp; LUTRAMs\n[16:14:32] Phase 3.3 Small Shape DP\n[16:14:32] Phase 3.3.1 Small Shape Clustering\n[16:15:02] Phase 3.3.2 Flow Legalize Slice Clusters\n[16:15:02] Phase 3.3.3 Slice Area Swap\n[16:16:02] Phase 3.4 Place Remaining\n[16:16:02] Phase 3.5 Re-assign LUT pins\n[16:16:32] Phase 3.6 Pipeline Register Optimization\n[16:16:32] Phase 3.7 Fast Optimization\n[16:17:03] Phase 4 Post Placement Optimization and Clean-Up\n[16:17:03] Phase 4.1 Post Commit Optimization\n[16:17:33] Phase 4.1.1 Post Placement Optimization\n[16:17:33] Phase 4.1.1.1 BUFG Insertion\n[16:17:33] Phase 1 Physical Synthesis Initialization\n[16:17:33] Phase 4.1.1.2 BUFG Replication\n[16:17:33] Phase 4.1.1.3 Post Placement Timing Optimization\n[16:18:33] Phase 4.1.1.4 Replication\n[16:19:03] Phase 4.2 Post Placement Cleanup\n[16:19:03] Phase 4.3 Placer Reporting\n[16:19:03] Phase 4.3.1 Print Estimated Congestion\n[16:19:03] Phase 4.4 Final Placement Cleanup\n[16:24:05] Finished 4th of 6 tasks (FPGA logic placement). Elapsed time: 00h 26m 37s \n\n[16:24:05] Starting logic routing..\n[16:24:35] Phase 1 Build RT Design\n[16:25:35] Phase 2 Router Initialization\n[16:25:35] Phase 2.1 Fix Topology Constraints\n[16:25:35] Phase 2.2 Pre Route Cleanup\n[16:25:35] Phase 2.3 Global Clock Net Routing\n[16:26:05] Phase 2.4 Update Timing\n[16:26:35] Phase 2.5 Update Timing for Bus Skew\n[16:26:35] Phase 2.5.1 Update Timing\n[16:27:06] Phase 3 Initial Routing\n[16:27:06] Phase 3.1 Global Routing\n[16:28:06] Phase 4 Rip-up And Reroute\n[16:28:06] Phase 4.1 Global Iteration 0\n[16:31:37] Phase 4.2 Global Iteration 1\n[16:32:07] Phase 4.3 Global Iteration 2\n[16:33:07] Phase 4.4 Global Iteration 3\n[16:33:37] Phase 4.5 Global Iteration 4\n[16:33:37] Phase 5 Delay and Skew Optimization\n[16:33:37] Phase 5.1 Delay CleanUp\n[16:34:08] Phase 5.2 Clock Skew Optimization\n[16:34:08] Phase 6 Post Hold Fix\n[16:34:08] Phase 6.1 Hold Fix Iter\n[16:34:08] Phase 6.1.1 Update Timing\n[16:34:38] Phase 7 Leaf Clock Prog Delay Opt\n[16:35:08] Phase 8 Route finalize\n[16:35:08] Phase 9 Verifying routed nets\n[16:35:08] Phase 10 Depositing Routes\n[16:35:38] Phase 11 Post Router Timing\n[16:35:38] Finished 5th of 6 tasks (FPGA routing). Elapsed time: 00h 11m 33s \n\n[16:35:38] Starting bitstream generation..\nStarting optional post-route physical design optimization.\nFinished optional post-route physical design optimization.\n[16:46:11] Creating bitmap...\n[16:50:12] Writing bitstream .\/level0_i_level1_level1_i_ulp_my_rm_partial.bit...\n[16:50:12] Finished 6th of 6 tasks (FPGA bitstream generation). Elapsed time: 00h 14m 34s \n[16:50:50] Run vpl: Step impl: Completed\n[16:50:50] Run vpl: FINISHED. Run Status: impl Complete!\nINFO: [v++ 60-1441] [16:50:51] Run run_link: Step vpl: Completed\nTime (s): cpu = 00:00:17 ; elapsed = 01:03:05 . Memory (MB): peak = 1899.504 ; gain = 0.000 ; free physical = 24180 ; free virtual = 36112\nINFO: [v++ 60-1443] [16:50:51] Run run_link: Step rtdgen: Started\nINFO: [v++ 60-1453] Command Line: rtdgen\nINFO: [v++ 60-1454] Run Directory: \/home\/tkas-user\/alveo_examples\/Vitis-Tutorials\/Hardware_Acceleration\/Design_Tutorials\/05-bottom_up_rtl_kernel\/krnl_aes\/_x\/link\/run_link\nINFO: [v++ 60-991] clock name 'ss_ucs\/aclk_kernel_00' (clock ID '0') is being mapped to clock name 'DATA_CLK' in the xclbin\nINFO: [v++ 60-991] clock name 'ss_ucs\/aclk_kernel_01' (clock ID '1') is being mapped to clock name 'KERNEL_CLK' in the xclbin\nINFO: [v++ 60-1230] The compiler selected the following frequencies for the runtime controllable kernel clock(s) and scalable system clock(s): Kernel (DATA) clock: ss_ucs\/aclk_kernel_00 = 300, Kernel (KERNEL) clock: ss_ucs\/aclk_kernel_01 = 500\nINFO: [v++ 60-1453] Command Line: cf2sw -a \/home\/tkas-user\/alveo_examples\/Vitis-Tutorials\/Hardware_Acceleration\/Design_Tutorials\/05-bottom_up_rtl_kernel\/krnl_aes\/_x\/link\/int\/address_map.xml -sdsl \/home\/tkas-user\/alveo_examples\/Vitis-Tutorials\/Hardware_Acceleration\/Design_Tutorials\/05-bottom_up_rtl_kernel\/krnl_aes\/_x\/link\/int\/sdsl.dat -xclbin \/home\/tkas-user\/alveo_examples\/Vitis-Tutorials\/Hardware_Acceleration\/Design_Tutorials\/05-bottom_up_rtl_kernel\/krnl_aes\/_x\/link\/int\/xclbin_orig.xml -rtd \/home\/tkas-user\/alveo_examples\/Vitis-Tutorials\/Hardware_Acceleration\/Design_Tutorials\/05-bottom_up_rtl_kernel\/krnl_aes\/_x\/link\/int\/krnl_aes_test_hw.rtd -o \/home\/tkas-user\/alveo_examples\/Vitis-Tutorials\/Hardware_Acceleration\/Design_Tutorials\/05-bottom_up_rtl_kernel\/krnl_aes\/_x\/link\/int\/krnl_aes_test_hw.xml\nINFO: [v++ 60-1652] Cf2sw returned exit code: 0\nINFO: [v++ 60-1441] [16:50:55] Run run_link: Step rtdgen: Completed\nTime (s): cpu = 00:00:04 ; elapsed = 00:00:04 . Memory (MB): peak = 1899.504 ; gain = 0.000 ; free physical = 25848 ; free virtual = 37781\nINFO: [v++ 60-1443] [16:50:55] Run run_link: Step xclbinutil: Started\nINFO: [v++ 60-1453] Command Line: xclbinutil --add-section BITSTREAM:RAW:\/home\/tkas-user\/alveo_examples\/Vitis-Tutorials\/Hardware_Acceleration\/Design_Tutorials\/05-bottom_up_rtl_kernel\/krnl_aes\/_x\/link\/int\/partial.bit --force --target hw --key-value SYS:dfx_enable:true --add-section :JSON:\/home\/tkas-user\/alveo_examples\/Vitis-Tutorials\/Hardware_Acceleration\/Design_Tutorials\/05-bottom_up_rtl_kernel\/krnl_aes\/_x\/link\/int\/krnl_aes_test_hw.rtd --append-section :JSON:\/home\/tkas-user\/alveo_examples\/Vitis-Tutorials\/Hardware_Acceleration\/Design_Tutorials\/05-bottom_up_rtl_kernel\/krnl_aes\/_x\/link\/int\/appendSection.rtd --add-section CLOCK_FREQ_TOPOLOGY:JSON:\/home\/tkas-user\/alveo_examples\/Vitis-Tutorials\/Hardware_Acceleration\/Design_Tutorials\/05-bottom_up_rtl_kernel\/krnl_aes\/_x\/link\/int\/krnl_aes_test_hw_xml.rtd --add-section BUILD_METADATA:JSON:\/home\/tkas-user\/alveo_examples\/Vitis-Tutorials\/Hardware_Acceleration\/Design_Tutorials\/05-bottom_up_rtl_kernel\/krnl_aes\/_x\/link\/int\/krnl_aes_test_hw_build.rtd --add-section EMBEDDED_METADATA:RAW:\/home\/tkas-user\/alveo_examples\/Vitis-Tutorials\/Hardware_Acceleration\/Design_Tutorials\/05-bottom_up_rtl_kernel\/krnl_aes\/_x\/link\/int\/krnl_aes_test_hw.xml --add-section SYSTEM_METADATA:RAW:\/home\/tkas-user\/alveo_examples\/Vitis-Tutorials\/Hardware_Acceleration\/Design_Tutorials\/05-bottom_up_rtl_kernel\/krnl_aes\/_x\/link\/int\/systemDiagramModelSlrBaseAddress.json --key-value SYS:PlatformVBNV:xilinx_u250_gen3x16_xdma_3_1_202020_1 --output \/home\/tkas-user\/alveo_examples\/Vitis-Tutorials\/Hardware_Acceleration\/Design_Tutorials\/05-bottom_up_rtl_kernel\/krnl_aes\/krnl_aes_test_hw.xclbin\nINFO: [v++ 60-1454] Run Directory: \/home\/tkas-user\/alveo_examples\/Vitis-Tutorials\/Hardware_Acceleration\/Design_Tutorials\/05-bottom_up_rtl_kernel\/krnl_aes\/_x\/link\/run_link\nXRT Build Version: 2.11.634 (2021.1)\n       Build Date: 2021-06-08 22:08:45\n          Hash ID: 5ad5998d67080f00bca5bf15b3838cf35e0a7b26\nCreating a default 'in-memory' xclbin image.\n\nSection: 'BITSTREAM'(0) was successfully added.\nSize   : 46387874 bytes\nFormat : RAW\nFile   : '\/home\/tkas-user\/alveo_examples\/Vitis-Tutorials\/Hardware_Acceleration\/Design_Tutorials\/05-bottom_up_rtl_kernel\/krnl_aes\/_x\/link\/int\/partial.bit'\n\nSection: 'MEM_TOPOLOGY'(6) was successfully added.\nFormat : JSON\nFile   : 'mem_topology'\n\nSection: 'IP_LAYOUT'(8) was successfully added.\nFormat : JSON\nFile   : 'ip_layout'\n\nSection: 'CONNECTIVITY'(7) was successfully added.\nFormat : JSON\nFile   : 'connectivity'\n\nSection: 'CLOCK_FREQ_TOPOLOGY'(11) was successfully added.\nSize   : 274 bytes\nFormat : JSON\nFile   : '\/home\/tkas-user\/alveo_examples\/Vitis-Tutorials\/Hardware_Acceleration\/Design_Tutorials\/05-bottom_up_rtl_kernel\/krnl_aes\/_x\/link\/int\/krnl_aes_test_hw_xml.rtd'\n\nSection: 'BUILD_METADATA'(14) was successfully added.\nSize   : 8451 bytes\nFormat : JSON\nFile   : '\/home\/tkas-user\/alveo_examples\/Vitis-Tutorials\/Hardware_Acceleration\/Design_Tutorials\/05-bottom_up_rtl_kernel\/krnl_aes\/_x\/link\/int\/krnl_aes_test_hw_build.rtd'\n\nSection: 'EMBEDDED_METADATA'(2) was successfully added.\nSize   : 13110 bytes\nFormat : RAW\nFile   : '\/home\/tkas-user\/alveo_examples\/Vitis-Tutorials\/Hardware_Acceleration\/Design_Tutorials\/05-bottom_up_rtl_kernel\/krnl_aes\/_x\/link\/int\/krnl_aes_test_hw.xml'\n\nSection: 'SYSTEM_METADATA'(22) was successfully added.\nSize   : 30254 bytes\nFormat : RAW\nFile   : '\/home\/tkas-user\/alveo_examples\/Vitis-Tutorials\/Hardware_Acceleration\/Design_Tutorials\/05-bottom_up_rtl_kernel\/krnl_aes\/_x\/link\/int\/systemDiagramModelSlrBaseAddress.json'\n\nSection: 'PARTITION_METADATA'(20) was successfully appended to.\nFormat : JSON\nFile   : 'partition_metadata'\n\nSection: 'IP_LAYOUT'(8) was successfully appended to.\nFormat : JSON\nFile   : 'ip_layout'\nSuccessfully wrote (46470448 bytes) to the output file: \/home\/tkas-user\/alveo_examples\/Vitis-Tutorials\/Hardware_Acceleration\/Design_Tutorials\/05-bottom_up_rtl_kernel\/krnl_aes\/krnl_aes_test_hw.xclbin\nLeaving xclbinutil.\nINFO: [v++ 60-1441] [16:50:55] Run run_link: Step xclbinutil: Completed\nTime (s): cpu = 00:00:00.06 ; elapsed = 00:00:00.10 . Memory (MB): peak = 1899.504 ; gain = 0.000 ; free physical = 25801 ; free virtual = 37780\nINFO: [v++ 60-1443] [16:50:55] Run run_link: Step xclbinutilinfo: Started\nINFO: [v++ 60-1453] Command Line: xclbinutil --quiet --force --info \/home\/tkas-user\/alveo_examples\/Vitis-Tutorials\/Hardware_Acceleration\/Design_Tutorials\/05-bottom_up_rtl_kernel\/krnl_aes\/krnl_aes_test_hw.xclbin.info --input \/home\/tkas-user\/alveo_examples\/Vitis-Tutorials\/Hardware_Acceleration\/Design_Tutorials\/05-bottom_up_rtl_kernel\/krnl_aes\/krnl_aes_test_hw.xclbin\nINFO: [v++ 60-1454] Run Directory: \/home\/tkas-user\/alveo_examples\/Vitis-Tutorials\/Hardware_Acceleration\/Design_Tutorials\/05-bottom_up_rtl_kernel\/krnl_aes\/_x\/link\/run_link\nINFO: [v++ 60-1441] [16:50:55] Run run_link: Step xclbinutilinfo: Completed\nTime (s): cpu = 00:00:00.26 ; elapsed = 00:00:00.29 . Memory (MB): peak = 1899.504 ; gain = 0.000 ; free physical = 25800 ; free virtual = 37779\nINFO: [v++ 60-1443] [16:50:55] Run run_link: Step generate_sc_driver: Started\nINFO: [v++ 60-1453] Command Line: \nINFO: [v++ 60-1454] Run Directory: \/home\/tkas-user\/alveo_examples\/Vitis-Tutorials\/Hardware_Acceleration\/Design_Tutorials\/05-bottom_up_rtl_kernel\/krnl_aes\/_x\/link\/run_link\nINFO: [v++ 60-1441] [16:50:55] Run run_link: Step generate_sc_driver: Completed\nTime (s): cpu = 00:00:00 ; elapsed = 00:00:00 . Memory (MB): peak = 1899.504 ; gain = 0.000 ; free physical = 25800 ; free virtual = 37779\nINFO: [v++ 60-2331] SLR0 was specfied for compute unit krnl_aes_1, and verified as such in implementation.\nINFO: [v++ 60-2331] SLR0 was specfied for compute unit strm_dump_1, and verified as such in implementation.\nINFO: [v++ 60-2331] SLR0 was specfied for compute unit strm_dump_2, and verified as such in implementation.\nINFO: [v++ 60-2331] SLR0 was specfied for compute unit strm_dump_3, and verified as such in implementation.\nINFO: [v++ 60-2331] SLR0 was specfied for compute unit strm_dump_4, and verified as such in implementation.\nINFO: [v++ 60-2331] SLR0 was specfied for compute unit strm_issue_1, and verified as such in implementation.\nINFO: [v++ 60-2331] SLR0 was specfied for compute unit strm_issue_2, and verified as such in implementation.\nINFO: [v++ 60-2331] SLR0 was specfied for compute unit strm_issue_3, and verified as such in implementation.\nINFO: [v++ 60-2331] SLR0 was specfied for compute unit strm_issue_4, and verified as such in implementation.\nINFO: [v++ 60-244] Generating system estimate report...\nINFO: [v++ 60-1092] Generated system estimate report: \/home\/tkas-user\/alveo_examples\/Vitis-Tutorials\/Hardware_Acceleration\/Design_Tutorials\/05-bottom_up_rtl_kernel\/krnl_aes\/_x\/reports\/link\/system_estimate_krnl_aes_test_hw.xtxt\nINFO: [v++ 60-586] Created \/home\/tkas-user\/alveo_examples\/Vitis-Tutorials\/Hardware_Acceleration\/Design_Tutorials\/05-bottom_up_rtl_kernel\/krnl_aes\/krnl_aes_test_hw.ltx\nINFO: [v++ 60-586] Created krnl_aes_test_hw.xclbin\nINFO: [v++ 60-1307] Run completed. Additional information can be found in:\n\tGuidance: \/home\/tkas-user\/alveo_examples\/Vitis-Tutorials\/Hardware_Acceleration\/Design_Tutorials\/05-bottom_up_rtl_kernel\/krnl_aes\/_x\/reports\/link\/v++_link_krnl_aes_test_hw_guidance.html\n\tTiming Report: \/home\/tkas-user\/alveo_examples\/Vitis-Tutorials\/Hardware_Acceleration\/Design_Tutorials\/05-bottom_up_rtl_kernel\/krnl_aes\/_x\/reports\/link\/imp\/impl_1_hw_bb_locked_timing_summary_routed.rpt\n\tVivado Log: \/home\/tkas-user\/alveo_examples\/Vitis-Tutorials\/Hardware_Acceleration\/Design_Tutorials\/05-bottom_up_rtl_kernel\/krnl_aes\/_x\/logs\/link\/vivado.log\n\tSteps Log File: \/home\/tkas-user\/alveo_examples\/Vitis-Tutorials\/Hardware_Acceleration\/Design_Tutorials\/05-bottom_up_rtl_kernel\/krnl_aes\/_x\/logs\/link\/link.steps.log\n\nINFO: [v++ 60-2343] Use the vitis_analyzer tool to visualize and navigate the relevant reports. Run the following command. \n    vitis_analyzer \/home\/tkas-user\/alveo_examples\/Vitis-Tutorials\/Hardware_Acceleration\/Design_Tutorials\/05-bottom_up_rtl_kernel\/krnl_aes\/krnl_aes_test_hw.xclbin.link_summary \nINFO: [v++ 60-791] Total elapsed time: 1h 3m 40s\nINFO: [v++ 60-1653] Closing dispatch client.<\/pre>\n\n\n\n<p class=\"has-medium-font-size\"><strong>Compile Host Application<\/strong><\/p>\n\n\n\n<p><code>make build_sw<\/code><\/p>\n\n\n\n<p class=\"has-medium-font-size\"><strong>Build output message<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"93\" src=\"https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2022\/05\/image-5-1024x93.png\" alt=\"\" class=\"wp-image-469\" srcset=\"https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2022\/05\/image-5-1024x93.png 1024w, https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2022\/05\/image-5-300x27.png 300w, https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2022\/05\/image-5-768x70.png 768w, https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2022\/05\/image-5.png 1167w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p><strong>Run Host Application in Hardware Mode<\/strong><\/p>\n\n\n\n<p>If you have tried hardware emulation in the previous step, you must run the following command to disable the hw_emu mode:<br><code>source setup_emu.sh -s off<\/code><\/p>\n\n\n\n<p>Now, you can run the compiled host_krnl_aes_test file to test the system in hardware mode. The default words number to process is 1M 128-bit words, which is 16 MBytes. Because of the data transfer efficiency between host and FPGA via PCIe, you can peak processing throughput with big-enough input data.<\/p>\n\n\n\n<p><code>.\/host_krnl_aes_test<\/code><\/p>\n\n\n\n<p class=\"has-medium-font-size\"><strong>Host application output message<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"676\" src=\"https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2022\/05\/image-6-1024x676.png\" alt=\"\" class=\"wp-image-470\" srcset=\"https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2022\/05\/image-6-1024x676.png 1024w, https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2022\/05\/image-6-300x198.png 300w, https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2022\/05\/image-6-768x507.png 768w, https:\/\/dgway.com\/blog_E\/wp-content\/uploads\/2022\/05\/image-6.png 1322w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>For Turnkey Accelerator System (TKAS-D2101) with Alveo U250 Card and Xilinx Vitis\u2122 Unified Software Platform 2021.1 Based on Xilinx\u2019s Vitis\u2122 Application Acceleration Development Flow Tutorials: bottom_up_rtl_kernel This tutorial introduces a bottom-up Vitis-based RTL kernel construct and wrap-up process, as well as the host-kernel interaction with Xilinx Runtime library (XRT). All the steps in this tutorial use the command-line interface, except&#46;&#46;&#46;<\/p>\n","protected":false},"author":1,"featured_media":472,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[11],"tags":[],"class_list":["post-463","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-accelerated-computing-tutorial"],"_links":{"self":[{"href":"https:\/\/dgway.com\/blog_E\/wp-json\/wp\/v2\/posts\/463","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dgway.com\/blog_E\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dgway.com\/blog_E\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dgway.com\/blog_E\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/dgway.com\/blog_E\/wp-json\/wp\/v2\/comments?post=463"}],"version-history":[{"count":2,"href":"https:\/\/dgway.com\/blog_E\/wp-json\/wp\/v2\/posts\/463\/revisions"}],"predecessor-version":[{"id":473,"href":"https:\/\/dgway.com\/blog_E\/wp-json\/wp\/v2\/posts\/463\/revisions\/473"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/dgway.com\/blog_E\/wp-json\/wp\/v2\/media\/472"}],"wp:attachment":[{"href":"https:\/\/dgway.com\/blog_E\/wp-json\/wp\/v2\/media?parent=463"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dgway.com\/blog_E\/wp-json\/wp\/v2\/categories?post=463"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dgway.com\/blog_E\/wp-json\/wp\/v2\/tags?post=463"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}