3.2. AIT options¶
The AIT behavior can be modified with the available options. They are summarized and briefly described in the AIT help, which is:
usage: ait -b BOARD -n NAME The Accelerator Integration Tool (AIT) automatically integrates OmpSs@FPGA accelerators into FPGA designs using different vendor backends.
- Required:
-b BOARD, --board BOARD board model. Supported boards by vendor: xilinx: alveo_u200, alveo_u250, axiom, com_express, zcu102, zedboard, zybo, zynq702, zynq706 -n NAME, --name NAME project name - Generation flow:
-d DIR, --dir DIR path where the project directory tree will be created (def: ‘./’) --disable_IP_caching disable IP caching. Significantly increases generation time --disable_utilization_check disable resources utilization check during HLS generation --disable_board_support_check disable board support check --from_step FROM_STEP initial generation step. Generation steps by vendor: xilinx: HLS, design, synthesis, implementation, bitstream, boot (def: ‘HLS’) --IP_cache_location IP_CACHE_LOCATION path where the IP cache will be located (def: ‘/var/tmp/ait/<vendor>/IP_cache/’) --to_step TO_STEP final generation step. Generation steps by vendor: xilinx: HLS, design, synthesis, implementation, bitstream, boot (def: ‘bitstream’) - Bitstream configuration:
-c CLOCK, --clock CLOCK FPGA clock frequency in MHz (def: ‘100’) --hwruntime HWRUNTIME add a hardware runtime. Available hardware runtimes by vendor: xilinx: pom, som (def: som) --hwcounter add a hardware counter to the bitstream --wrapper_version WRAPPER_VERSION version of accelerator wrapper shell. This information will be placed in the bitstream information --datainterfaces_map DATAINTERFACES_MAP path of mappings file for the data interfaces --placement_file PLACEMENT_FILE json file specifying accelerator placement --floorplanning_constr FLOORPLANNING_CONSTR built-in floorplanning constraints for accelerators and static logic acc: accelerator kernels are constrained to a SLR region static: each static logic IP is constrained to its relevant SLR all: enables both ‘acc’ and ‘static’ options By default no floorplanning constraints are used --slr_slices SLR_SLICES enable SLR crossing register slices acc: create register slices for SLR crossing on accelerator-related interfaces static: create register slices for static logic IPs all: enable both ‘acc’ and ‘static’ options By default they are disabled --memory_interleaving_stride MEM_INTERLEAVING_STRIDE size in bytes of the stride of the memory interleaving. By default there is no interleaving - User-defined files:
--user_constraints USER_CONSTRAINTS path of user defined constraints file --user_pre_design USER_PRE_DESIGN path of user TCL script to be executed before the design step (not after the board base design) --user_post_design USER_POST_DESIGN path of user TCL script to be executed after the design step - Hardware Runtime:
--cmdin_queue_len CMDIN_QUEUE_LEN maximum length (64-bit words) of the queue for the hwruntime command in This argument is mutually exclusive with –cmdin_subqueue_len --cmdin_subqueue_len CMDIN_SUBQUEUE_LEN length (64-bit words) of each accelerator subqueue for the hwruntime command in. This argument is mutually exclusive with –cmdin_queue_len Must be power of 2 Def. max(64, 1024/num_accs) --cmdout_queue_len CMDOUT_QUEUE_LEN maximum length (64-bit words) of the queue for the hwruntime command out This argument is mutually exclusive with –cmdout_subqueue_len --cmdout_subqueue_len CMDOUT_SUBQUEUE_LEN length (64-bit words) of each accelerator subqueue for the hwruntime command out. This argument is mutually exclusive with –cmdout_queue_len Must be power of 2 Def. max(64, 1024/num_accs) --spawnin_queue_len SPAWNIN_QUEUE_LEN length (64-bit words) of the hwruntime spawn in queue. Must be power of 2 (def: ‘1024’) --spawnout_queue_len SPAWNOUT_QUEUE_LEN length (64-bit words) of the hwruntime spawn out queue. Must be power of 2 (def: ‘1024’) --hwruntime_interconnect HWR_INTERCONNECT type of hardware runtime interconnection with accelerators centralized distributed (def: ‘centralized’) - Picos:
--picos_max_args_per_task PICOS_MAX_ARGS_PER_TASK maximum number of arguments for any task in the bitstream (def: ‘15’) --picos_max_deps_per_task PICOS_MAX_DEPS_PER_TASK maximum number of dependencies for any task in the bitstream (def: ‘8’) --picos_max_copies_per_task PICOS_MAX_COPIES_PER_TASK maximum number of copies for any task in the bitstream (def: ‘15’) --picos_num_dcts NUM_DCTS number of DCTs instantiated (def: ‘1’) --picos_tm_size PICOS_TM_SIZE size of the TM memory (def: ‘128’) --picos_dm_size PICOS_DM_SIZE size of the DM memory (def: ‘512’) --picos_vm_size PICOS_VM_SIZE size of the VM memory (def: ‘512’) --picos_dm_ds DATA_STRUCT data structure of the DM memory BINTREE: Binary search tree (not autobalanced) LINKEDLIST: Linked list (def: ‘BINTREE’) --picos_dm_hash HASH_FUN hashing function applied to dependence addresses P_PEARSON: Parallel Pearson function XOR (def: ‘P_PEARSON’) --picos_hash_t_size PICOS_HASH_T_SIZE DCT hash table size (def: ‘64’) - Miscellaneous:
-h, --help show this help message and exit -i, --verbose_info print extra information messages -k, --keep_files keep files on error -v, --verbose print vendor backend messages --version print AIT version and exits - Xilinx-specific arguments:
--debug_intfs INTF_TYPE choose which interfaces mark for debug and instantiate the correspondent ILA cores AXI: debug accelerator’s AXI interfaces stream: debug accelerator’s AXI-Stream interfaces both: debug both accelerator’s AXI and AXI-Stream interfaces custom: debug user-defined interfaces none: do not mark for debug any interface (def: ‘none’) --debug_intfs_list DEBUG_INTFS_LIST path of file with the list of interfaces to debug --ignore_eng_sample ignore engineering sample status from chip part number --interconnect_opt OPT_STRATEGY AXI interconnect optimization strategy: Minimize ‘area’ or maximize ‘performance’ (def: ‘area’) - –interconnect_regslice INTER_REGSLICE_LIST [INTER_REGSLICE_LIST …]
- enable register slices on AXI interconnects all: enables them on all interconnects DDR: enables them on interconnects in DDR datapath hwruntime: enables them on the AXI-stream interconnects betwen the hwruntime and the accelerators
-j JOBS, --jobs JOBS specify the number of Vivado jobs to run simultaneously. By default it uses the value returned by nproc --target_language TARGET_LANG choose target language to synthesize files to: VHDL or Verilog (def: ‘VHDL’) --simplify_interconnection simplify interconnection between accelerators and DDR. Might negatively impact timing - environment variables:
- PETALINUX_INSTALL path where Petalinux is installed PETALINUX_BUILD path where the Petalinux project is located