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)
Connect the FPGA board to your PC.
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.Open PowerShell (Windows) or a terminal (Linux) and change to the directory from step 2.
Determine which serial port the USB connection is using. You can see by executing
cd tools && uv run findport. If this does not work, please see Checking the Serial Port below.Run the following command, replacing
<port>with the value from step 4 (if you are not in the tools directory, please executecd toolsfirst). On success you should seePort <port> opened successfully..Nexys 4 DDR:
uv run term <port> 3000000 --linux-boot --linux-file-path ../uart_fw_payload.binArty A7 35T:
uv run term <port> 3000000 --linux-boot --linux-file-path ../uart_fw_payload.bin
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
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.
$ diskutil unmountDisk /dev/sdX
$ sudo dd if=mmc_fw_payload.bin of=/dev/sdX bs=1M conv=fsync,notrunc status=progress
$ sync
$ diskutil eject /dev/sdX
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.
Download and extract
mmc_nexys4ddr.bit(for Nexys 4 DDR), and thetoolsdirectory from the archive mentioned above, and place them in the same directory.Determine which serial port the USB connection is using. You can see by executing
cd tools && uv run findport. If this does not work, please see Checking the Serial Port below.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 // if you are not already in the tools directory $ 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
You can check the serial port by running the following command in the tools directory:
uv run findport (need to have uv installed). If this command does not work, please follow the instructions below for your operating system.
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.