vivado ip with systemC model in vcs simulation

this is an example, vivado ip with systemC model in vcs simulation

脚本:


echo "----------------------------------------------------------------"
echo "----------------------------------------------------------------"
echo "-- Simulator : vcs-mx 2018.09"
echo "-- top module: $TOP_NAME"
echo "----------------------------------------------------------------"
echo "----------------------------------------------------------------"

touch synopsys_sim.setup

vivado -nojournal -mode tcl -source ../vivado.tcl -tclargs vcs

syscan -cpp ${ROOT_DIR}/try_part/gcc-6.2.0-modified/gcc-6.2.0/install/bin/g++ -l sysc.log \
        ${CUR_DIR}/ip/axi_clock_converter_0/sim/axi_clock_converter_0.cpp \
        ${CUR_DIR}/ip/axi_clock_converter_0/sim/axi_clock_converter_0_sc.cpp \
        ${CUR_DIR}/ip/axi_clock_converter_0/sysc/axi_clock_converter.cpp \
        ${CUR_DIR}/ip/axi_clock_converter_1/sim/axi_clock_converter_1.cpp \
        ${CUR_DIR}/ip/axi_clock_converter_1/sim/axi_clock_converter_1_sc.cpp \
        ${CUR_DIR}/ip/axi_crossbar_0/sim/axi_crossbar_0.cpp \
        ${CUR_DIR}/ip/axi_crossbar_0/sim/axi_crossbar_0_sc.cpp \
        ${CUR_DIR}/ip/axi_crossbar_0/src/axi_crossbar.cpp \
        ${CUR_DIR}/ip/axi_dwidth_converter_0/sim/axi_dwidth_converter_0.cpp \
        ${CUR_DIR}/ip/axi_dwidth_converter_0/sim/axi_dwidth_converter_0_sc.cpp \
        ${CUR_DIR}/ip/axi_dwidth_converter_0/src/axi_dwidth_converter.cpp \
        ${CUR_DIR}/ip/axi_protocol_converter_0/sim/axi_protocol_converter_0.cpp \
        ${CUR_DIR}/ip/axi_protocol_converter_0/sim/axi_protocol_converter_0_sc.cpp \
        ${CUR_DIR}/ip/axi_protocol_converter_0/src/axi_protocol_converter.cpp \
        ${CUR_DIR}/ip/ddr4_0/sim/ddr4_0.cpp \
        ${CUR_DIR}/ip/ddr4_0/sim/ddr4_0_sc.cpp \
        ${CUR_DIR}/ip/ddr4_0/sim_tlm/top/sim_ddr_v2_0.cpp \
        ${CUR_DIR}/ip/hbm_0/sim/hbm_0.cpp \
        ${CUR_DIR}/ip/hbm_0/sim/hbm_0_sc.cpp \
        ${CUR_DIR}/ip/hbm_0/sysc/src/hbm_fmodel_base.cxx \
        ${CUR_DIR}/ip/hbm_0/sysc/src/hbm_fmodel_shared_memory.cxx \
        ${CUR_DIR}/ip/hbm_0/sysc/src/hbm_sc.cpp \
        ${CUR_DIR}/ip/hbm_0/sysc/src/hbmChannel.cpp \
        ${CUR_DIR}/ip/hbm_0/sysc/src/hbmModel.cpp

vlogan -full64 -debug_access+all -sverilog -kdb -lca -work WORK +v2k +vcs+lic+wait -timescale=1ns/1ps \
        -cpp ${ROOT_DIR}/try_part/gcc-6.2.0-modified/gcc-6.2.0/install/bin/g++ \
        +define+EXPORT_CXLMEM +define+EXPORT_BARMEM -f ${CUR_DIR}/verdi.f \
        ${PRJ_DIR}/ref_design/source/cxl_device_type3_cpi/bench/stimuli_m0.sv \
        ${XILINX_VIVADO}/data/verilog/src/glbl.v

vcs -full64 -debug_access+all -sverilog -sysc -kdb -lca WORK.${TOP_HIER} WORK.glbl -LDFLAGS -Wl,--no-as-needed \
        -cpp ${ROOT_DIR}/try_part/gcc-6.2.0-modified/gcc-6.2.0/install/bin/g++ -sysc=adjust_timeres \
        -P ${VERDI_HOME}/share/PLI/VCS/LINUX64/novas.tab ${VERDI_HOME}/share/PLI/VCS/LINUX64/pli.a -l elaborate.log

./simv -gui=verdi -l simu.log -ucli -do ../vcs.tcl

IP related:

+define+XILINX_SIMULATOR

// ${CUR_DIR}/ip/axi_clock_converter_0/sim/axi_clock_converter_0.v
// ${CUR_DIR}/ip/axi_clock_converter_0/sim/axi_clock_converter_0.cpp
${CUR_DIR}/ip/axi_clock_converter_0/sim/axi_clock_converter_0_stub.sv
// ${CUR_DIR}/ip/axi_clock_converter_0/sim/axi_clock_converter_0_sc.cpp

// ${CUR_DIR}/ip/axi_clock_converter_0/sysc/axi_clock_converter.cpp

// ${CUR_DIR}/ip/axi_clock_converter_1/sim/axi_clock_converter_1.v
// ${CUR_DIR}/ip/axi_clock_converter_1/sim/axi_clock_converter_1.cpp
${CUR_DIR}/ip/axi_clock_converter_1/sim/axi_clock_converter_1_stub.sv
// ${CUR_DIR}/ip/axi_clock_converter_1/sim/axi_clock_converter_1_sc.cpp

// ${CUR_DIR}/ip/axi_crossbar_0/sim/axi_crossbar_0.v
// ${CUR_DIR}/ip/axi_crossbar_0/sim/axi_crossbar_0.cpp
${CUR_DIR}/ip/axi_crossbar_0/sim/axi_crossbar_0_stub.sv
// ${CUR_DIR}/ip/axi_crossbar_0/sim/axi_crossbar_0_sc.cpp
// ${CUR_DIR}/ip/axi_crossbar_0/src/axi_crossbar.cpp

// ${CUR_DIR}/ip/axi_dwidth_converter_0/sim/axi_dwidth_converter_0.v
// ${CUR_DIR}/ip/axi_dwidth_converter_0/sim/axi_dwidth_converter_0.cpp
${CUR_DIR}/ip/axi_dwidth_converter_0/sim/axi_dwidth_converter_0_stub.sv
// ${CUR_DIR}/ip/axi_dwidth_converter_0/sim/axi_dwidth_converter_0_sc.cpp
// ${CUR_DIR}/ip/axi_dwidth_converter_0/src/axi_dwidth_converter.cpp

// ${CUR_DIR}/ip/axi_protocol_converter_0/sim/axi_protocol_converter_0.v
// ${CUR_DIR}/ip/axi_protocol_converter_0/sim/axi_protocol_converter_0.cpp
${CUR_DIR}/ip/axi_protocol_converter_0/sim/axi_protocol_converter_0_stub.sv
// ${CUR_DIR}/ip/axi_protocol_converter_0/sim/axi_protocol_converter_0_sc.cpp
// ${CUR_DIR}/ip/axi_protocol_converter_0/src/axi_protocol_converter.cpp

${CUR_DIR}/ip/clk_wiz_0/clk_wiz_0.v
${CUR_DIR}/ip/clk_wiz_0/clk_wiz_0_clk_wiz.v

// ${CUR_DIR}/ip/ddr4_0/sim/ddr4_0.cpp
${CUR_DIR}/ip/ddr4_0/sim/ddr4_0_stub.sv
// ${CUR_DIR}/ip/ddr4_0/sim/ddr4_0_sc.cpp
// ${CUR_DIR}/ip/ddr4_0/sim_tlm/top/sim_ddr_v2_0.cpp

// ${CUR_DIR}/ip/hbm_0/sim/hbm_0.sv
// ${CUR_DIR}/ip/hbm_0/sim/hbm_0.cpp
${CUR_DIR}/ip/hbm_0/sim/hbm_0_stub.sv
// ${CUR_DIR}/ip/hbm_0/sim/hbm_0_sc.cpp

// ${CUR_DIR}/ip/hbm_0/sysc/src/hbm_fmodel_base.cxx
// ${CUR_DIR}/ip/hbm_0/sysc/src/hbm_fmodel_shared_memory.cxx
// ${CUR_DIR}/ip/hbm_0/sysc/src/hbm_sc.cpp
// ${CUR_DIR}/ip/hbm_0/sysc/src/hbmChannel.cpp
// ${CUR_DIR}/ip/hbm_0/sysc/src/hbmModel.cpp
${CUR_DIR}/ip/hbm_0/verif/model/hbm_model.sv
+incdir+${CUR_DIR}/ip/hbm_0/verif/model

-v ${XILINX_VIVADO}/data/ip/xpm/xpm_memory/hdl/xpm_memory.sv
-v ${XILINX_VIVADO}/data/ip/xpm/xpm_cdc/hdl/xpm_cdc.sv
-v ${XILINX_VIVADO}/data/ip/xpm/xpm_fifo/hdl/xpm_fifo.sv

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值