FPGA Deployment

Deploy ATA on FPGA hardware

Resource Utilization

ResourceUtilizationDevice
LUTs~12,000Xilinx ZCU104
FFs~8,000Xilinx ZCU104
BRAM36 blocks36Kb each
DSP24Arithmetic

Vivado Integration

# Add source files
add_files -fileset sources_1 [glob rtl/**/*.sv]

# Set top module
set_property top ata_top [current_fileset]

# Constraints
create_clock -period 2.857 -name clk [get_ports clk]
set_input_delay 0.5 -clock clk [all_inputs]
set_output_delay 0.5 -clock clk [all_outputs]

Software Access

#include "ata_driver.h"

// Initialize
ata_init(ATA_BASE_ADDR);

// Configure
ata_set_iter_budget(100);
ata_set_thresholds(0.25, 0.25, 0.25);

// Make decision
ata_result_t result = ata_decide_blocking(actions, n_actions);