Quick Start
This section explains how to run RVComp on an FPGA board using a prebuilt bitstream and Linux image.
Please download the following files from the release page.
UART boot (Arty A7 35T or Nexys 4 DDR):
uart_fw_payload.bin: Linux image file for UART bootuart_arty_a7.bit: Bitstream for Arty A7 35T (UART boot)uart_nexys4ddr.bit: Bitstream for Nexys 4 DDR (UART boot)
MMC boot (Nexys 4 DDR only):
mmc_fw_payload.bin: Linux image for MMC bootmmc_nexys4ddr.bit: Bitstream for Nexys 4 DDR (MMC boot)
Note
MMC boot requires a microSD card inserted into the Nexys 4 DDR board’s microSD slot. If an Ethernet cable is connected to the board, the network interface is available after boot.
Common:
tools.zip: Programs to communicate with the FPGA board via UART
Please unzip tools.zip.
Please make sure the necessary tools and the FPGA board are ready:
FPGA board (Nexys 4 DDR or Arty A7 35T)
UART Boot (Arty A7 35T or Nexys 4 DDR)
Please connect the FPGA board to your PC.
Please download and extract
uart_fw_payload.bin,uart_arty_a7.bit(for Arty A7 35T) oruart_nexys4ddr.bit(for Nexys 4 DDR), and thetoolsdirectory from the archive mentioned above, and place them in the same directory.Please determine which serial port the USB connection is using. See Checking the Serial Port below.
Please open PowerShell (Windows) or a terminal (Linux) and change to the directory from step 2.
Please run the following command, replacing
<port>with the value from step 3. On success you should seePort <port> opened successfully..Nexys 4 DDR:
cd tools && uv run term <port> 3000000 --linux-boot --linux-file-path ../uart_fw_payload.binArty A7 35T:
cd tools && uv run term <port> 3000000 --linux-boot --linux-file-path ../uart_fw_payload.bin
Please launch Vivado and select Open Hardware Manager → Open Target → Auto Connect → Program Device.
When prompted for the bitstream, please choose
uart_arty_a7.bitif you use Arty A7, oruart_nexys4ddr.bitif you use Nexys 4 DDR, then click Program.The Linux image is transferred to the FPGA and boot begins. Once the login prompt appears, please log in as
root(no password).To use Ethernet, configure the network interface:
$ ip addr add <IP_ADDRESS>/<PREFIX_LEN> dev eth0 $ ip link set eth0 up
Please press
Ctrl+C, then type:qto exit the serial console.
MMC Boot (Nexys 4 DDR only)
MMC boot on Nexys 4 DDR requires a microSD card. The mmc_fw_payload.bin file is a combined binary containing the Linux image and root filesystem; it is written to the beginning of the microSD card. The serial terminal is still used as a console, but it does not send the Linux image in this mode.
Writing the microSD card
Insert a microSD card into your host machine.
Linux:
Identify the block device node with lsblk or dmesg. Verify the device node carefully before proceeding; writing to the wrong device will permanently destroy data on that device.
$ sudo dd if=mmc_fw_payload.bin of=/dev/sdX bs=1M conv=fsync,notrunc status=progress
Replace /dev/sdX with the actual device node of your microSD card (for example /dev/sdb). After the command completes, safely eject the card.
Windows (WSL):
Attach the microSD card to WSL, then use the same dd command as Linux above.
USB microSD card reader: follow this guide (usbipd) to bind the device to WSL.
Built-in card reader: follow this guide (WSL2 disk mounting) to mount the disk in WSL.
Booting from microSD card
Insert the written microSD card into the microSD slot on the Nexys 4 DDR board.
Connect the board to your PC via USB.
Determine the serial port as described in Checking the Serial Port.
Open a terminal and run the following command. No
--linux-bootflag is needed because the serial tool is used only as a console in this mode:$ cd tools && uv run term <port> 3000000
Launch Vivado and program the board with
mmc_nexys4ddr.bitusing Open Hardware Manager → Open Target → Auto Connect → Program Device.The bootrom copies the Linux image from the microSD card into DRAM and boots Linux. The root filesystem on the microSD card is mounted as
/dev/mmcblk0. Once the login prompt appears, log in asroot(no password).To use Ethernet, configure the network interface:
$ ip addr add <IP_ADDRESS>/<PREFIX_LEN> dev eth0 $ ip link set eth0 up
Press
Ctrl+C, then type:qto exit the serial console.
Checking the Serial Port
Windows
Please run the following command in PowerShell:
Get-CimInstance Win32_PnPEntity | Where-Object { $_.Caption -match 'COM' } | Select-Object Caption, DeviceID
Please identify the entry whose DeviceID contains FTDI; this corresponds to the FPGA board. It appears in the form USB Serial Device (COM*). Please note the COM port name.
WSL
Please follow the instructions in this article to attach USB devices to WSL. Please run usbipd list; the entry with VID:PID of 0403:6010 is usually the FPGA board. After attaching it, please follow the Linux instructions below.
Linux
Please run the following command in a terminal:
$ ls /dev/ttyUSB*
The available USB serial ports are listed. If only one FPGA board is connected as a USB serial device, it is typically /dev/ttyUSB1. When multiple USB serial devices are present, please run the command below for each port and look for a device where ID_VENDOR is Digilent:
$ udevadm info /dev/ttyUSB1 | grep ID_VENDOR=
Please record the /dev/ttyUSB* path assigned to the FPGA board.
Prebuilt Bitstream Parameters
The prebuilt bitstreams provided in the release are configured with the default settings in tools/setting.py.