| Thesis project code repo of Tianyuan Qiu
-
Repo and toolchain
- Vivado toolchain path:
/tools/Xilinx/Vivado/2021.1
- Repo path:
~/workspace/FPGA-Sketch
- Vivado toolchain path:
-
[Optional] Check environment settings (following commands are tested in zsh)
- Under repo:
source ./utilities/settings.sh
- Under repo:
-
Build / Simulation / Program
- See
utilities
and following instructions
- See
-
Clean
- Run
sudo make clean
for hardware library - Run
make -C $NF_DESIGN_DIR/hw clean
for hardware project (reference NIC)
- Run
- Ubuntu 18.04
- Vivado 2021.1 (Vivado 2020.2 is available but needs some fix)
- Download Xilinx Application 1151 CAM (or search
xapp1151
on Xilinx support website. Copy the zip and update at two locations:
- Download Xilinx Application 1151 CAM (or search
# Under NetFPGA-PLUS repo folder
$ cp xapp1151_Param_CAM.zip ./hw/lib/xilinx/cam_v1_1_0/
$ make -C ./hw/lib/xilinx/cam_v1_1_0/ update
$ cp xapp1151_Param_CAM.zip ./hw/lib/xilinx/tcam_v1_1_0/
$ make -C ./hw/lib/xilinx/tcam_v1_1_0/ update
-
Run Simulation
Do not need compiled hw project but compiled hardware library
Requirements: python>3.6, scapy, cryptography. Set
PYTHON_BNRY
intools/settings.sh
To enable VCD output, enable the commented codes at the end of [
$NF_DESIGN_DIR/hw/tcl/reference_nic_sim.tcl
]. VCD output location is$NF_DESIGN_DIR/test/project/reference_nic.sim/sim_1/behav/xsim/dump.vcd
.- Enter
cd $NFPLUS_FOLDER
- Run
./tools/scripts/nf_test.py sim --major inc --minor size
- Enter
-
Get the bitstream
-
[Optional] Warm reboot
-
Setup device (see OpenNIC Shell for explaination)
If the FPGA NIC is already deployed, shut down network device interface first with a command like
sudo ifconfig enp91s0f0 down
To find the card's PCI ID(s), check the end of the result of command
lspci -nnd 10ee:
. Make sure the PCI IDs in the commands of the following 2 scripts are the same as your command result, because PCI IDs may change according to current FPGA configuration. (Use5**c
for cold start (manufacturing(golden) image) and9**f
for programmed shell (OpenNIC/NetFPGA/FPGA-Sketch).)- Run in a terminal:
bash ./utilities/setup_device_au280.sh
- Keep the script running throughout the entire FPGA board programming process
- Run in a terminal:
-
Run in another terminal:
bash ./utilities/program_au280.sh
- Check the bitstream filename in script
-
Warm reboot
-
Install driver