找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

1167

积分

0

好友

167

主题
发表于 5 天前 | 查看: 10| 回复: 0

AMD Vivado™ 设计套件为用户提供了以文件和库形式存在的仿真模型。这些仿真库包含了器件与IP的行为和时序模型,编译完成后可供多个设计项目复用。在使用仿真器进行设计验证前,用户必须通过名为 compile_simlib 的实用工具编译这些模型文件。

除了RTL模型,Vivado还为部分IP提供了基于C/C++/SystemC的仿真模型,专门用于SystemC仿真验证。这些模型的源文件位于Vivado安装目录下的指定路径:

<Vivado-install-path>/data/systemc/

与RTL模型类似,对于Vivado自带的仿真器(XSim),这些SystemC模型已在标准的 <Vivado-install-path>/data/xsim 文件夹中预编译。然而,当使用第三方仿真器时,则必须通过 compile_simlib 手动编译这些模型。默认情况下,该工具会编译SystemC模型。如果您的设计不涉及SystemC,可以通过添加 -no_systemc_compile 选项来跳过此步骤。

在实际操作中,绝大多数SystemC模型编译失败都与GCC版本不匹配或环境设置不当有关。不同版本的UG900手册都明确列出了与该版本Vivado兼容的支持SystemC仿真的第三方仿真器及其所需的GCC版本。最新版的兼容性信息可参考以下链接:

https://docs.amd.com/r/en-US/ug900-vivado-logic-simulation/Simulators-Supported-for-SystemC-Simulation

下表汇总了自2021版本以来的仿真器兼容信息,可作为快速参考:

图片

建议优先使用仿真器原生的SystemC编译器。以下是各仿真器(仅作示例,实际请使用兼容版本)的典型GCC路径:

XSim:

<Vivado install dir>/tps/lnx64/gcc-9.3.0/bin

Questa:

<Questa install dir>/gcc-7.4.0-linux/bin

Xcelium:

<Xcelium install dir>/tools/cdsgcc/gcc/9.3/bin

VCS:

<vg_gnu install dir>/vg_gnu/<version>/linux/gcc-9.2.0_64-shared/bin

Riviera:

<Riviera install dir>/gcc_Linux64/bin

请注意,某些仿真器(如VCS)的GCC安装包可能需要单独下载和安装,具体请参考第三方仿真器的官方文档。

为了让 compile_simliblaunch_simulation 能够正确找到GCC路径,Vivado提供了以下几种配置方式:

  1. 设置环境变量 GCC_SIM_EXE_PATH=<gcc install path>
  2. 在命令行中直接指定路径:
    • compile_simlib -gcc_exec_path <gcc install path>
    • launch_simulation -gcc_install_path <gcc install path>

如果未采用上述推荐设置,Vivado会尝试从系统的 PATH 环境变量中寻找GCC。因此,您也可以选择将仿真器所需的GCC路径直接添加到 PATH 环境变量中。这涉及到基础的系统环境配置知识。

在启动仿真库编译或仿真任务前,请务必确认第三方仿真器的版本与当前Vivado版本兼容,并已正确设置对应的环境变量,如下表所示:

注: 表中使用 GCC_HOME 指代上文列出的各仿真器GCC安装路径。

图片

UG900手册中,对于Questa和Xcelium,通常省略了显式设置 PATH 指向其GCC路径的步骤,因为它们的GCC路径通常能根据仿真器安装位置自动确定。当然,手动添加上也没有影响,只要确保版本兼容即可。

当所有版本和设置都检查无误后,若编译SystemC仿真库仍报错,可以从 compile_simlib.log 日志文件中定位具体的出错模型。然后,前往预编译库所在的文件夹,查看更详细的错误日志(使用 ls -a 命令可列出所有文件,.cxl.* 为隐藏文件)。

例如:

clibs/xcelium/24.09.001/lin64/lib/xtlm/.cxl.systemc.sm.log

在同一文件夹下,.cxl.systemc.sm.cmd 文件包含了编译该模型的命令行。如果工具自动生成的命令行存在问题,可以尝试手动修改并执行该命令以进行调试。




上一篇:创业初期预算分配指南:概念验证阶段成本控制与资源优化策略
下一篇:C++多线程任务队列工业级架构设计与并发问题深度解析
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2025-12-17 19:25 , Processed in 0.109137 second(s), 40 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2025 云栈社区.

快速回复 返回顶部 返回列表