FPGA Setup

The following installation steps are FPGA-specific and should be run on all run farm machines that install an FPGA. You might need sudo access to setup the FPGA.

  1. Poweroff your machine.

  2. Insert your Xilinx VCU118 FPGA into an open PCIe slot in the machine. Also, ensure that the SW16 switches on the board are set to 0101 to enable QSPI flashing over JTAG (i.e., position 1 = 0, position 2 = 1, position 3 = 0, and position 4 = 1. Having the switch set to the side of the position label indicates 0.)

  3. Attach any additional power cables between the FPGA and the host machine. For the VCU118, this is usually ATX 4-pin peripheral power (NOT PCIe power) from the system’s PSU, attached to the FPGA via the “ATX Power Supply Adapter Cable” that comes with the VCU118.

  4. Attach the USB cable between the FPGA and the host machine for JTAG.

  5. Boot the machine.

  6. Obtain an existing bitstream tar file for your FPGA by opening the bitstream_tar URL listed under xilinx_vcu118_firesim_rocket_singlecore_4GB_no_nic in the following file: ${CY_DIR}/sims/firesim-staging/sample_config_hwdb.yaml.

  7. Download/extract the .tar.gz file to a known location. Inside, you will find four files; the ones we are currently interested in will be called firesim.mcs and firesim_secondary.mcs. Note the full path of the firesim.mcs and firesim_secondary.mcs files for the next step.

  8. Open Vivado Lab and click “Open Hardware Manager”. Then click “Open Target” and “Auto connect”.

  9. Right-click on your FPGA and click “Add Configuration Memory Device”. For a Xilinx VCU118, choose mt25qu01g-spi-x1_x2_x4_x8 as the Configuration Memory Part. Click “OK” when prompted to program the configuration memory device.

  10. For Configuration file, choose the firesim.mcs file from step 7 and for Configuration file 2, choose the firesim_secondary.mcs file from step 7.

  11. Uncheck “Verify” and click OK.

  12. Right-click on your FPGA and click “Boot from Configuration Memory Device”.

  13. When programming the configuration memory device is completed, power off your machine fully (i.e., the FPGA should completely lose power). Then, set the SW16 switches on the board to 0001 to set the board to automatically program the FPGA from the QSPI at boot (i.e., position 1 = 0, position 2 = 0, position 3 = 0, and position 4 = 1. Having the switch set to the side of the position label indicates 0.))

  14. Cold-boot the machine. A cold boot is required for the FPGA to be successfully re-programmed from its flash.

  15. Once the machine has booted, run the following to ensure that your FPGA is set up properly:

lspci -vvv -d 10ee:903f

If successful, this should show an entry with Xilinx as the manufacturer and two memory regions. There should be one entry for each FPGA you’ve added to the Run Farm Machine.

Note

If necessary, you can remove the USB cable for JTAG (the FPGA is programmed through PCIe for FireSim simulations on the Xilinx VCU118). However, we still recommend leaving the cable attached, since it will allow you to re-flash the SPI in case there are issues.