move opae to /hw/syn/
This commit is contained in:
123
hw/syn/opae/README
Normal file
123
hw/syn/opae/README
Normal file
@@ -0,0 +1,123 @@
|
||||
use the following step to build vortex and run it on fpga on intel cloud server using OPAE.
|
||||
This script is also present at ~/dev/runVortex
|
||||
|
||||
## To configure quartus and opae. Run this after logging in.
|
||||
source /export/fpga/bin/setup-fpga-env fpga-pac-a10
|
||||
#########################
|
||||
## Vortex Run commands ##
|
||||
#########################
|
||||
|
||||
#
|
||||
## Synthesis
|
||||
#
|
||||
|
||||
cd /driver/hw/opae
|
||||
|
||||
# Configure a Quartus build area
|
||||
afu_synth_setup -s sources.txt build_fpga
|
||||
|
||||
# Run Quartus in the vLab batch queue
|
||||
cd build_fpga && qsub-synth
|
||||
|
||||
# check last 10 lines in build log for possible errors
|
||||
tail -n 10 ./build_fpga_1c/build.log
|
||||
|
||||
# Check if the job is submitted to the queue and running. Status should be R
|
||||
qstat | grep tinebp
|
||||
|
||||
# Constantly monitoring the job submitted to the queue. Stop this using Ctrl+C
|
||||
watch ‘qstat | grep tinebp’
|
||||
|
||||
#
|
||||
## Executing on FPGA
|
||||
#
|
||||
|
||||
# From the build_fpga directory acquire a fpga node
|
||||
qsub-fpga
|
||||
|
||||
# Go to the directory whree qsub-synth was run above
|
||||
cd $PBS_O_WORKDIR
|
||||
|
||||
# Load the image onto an FPGA
|
||||
fpgaconf vortex_afu.gbs
|
||||
|
||||
# If this says Multiple ports. Then use --bus with fpgaconf. #bus info can be found by fpgainfo port
|
||||
fpgaconf --bus 0xaf vortex_afu.gbs
|
||||
|
||||
# Running the Test case
|
||||
cd /driver/tests/basic
|
||||
make run-fpga
|
||||
|
||||
#
|
||||
## ASE build instructions
|
||||
#
|
||||
source /export/fpga/bin/setup-fpga-env fpga-pac-a10
|
||||
|
||||
# Acquire a sever node for running ASE simulations
|
||||
qsub-sim
|
||||
|
||||
# build
|
||||
make ase
|
||||
|
||||
# tests
|
||||
./run_ase.sh build_ase_1c ../../../driver/tests/basic/basic -n16
|
||||
./run_ase.sh build_ase_1c ../../../driver/tests/demo/demo -n16
|
||||
./run_ase.sh build_ase_1c ../../../driver/tests/dogfood/dogfood -n16
|
||||
./run_ase.sh build_ase_1c ../../../benchmarks/opencl/vecadd/vecadd
|
||||
|
||||
# modify "vsim_run.tcl" to dump VCD trace
|
||||
vcd file trace.vcd
|
||||
vcd add -r /*/Vortex/hw/rtl/*
|
||||
run -all
|
||||
|
||||
# compress FPGA output files
|
||||
tar -zcvf output_files_1c.tar.gz `find ./build_fpga_1c -type f \( -iname \*.rpt -o -iname \*.txt -o -iname \*summary -o -iname \*.log \)`
|
||||
|
||||
# compress VCD trace
|
||||
tar -zcvf vortex.vcd.tar.gz ./build_ase_1c/work/vortex.vcd
|
||||
tar -zcvf trace.vcd.tar.gz obj_dir/trace.vcd
|
||||
tar -zcvf trace.fst.tar.gz trace.fst run.log
|
||||
tar -zcvf run.log.tar.gz run.log
|
||||
tar -cvjf vortex.vcd.tar.bz2 build_ase_1c/work/vortex.vcd
|
||||
tar -zcvf vortex.vcd.tar.gz build_ase_1c/work/vortex.vcd
|
||||
tar -zcvf run.log.tar.gz build_ase_1c/work/run.log
|
||||
tar -zcvf vx_scope.vcd.tar.gz vx_scope.vcd
|
||||
tar -cvjf vx_scope.vcd.tar.bz2 vx_scope.vcd
|
||||
tar -cvjf trace.fst.tar.bz2 trace.fst run.log
|
||||
tar -cvjf trace.vcd.tar.bz2 trace.vcd run.log
|
||||
|
||||
# decompress VCD trace
|
||||
tar -zxvf vortex.vcd.tar.gz
|
||||
tar -xvf vortex.vcd.tar.bz2
|
||||
|
||||
# launch Gtkwave
|
||||
gtkwave ./build_ase_1c/work/vortex.vcd &
|
||||
|
||||
# kill process by Users
|
||||
ps -u tinebp
|
||||
kill -9 <pid>
|
||||
ps -u tinebp | grep "blackbox" | awk '{print $1}' | xargs kill -9
|
||||
|
||||
# fixing device resource busy issue when deleting /build_ase_1c/
|
||||
lsof +D build_ase_1c
|
||||
|
||||
# quick off synthesis
|
||||
make -C unittest clean && make -C unittest > unittest/build.log 2>&1 &
|
||||
make -C pipeline clean && make -C pipeline > pipeline/build.log 2>&1 &
|
||||
make -C cache clean && make -C cache > cache/build.log 2>&1 &
|
||||
make -C core clean && make -C core > core/build.log 2>&1 &
|
||||
make -C core8 clean && make -C core8 > core8/build.log 2>&1 &
|
||||
make -C vortex clean && make -C vortex > vortex/build.log 2>&1 &
|
||||
make -C top clean && make -C top > top/build.log 2>&1 &
|
||||
make -C top1 clean && make -C top1 > top1/build.log 2>&1 &
|
||||
make -C top2 clean && make -C top2 > top2/build.log 2>&1 &
|
||||
make -C top8 clean && make -C top8 > top8/build.log 2>&1 &
|
||||
make -C top16 clean && make -C top16 > top16/build.log 2>&1 &
|
||||
make -C top32 clean && make -C top32 > top32/build.log 2>&1 &
|
||||
|
||||
# How to calculate the maximum operating frequency?
|
||||
200 Mhz -> period = 1/200x10^6 = 5ns
|
||||
if slack = +1.664 -> minimal period = 5-1.664 = 3.336 -> fmax = 1/3.336 = 300 Mhz
|
||||
|
||||
# build rtlsim from driver tests
|
||||
make -C ../../rtlsim clean && reset && make -C ../../rtlsim
|
||||
Reference in New Issue
Block a user