Files
vortex/docs/fpga_setup.md
Blaise Tine c1e168fdbe Vortex 2.0 changes:
+ Microarchitecture optimizations
+ 64-bit support
+ Xilinx FPGA support
+ LLVM-16 support
+ Refactoring and quality control fixes

minor update

minor update

minor update

minor update

minor update

minor update

cleanup

cleanup

cache bindings and memory perf refactory

minor update

minor update

hw unit tests fixes

minor update

minor update

minor update

minor update

minor update

minor udpate

minor update

minor update

minor update

minor update

minor update

minor update

minor update

minor updates

minor updates

minor update

minor update

minor update

minor update

minor update

minor update

minor updates

minor updates

minor updates

minor updates

minor update

minor update
2023-11-10 02:47:05 -08:00

2.4 KiB

FPGA Startup and Configuration Guide

OPAE Environment Setup

$ source /opt/inteldevstack/init_env_user.sh
$ export OPAE_HOME=/opt/opae/1.1.2
$ export PATH=$OPAE_HOME/bin:$PATH
$ export C_INCLUDE_PATH=$OPAE_HOME/include:$C_INCLUDE_PATH
$ export LIBRARY_PATH=$OPAE_HOME/lib:$LIBRARY_PATH
$ export LD_LIBRARY_PATH=$OPAE_HOME/lib:$LD_LIBRARY_PATH
$ export RISCV_TOOLCHAIN_PATH=/opt/riscv-gnu-toolchain
$ export PATH=:/opt/verilator/bin:$PATH
$ export VERILATOR_ROOT=/opt/verilator

OPAE Build

The FPGA has to following configuration options:

  • DEVICE_FAMILY=arria10 | stratix10
  • NUM_CORES=#n

Command line:

$ cd hw/syn/altera/opae
$ PREFIX=test1 TARGET=fpga NUM_CORES=4 make

A new folder (ex: test1_xxx_4c) will be created and the build will start and take ~30-480 min to complete. Setting TARGET=ase will build the project for simulation using Intel ASE.

OPAE Build Configuration

The hardware configuration file /hw/rtl/VX_config.vh defines all the hardware parameters that can be modified when build the processor.For example, have the following parameters that can be configured:

  • NUM_WARPS: Number of warps per cores
  • NUM_THREADS: Number of threads per warps
  • PERF_ENABLE: enable the use of all profile counters

You configure the syntesis build from the command line:

$ CONFIGS="-DPERF_ENABLE -DNUM_THREADS=8" make

OPAE Build Progress

You could check the last 10 lines in the build log for possible errors until build completion.

$ tail -n 10 <build_dir>/build.log

Check if the build is still running by looking for quartus_sh, quartus_syn, or quartus_fit programs.

$ ps -u <username>

If the build fails and you need to restart it, clean up the build folder using the following command:

$ make clean

The file vortex_afu.gbs should exist when the build is done:

$ ls -lsa <build_dir>/vortex_afu.gbs

Signing the bitstream and Programming the FPGA

$ cd <build_dir>
$ PACSign PR -t UPDATE -H openssl_manager -i vortex_afu.gbs -o vortex_afu_unsigned_ssl.gbs
$ fpgasupdate vortex_afu_unsigned_ssl.gbs

FPGA sample test running OpenCL sgemm kernel

Run the following from the Vortex root directory

$ ./ci/blackbox.sh --driver=fpga --app=sgemm --args="-n64"