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 RHS Research Nitefury II FPGA into either an open M.2. slot on your machine or into an M.2. to Thunderbolt enclosure (then attach the enclosure to your system via a Thunderbolt cable). We have successfully used this enclosure: https://www.amazon.com/ORICO-Enclosure-Compatible-Thunderbolt-Type-C-M2V01/dp/B08R9DMFFT. Before permanently installing your Nitefury into your M.2. slot or enclosure, ensure that you have attached the ribbon cable that will be used for JTAG to the underside of the board (see step 4 below).

  3. Attach any additional power cables between the FPGA and the host machine. This step is not required for the Nitefury, since all power is delivered via M.2. or Thunderbolt.

  4. Attach the USB cable between the FPGA and the host machine for JTAG. For the Nitefury, this requires attaching the 14-pin JTAG adapter included with the board to the board using the included ribbon cable, then attaching a USB to JTAG adapter such as the Digilent HS2: https://digilent.com/shop/jtag-hs2-programming-cable/.

  5. Boot the machine.

  6. Obtain an existing bitstream tar file for your FPGA by opening the bitstream_tar URL listed under nitefury_firesim_rocket_singlecore_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 three files; the one we are currently interested in will be called firesim.mcs. Note the full path of this firesim.mcs file 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 RHS Research Nitefury II, choose s25fl256xxxxxx0-spi-x1_x2_x4 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.

  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).)

  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

Remember to keep the USB cable for JTAG connected at all times when running FireSim simulations (it is used to program the FPGA).