如何使用 Cocotb 将 IP 库添加到 Questa?

问题描述 投票:0回答:1

我正在尝试使用 cocotb 在 Questa 中模拟 Intel IP (AVST CDC) 的测试平台。添加生成的模拟文件以在 cocotb 中运行的正确方法是什么?

我通过 Quartus 生成了 IP 模拟文件 - 几个 .tcl 脚本。我已经弄清楚如何使用这些文件 - 我编写了一个小脚本来生成生成的 .tcl 文件,该文件编译用于模拟的库:

set QSYS_SIMDIR "../../ip/ip_avst_cdc/sim"
source $QSYS_SIMDIR/mentor/msim_setup.tcl
com

之后,我将此文件添加为 cocotb makefile 中的 SCRIPT_FILE。 Questa 成功地阐述了这些库并将其添加到内部库列表中,但我无法找到将这些库的名称传递给模拟器进行运行的好方法。我发现的唯一选择是手动检查生成的库名称,并将其输入到 makefile 中。对于我的情况,我检查了 modelsim_files.tcl 中生成的库名称:

namespace eval ip_avst_cdc {
  proc get_design_libraries {} {
    set libraries [dict create]
    dict set libraries hs_clk_xer_1940 1
    dict set libraries ip_avst_cdc     1
    return $libraries
  }

并使用 SIM_ARGS 将这些名称添加到 makefile 中:

SIM_ARGS += -L ip_avst_cdc -L hs_clk_xer_1940

这可行,但太复杂了。接下来,我想运行具有大量 IP 的模拟,因此不能像这样手动执行操作。有谁知道更好的方法来做到这一点?

intel-fpga questasim cocotb
1个回答
0
投票

我已成功自动生成这些库名称并将它们保存到 SIM_ARGS。我编写了 get_lib_names.tcl,它仅打印(放置)由 namespace::get_design_libraries 返回的库名称。该脚本被调用于 生成文件:

LIBRARIES := $(shell tclsh get_lib_names.tcl)
SIM_ARGS += $(addprefix -L ,$(LIBRARIES))

LIBRARIES 捕获 get_lib_names.tcl 打印的任何内容,然后将其中的数据添加到 SIM_ARGS,并以 -L 作为前缀。 总之,这允许 IP 使用,无需用户手动输入生成的文件。

© www.soinside.com 2019 - 2024. All rights reserved.