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_simlib 或 launch_simulation 能够正确找到GCC路径,Vivado提供了以下几种配置方式:
- 设置环境变量
GCC_SIM_EXE_PATH=<gcc install path>
- 在命令行中直接指定路径:
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 文件包含了编译该模型的命令行。如果工具自动生成的命令行存在问题,可以尝试手动修改并执行该命令以进行调试。