• Makefile VCS


    LD_LIBRARY_PATH = ${NOVAS_HOME}/share/PLI/VCS/LINUX

    test = basic_test

    program_path = ./env
    PROGRAM_TOP = $(program_path)/test.sv
    package_path = ./packages
    PACKAGES = $(package_path)/all_user_pkg.sv
    MODULE_CTRL = ./common/dut_def.v ./common/dut_reg_def.v
    TEST_TOP = $(MODULE_CTRL) $(PACKAGES) ${PROGRAM_TOP}

    DUT = XXX

    HARNESS_TOP = $(program_path)/top.sv

    TOP = $(HARNESS_TOP) $(TEST_TOP)

    DUT_SIM_FILE = $(TEST_TOP) $(DUT) ${HARNESS_TOP}

    ###LOG/WAVEFORM SETUP
    log = ./results/testlog/$(test)_$(seed).log
    vpd_name = ./results/waveforms/$(test)_$(seed).vpd
    fsdb_name = ./results/waveforms/$(test)_$(seed).fsdb
    ###GEN fsdb/vpd waveform
    vpd = 0
    fsdb = 0
    vpd_file =
    fsdb_file =

    ifeq ($(vpd),1)
    vpd_file = +vpdfile+$(vpd_name)
    endif
    ifeq ($(fsdb),1)
    fsdb_file = +fsdbfile+$(fsdb_name)
    endif

    ####UVM SETUP
    verbosity = UVM_MEDIUM
    uvm_ver = uvm-1.2
    seed = 1
    uvm_defines = UVM_NO_DEPRECATED+UVM_OBJECT_MUST_HAVE_CONSTRUCTOR
    defines =
    plus =
    ##option: UVM_TR_RECORD +UVM_LOG_RECORD
    option =
    ##trace: UVM_OBJECTION_TRACE
    trace =

    ##COVERAGE SETUP
    codecoverage =
    cov_dir =
    cov_dir_op =
    cov = 0

    ifeq ($(cov),1)
    codecoverage = -cm line+tgl+cond+branch+assert
    cov_dir = ./results/cov/$(test)_$(seed).vdb
    cov_dir_op = -cm_dir $(cov_dir)
    endif

    ##SVA SETUP
    sva = +assert -asssert svaext

    compile_ini_val_ctrl = +vcs+initreg+random
    simv_ini_val_ctrl = +vcs+initreg+0

    ###COMPILE SETUP
    compile_swtiches = -sverilog -fsdb -lca -kdb=both -debug_access+all +vcs+vcdpluson -timescale="1ns/100ps" -l comp.log
    -ntb_opts $(uvm_ver) $(DUT_SIM_FILE)
    +define+$(uvm_defines)+$(defines)+UVM_MAX_STRAMEBITS=10000
    $(compile_ini_val_ctrl)
    ###RUN SETUP
    runtime_switches = -l $(log) +UVM_TESTNAME=$(test) + UVM_VERBOSITY=$(verbosity)
    +$(plus) +$(trace) +$(option) $(simv_ini_val_ctrl)
    ###VERDI SETUP
    verdi_swtiches = -sverilog -uvmDebug -ntb_opts $(uvm_ver) $(DUT_SIM_FILE)
    verdi_interactive_switches = $(DUT_SIM_FILE)

    ##TESTLIST
    testlist = ./testlist
    #sensitive filelist for smart compile
    RTL_FILE = $(shell cat filelist.f | grep -v "//" | grep -v "-" | grep -v "+" | grep -v "*")
    sts_compile_list = $(shell find $(program_path)/ | grep ".sv"


    ###MAIN CODE PART
    all: simv run
    simv compile: $(RTL_FILE) $(sts_compile_list)
    vcs $(compile_swtiches) $(codecoverage) $(sva)
    run:
    ./simv +ntb_random_seed=$(seed) $(runtime_switches) $(codecoverage) $(sva) $(vpd_file) $(fsdb_file) $(cov_dir_op) -licqueue
    ifeq ($(cov),1)
    test -d "simv.vdb/snps/coverage/db/testdata/" || mkdir -p simv.vdb/snps/coverage/db/testdata
    mv -f $(cov_dir)/snps/coverage/db/testdata/test/ simv.vdb/snps/coverage/db/testdata/$(test)_$(seed)
    endif

    regress:
    make compile
    -mkdir simv.vdb/snps/coverage/db/testdata/
    perl run_regress $(testlist)

    result:
    perl get_result ./results

    dve:
    dve -vpd $(vpd_name) &

    dve_i:
    export DVE_CASENAME=$(test);
    ./simv -gui=dve +ntb_random_seed=$(seed) $(runtime_switches) &

    verdi:
    verdi $(verdi_swtiches) -nologo &

    verdi_i:
    ./simv -gui=verdi +ntb_random_seed=$(seed) $(verdi_interactive_switches) $(runtime_switches) +UVM_VERDI_TRACE &

    clean:
    -rm -rf ./results/testlog/*
    -rm -rf ./results/waveforms/*
    -rm -rf simv* csrc* *.tmp *.key log *.h temp *.log .vcs* DVE* *.hvp urg* .inter.vpd.uvm .restart* .synopsys* novas.* *.dat verdi* work* vlog*

    help:
    @echo =============================================================

    --
  • 相关阅读:
    [转]Salesforce学习之路(二)Profile
    Salesforce学习之路(二)Profile
    Salesforce学习之路(一)几个简单概念
    相信孩子和未来
    HTAP与OLAP&OLTP、TPCC 、TPCH和TPCDS
    TraceId 和 SpanId 生成规则
    Hystrix Plugins插件机制解析
    java~springboot(2022之后)~目录索引
    springboot~对mybatis的start包进行单元测试
    springboot~写一个从excel读取json到List<Map>的方法
  • 原文地址:https://www.cnblogs.com/freeic/p/9205047.html
Copyright © 2020-2023  润新知