0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

一文详解SystemC仿真库的编译

XILINX开发者社区 来源:XILINX开发者社区 2025-12-12 15:08 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

AMD Vivado 设计套件以文件和库的形式提供仿真模型。仿真库包含器件和 IP 的行为和时序模型。编译后的库可供多个设计项目使用。用户必须在设计仿真之前通过名为 compile_simlib 的实用程序编译这些文件,以便为目标仿真器编译仿真模型。

除了 RTL 模型,Vivado 还对一些 IP 提供 C/C++/SystemC 仿真模型,用于 SystemC 仿真验证,源文件的路径位于安装目录下:

/data/systemc/

与 RTL 模型一样,对于 Vivado 仿真器,这些 SystemC 模型已在标准的 /data/xsim 文件夹中进行预编译。对于第三方模拟器,必须使用 compile_simlib 编译这些模型。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 版本以来的仿真器兼容信息,可作为快速参考:

90e8597e-d681-11f0-8c8f-92fbcf53809c.png

建议使用仿真器原生的 SystemC 编译器。各仿真器的 GCC 路径如下(以下仿真器及 GCC 版本仅做路径显示方便之用,实际应用中请替换成合适的版本):

XSim:

/tps/lnx64/gcc-9.3.0/bin

Questa:

/gcc-7.4.0-linux/bin

Xcelium:

/tools/cdsgcc/gcc/9.3/bin

VCS:

/vg_gnu//linux/gcc-9.2.0_64-shared/bin

Riviera:

/gcc_Linux64/bin

请注意,有些仿真器(如 VCS),GCC 安装包需要单独下载并安装,请参考第三方文档。

要使得 compile_simlib/launch_simulation 获取 GCC 的路径信息,Vivado 提供了多种方式:

1.设置环境变量 GCC_SIM_EXE_PATH=

2.compile_simlib -gcc_exec_path

launch_simulation -gcc_install_path

如果未找到这些推荐设置,Vivado 将从 PATH 环境变量中选择 GCC 安装路径,你也可将仿真器 GCC 路径添加到 PATH 环境变量中。

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

注:表格中用 GCC_HOME 代表上文所述各仿真器的 GCC 路径。

91426590-d681-11f0-8c8f-92fbcf53809c.png

UG900 给出的仿真器环境变量设置中,Questa 和 Xcelium 省略了设置 PATH 指向 GCC 路径。默认情况下,Questa 和 Xcelium 的 GCC 路径会根据仿真器安装位置自动确定。当然,添加上也无影响,只要版本兼容。

当上述版本及设置都已完成,编译 SystemC 仿真库仍然出错,可以从 compile_simlib.log 中找到具体出错的 SystemC 模型,然后定位到预编译库其所在的文件夹,查看 log 文件的详细错误信息(请用ls -a列出所有文件,.cxl.*为隐藏文件)。

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

同文件下的.cxl.systemc.sm.cmd包含编译此模型的命令行,如果工具自动产生的命令行有错,可尝试手动修改执行。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • amd
    amd
    +关注

    关注

    25

    文章

    5652

    浏览量

    139069
  • systemc
    +关注

    关注

    2

    文章

    27

    浏览量

    14922
  • Vivado
    +关注

    关注

    19

    文章

    848

    浏览量

    70505
  • 仿真库
    +关注

    关注

    7

    文章

    6

    浏览量

    6711

原文标题:开发者分享|SystemC 仿真库的编译

文章出处:【微信号:gh_2d1c7e2d540e,微信公众号:XILINX开发者社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    详解编译系统

    什么是编译器?为什么要有编译器?编译器的作用是什么?编译系统的组成部分有哪些,它们之间的关系是什么?有句名言说的非常好:了解
    发表于 09-20 09:09 1987次阅读

    vcs和vivado联合仿真

    使用vivado2021.02编译VCS仿真定要加-no_systemc_compile选项进行
    发表于 10-24 07:28

    如何在ModelSim下用SystemC的做验证?

    如何在ModelSim下编译仿真SystemC的设计?如何在ModelSim下用SystemC的做验证?SystemC作为
    发表于 03-01 11:30

    请问怎么在Modelsim下编译SystemC

    怎么在Modelsim下编译SystemC ,例如使用命令sccom -link
    发表于 02-28 21:46

    SystemC进行SoC的系统级设计与仿真

    IC 技术已发展到SoC 阶段,系统级设计、仿真和验证已成为IC 设计面临的巨大挑战。SystemC 是新兴的系统级设计语言,为复杂系统的设计与验证提供了解决方案。本文介绍SystemC 的特点
    发表于 05-18 13:44 28次下载

    基于SystemC事务级的建模仿真研究

    事务级(Transaction-Level,TL)建模是SystemC 中提出的种新型高层次建模方法,以CoCentric System Studio(CCSS)作为SystemC 仿真
    发表于 07-30 15:27 24次下载

    基于SystemC构建多核DSP软件仿真平台

    基于SystemC构建多核DSP软件仿真平台_韦祎
    发表于 01-03 17:41 3次下载

    SystemC 的验证方法和流程介绍

    SystemC 是由C++衍生而来,本质是在C++的基础上添加了硬件扩展仿真核,这使SystemC 可以在不同抽象级对复杂电子系统建模。
    发表于 07-19 11:55 5603次阅读
    <b class='flag-5'>SystemC</b> 的验证方法和流程介绍

    Prelink的交叉编译和使用详解

    Prelink的交叉编译和使用详解
    的头像 发表于 06-20 12:03 4388次阅读
    Prelink的交叉<b class='flag-5'>编译</b>和使用<b class='flag-5'>详解</b>

    Anlogic器件仿真快速编译与使用

    电子发烧友网站提供《Anlogic器件仿真快速编译与使用.pdf》资料免费下载
    发表于 09-27 11:05 2次下载
    Anlogic器件<b class='flag-5'>仿真</b><b class='flag-5'>库</b>快速<b class='flag-5'>编译</b>与使用

    详解精密封装技术

    详解精密封装技术
    的头像 发表于 12-30 15:41 2317次阅读

    详解分立元件门电路

    详解分立元件门电路
    的头像 发表于 03-27 17:44 4487次阅读
    <b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>详解</b>分立元件门电路

    详解pcb和smt的区别

    详解pcb和smt的区别
    的头像 发表于 10-08 09:31 5370次阅读

    SystemC中的模块与进程

    更小、更易于管理的模块。模块内部包含若干个进程(Process)来描述模块的功能。 个模块可以包含端口、内部信号、内部数据、子模块、进程、构造函数和析构函数等,这些元素实现了模块要求的功能。SC_MODULE是SystemC
    的头像 发表于 11-02 15:31 2037次阅读

    详解pcb的msl等级

    详解pcb的msl等级
    的头像 发表于 12-13 16:52 1.5w次阅读