Sweep: FP-Adder Mesh Testcase
“Sweep” is not a standalone accelerator — it is the testcase (tools/generate/mosaic_sweep.pl) that exercises the FP adder tile across a larger 8x8 mesh. This page walks through that configuration.
Tile Layout
$new_tile{'fp_add'} = 'Tile_fp_adder';
$param{'r'} = 8;
$param{'c'} = 8;
# generic_tile_array() fills the 8x8 grid with 'pico' tiles by default, then:
$tile_array[0][1] = 'spad'; $pico_program[1] = 'nop.hex';
$tile_array[1][1] = 'fp_add'; $pico_program[1*$c+1] = '';
$tile_array[1][2] = 'spad'; $pico_program[1*$c+2] = 'nop.hex';
Only tiles (0,1), (1,1), and (1,2) are overridden from the default all-pico grid: a scratchpad feeding data in, the FP adder tile, and a scratchpad receiving the result. The remaining tiles keep the default pico firmware from generic_tile_array().
Because this testcase pushes more traffic through the mesh, it also widens the NoC buffer depth:
$param{'noc_buffer_addr_w'} = 9; # default is 8
Firmware pico_add3 (from tools/picorv_c/c_fp_acc/) drives the test; check_fp_adder.sh validates results after simulation. The script builds for Vivado (board = 'u250') but leaves run_sim = 0 and vivado_project = 0 — i.e. it generates the design without automatically launching a simulation or building a full project.
Purpose
Unlike the minimal 8x8-with-one-accelerator layout in FP: Testcase mosaic_fp.pl, this configuration is meant to validate the FP adder tile sitting inside a larger, mostly-default mesh rather than a dedicated small test grid — useful for checking NoC routing/buffering behavior (hence the widened buffer) when the accelerator is not adjacent to the driving pico in a minimal topology.