Skip to content
This repository has been archived by the owner on Jan 7, 2023. It is now read-only.

ASE Testing

Andrey Ayupov edited this page Mar 23, 2017 · 3 revisions

ASE simulation

For details on how to set up ASE simulation, please refer to the ASE User Guide. To enable performance simulator with ASE, please refer to section Performance Simulator. The only change needed is to the vlog_files.list file.

-F /nfs/site/disks/scl.work.38/ppt/aayupov/systemc/atd_fpga_app-qa_bblocks/BBB_cci_mpf/hw/sim/cci_mpf_sim_addenda.txt


-F /nfs/site/disks/scl.work.38/ppt/aayupov/systemc/hld_fpga-sysc/rtl/5.0.3/ase_rtl_common_files.txt

+incdir+PATH_TO_YOUR_HLD_DEFINES_DOT_VH

-F /YOUR/RTL/FILE/LIST.f (HLS tool generates one)

Alternatively, if the generated by HLS RTL is in one file (e.g. dut.v)

-F /nfs/site/disks/scl.work.38/ppt/aayupov/systemc/atd_fpga_app-qa_bblocks/BBB_cci_mpf/hw/sim/cci_mpf_sim_addenda.txt


-F /nfs/site/disks/scl.work.38/ppt/aayupov/systemc/hld_fpga-sysc/rtl/5.0.3/ase_rtl_common_files.txt

+incdir+PATH_TO_YOUR_HLD_DEFINES_DOT_VH

/YOUR/RTL/LOCATION/dut.v

Software

Because the SW/HW interface is fixed in the proposed methodology, we provide an application that implements the interface and implements a SW layer to talk to FPGA. This application has to be compiled first. You will need a path to the AALSDK installation location ($AALSDK_INSTALL variable below). In addition, we use the MPF building block (BBB) for virtual-to-physical address space conversion (Variable $MPF_SW_ROOT below).

cd $HLD_ROOT/fpga_sw/aal_5.0.3/AcclAppVtp/ make prefix=$AALSDK_INSTALL

Then, in user application where AcclApp is used, include of AcclApp is needed, for example (see include when FPGA_ACC is defined):

#ifdef SC_KERNEL
#include "cycle_detection_hls_tb.h"
#elif SC_ACC
#include "cycle_detection_acc_tb.h"
#elif FPGA_ACC
#include "AcclApp.h"
#else
#include "cycle_detection_hw_emul.h"
#endif
 

Both AcclApp library (that was built in AcclAppVtp above) and MPF BBB have to be dynamically linked then with user application. You may need to use LD_LIBRARY_PATH to locate those libraries, or alternatively, use the following options as part of LDFLAGS for the executable creation:

    LDFLAGS += -L$(AALSDK_INSTALL)/lib -Wl,-rpath-link -Wl,$(AALSDK_INSTALL)/lib -Wl,-rpath -Wl,$(AALSDK_INSTALL)/lib \
            -L$(AALSDK_INSTALL)/lib64 -Wl,-rpath-link -Wl,$(AALSDK_INSTALL)/lib64 -Wl,-rpath -Wl,$(AALSDK_INSTALL)/lib64 \
            $(HLD_ROOT)/fpga_sw/aal_5.0.3/AcclAppVtp/libAcclApp.so -Wl,-rpath -Wl,$(HLD_ROOT)/fpga_sw/aal_5.0.3/AcclAppVtp/ \
            -Wl,-rpath -Wl,$(MPF_SW_ROOT)/

Clone this wiki locally