Sentaurus TCAD 2018与2025双版本安装配置实战指南
发布时间:2026/9/8 15:16:27 锦皓数字建站

把Sentaurus TCAD装明白这件事我前后折腾过好几轮。2018版和2025版虽然都叫Sentaurus但底层依赖、许可证机制、启动方式都有不小差异网上能找到的教程大多只讲单版本而且经常卡在某一两个步骤就断片了。这篇直接把两个版本的安装与配置过程铺开讲透从系统准备、安装器使用、许可证服务、环境变量到跑通第一个例子全部按我实际操作过的路径来写适合正在部署Sentaurus TCAD的EDA工程师、课题组管理员以及被这两个版本折磨过的研究生。这一篇承接前面的准备工作重点是安装与配置环节。无论你是从Synopsys官方渠道拿到的安装包还是实验室内部拷贝的离线包下面这些步骤都能对应上。1. 装之前先想清楚版本关系和系统底子很多人在安装环节翻车根源不是命令输错而是没搞明白Sentaurus 2018和2025对系统环境的诉求完全不同。2018版的时代背景是RHEL 6/7横行的时期2025版则明显面向更新的内核和库环境。你手里如果是一台刚装的Ubuntu 22.04或者RHEL 9拿2018的安装包直接跑大概率会在库依赖上卡死。1.1 为什么要把两个版本放在一起讲这两个版本在同一个实验室共存是非常普遍的场景。原因很简单工艺校准文件、旧项目脚本、PDK里的某些模型可能只验证过2018版而新流片项目需要的先进模型、新的数值算法又只有2025版支持。很多组里的做法是保留2018跑旧项目用2025跑新项目两者共用同一套许可证服务。所以安装配置时不能只顾一个版本目录规划、环境变量、许可证指向都要考虑到双版本共存的场景。我下面讲的路径方案就是按“Sentaurus 2018和2025装在同一个根目录下、通过独立配置文件精准切换”来设计的。1.2 系统环境与依赖库核对清单装之前先花半小时核对系统环境比装了以后瞎猜报错要高效得多。把下面这张表对照你的系统过一遍检查项Sentaurus 2018Sentaurus 2025操作系统建议RHEL 6/7、CentOS 7RHEL 8/9、Ubuntu 20.04glibc版本已在旧系统验证新系统常缺旧兼容库需要较新的glibc 2.28以上位数必须x86_64必须x86_64内存16GB起32GB更舒服32GB起三维器件仿真建议64GB磁盘空间完整安装约30GB完整安装约60GB以上X11图形库libX11、libXext、libXt还需要libxft、libxinerama编译相关gcc 4.8兼容性对老gcc依赖减少Python 3.9最稳妥的做法准备一台干净的CentOS 7专门跑2018另准备一台RHEL 8或Ubuntu系统跑2025。如果必须装在同一台机器上注意2018在RHEL 8上运行时经常遇到libjpeg.so.62这类老库缺失的问题需要手动补装libjpeg62兼容包。我自己的主力机器是RHEL 8.8实测通过补装几个旧库可以让两个版本都正常工作。1.3 许可证服务是前置条件不是后补选项Sentaurus TCAD的许可证走的是Synopsys Common Licensing机制SCL版本必须跟主程序年份配套。2018版通常配SCL 2018.x2025版配更新的SCL版本。你要是把旧SCL拿去给2025用经常会出现feature识别不了的问题。装主程序之前我建议先把许可证服务和license文件准备好。也就是说安装顺序应该是SCL许可证工具 → 2018主程序 → 2025主程序 → 配置环境。这样两个版本都能在安装后立刻验证许可证连通性而不是装完了才发现改用哪个SCL都别扭。2. 解开安装包目录结构和安装器使用Sentaurus的安装介质是以压缩包形式提供的解压出来以后里面有一个安装器通常是installer或setup.sh通过它来选择安装路径和产品组件。直接复制解压后的文件夹就指望能跑这是不可能的因为Sentaurus对目录组织有严格约定必须通过安装器来登记产品信息。2.1 安装包怎么摆放最不容易出错我习惯把路径规划成下面这种结构/opt/synopsys/ ├── scl/ # 许可证工具 │ └── 2018.06 ├── sentaurus/ │ ├── 2018.12 │ └── 2025.03 └── license/ └── synopsys.dat/opt/synopsys作为统一的软件根目录scl单独放不同年份的Sentaurus互不覆盖。下载的安装包我建议放在/tmp/installpkg/下统一解压不要直接在home目录里解压几十GB的东西否则后续权限和路径都会很混乱。创建必要的目录并赋权sudo mkdir -p /opt/synopsys/scl sudo mkdir -p /opt/synopsys/sentaurus sudo mkdir -p /opt/synopsys/license sudo chown -R $USER:$USER /opt/synopsys这里直接把/opt/synopsys归属到当前用户后面安装和配置都不需要反复sudo。实验室环境如果多人共用也可以设成staff用户组。2.2 用Synopsys Installer做安装把2018安装包解压后进入目录找到安装器。老版本目录里一般有installer这个可执行文件新版本目录里可能是setup.sh。图形界面模式下直接运行cd /tmp/installpkg/sentaurus2018 ./installer安装器会弹出图形界面按提示选择产品根目录/opt/synopsys/sentaurus/2018.12勾选需要的组件。这里建议一次性把Sentaurus Workbench、Sentaurus Process、Sentaurus Device、Sentaurus Structure Editor、Sentaurus Visual、Parasitic Extraction这些常用模块都选上免得后面用到时才发现某个子模块没装。服务器环境没有图形界面时用silent模式./installer -i silent -g -c /tmp/install.confsilent模式需要一个配置文件里面写明安装根目录、要装的模块、license server地址等。配置项的具体写法不同安装器版本有差异最简单的方式是先在图形界面下保存一份配置文件之后所有机器复用。安装过程会比较久2018版大概需要20到40分钟2025版在包含全部文档的情况下可能会超过一小时耐心等输出日志结束。2.3 验证安装目录结构安装完成后检查一下目录结构确认平台目录和关键可执行文件已经生成。这是我常用的验证方法ls /opt/synopsys/sentaurus/2018.12/bin/swb ls /opt/synopsys/sentaurus/2025.03/bin/swb ls /opt/synopsys/sentaurus/2018.12/platforms/linux64/gcc-4.8/bin/ | head如果platforms/linux64下面没有可执行的二进制文件说明平台组件没装完整或者说安装时的system selection没选对。Sentaurus对“平台”很敏感安装时会检测系统类型并选择对应的linux64平台。你可以在platforms/目录下看到linux64、linux等子目录x86_64机器一定要确保选择了linux64。3. 许可证服务配置必须在一开始就搞定许可证问题占了Sentaurus安装报错的一大半。见过太多人环境变量没设对、license server没起、feature不匹配就在那干等最后反复重启也没用。这一节把许可证配置的完整链路走一遍。3.1 SCL工具与lmgrd服务的启动SCL工具包里面最重要的是lmgrd和lmstat。启动许可证服务前先确认license文件里包含了Sentaurus相关feature并且路径没写错。Synopsys license文件通常把feature、daemon路径、server行都放在一个.dat文件里。我习惯用一个独立的子目录放license启动相关文件mkdir -p /opt/synopsys/license cp /path/to/synopsys.dat /opt/synopsys/license/ cd /opt/synopsys/license /opt/synopsys/scl/2018.06/linux64/bin/lmgrd -c synopsys.dat -l /opt/synopsys/license/lmgrd.log其中-l参数非常重要它把lmgrd的运行日志写到文件里。许可证连不上时第一件事就看这个日志它会直接告诉你端口冲突、feature错误这类信息比瞎猜强得多。3.2 端口与防火墙的配合license server监听端口一般默认是27020但很多时候你在license文件里会看到27020hostname的形式。这里有个很容易踩的坑服务器名解析。lmgrd启动后需要确认主机名能正确解析回本机IP否则客户端连不上。验证监听端口是否就绪netstat -an | grep 27020如果状态不是LISTEN检查lmgrd进程是否存活日志里有没有报端口被占用。如果开启了防火墙务必放行TCP 27020端口sudo firewall-cmd --permanent --add-port27020/tcp sudo firewall-cmd --reload客户端机器不需要对外开放端口只要客户端能访问服务器的27020端口就行。3.3 用lmstat验证feature许可证服务启动后用lmstat主动验证不要直接跑去启动Sentaurus然后等报错。验证命令/opt/synopsys/scl/当前版本号/linux64/bin/lmstat -a -c /opt/synopsys/license/synopsys.dat输出信息里会列出所有已启动的vendor daemon以及已经checkout的feature。重点检查跟TCAD相关的feature是否可见比如SentaurusProcess、SentaurusDevice这类名称。如果lmstat根本找不到vender daemon绝大多数情况是license文件里的daemon路径指向了错误位置或者SCL版本不对。提示同一个license文件同时服务2018和2025两个版本只要feature名称覆盖了新老版本需求即可不需要为每个版本单独开一套服务。维护一套server能省掉很多管理精力。4. 环境变量与多版本切换脚本环境变量配置决定了系统能否找到Sentaurus的可执行程序也是多版本共存的核心。很多人直接把环境变量写进~/.bashrc两套配置互相覆盖最后连which swb指向哪个版本都搞不清楚。4.1 基础环境变量解析Sentaurus运行依赖几个核心变量STROOT指向Sentaurus安装根目录STDB指向数据库目录PHOME是用户home路径STWORK是工作目录SNPSLMD_LICENSE_FILE指向许可证。以2018版为例export STROOT/opt/synopsys/sentaurus/2018.12 export STDB/opt/synopsys/sentaurus/2018.12 export PHOME$HOME export STWORK$HOME/sentaurus_work export SNPSLMD_LICENSE_FILE27020localhost export PATH$STROOT/bin:$STROOT/platforms/linux64/gcc-4.8/bin:$PATHSNPSLMD_LICENSE_FILE可以直接指向端口加主机名也可以指向license文件的全路径。建议用端口形式27020localhost这样换license文件时不用改环境变量。STWORK目录需要提前建好Sentaurus运行过程中会产生大量临时文件路径里绝对不能有中文和空格否则仿真到一半就会报莫名其妙的文件错误。4.2 独立配置文件避免版本间互相干扰我强烈建议不要把所有版本的环境变量混在一起写到.bashrc里。正确做法是给每个版本建一个独立的配置文件比如~/.sentaurus2018和~/.sentaurus2025# ~/.sentaurus2018 export STROOT/opt/synopsys/sentaurus/2018.12 export STDB$STROOT export PHOME$HOME export STWORK$HOME/sentaurus_work export SNPSLMD_LICENSE_FILE27020localhost export PATH$STROOT/bin:$STROOT/platforms/linux64/gcc-4.8/bin:$PATH然后在.bashrc里加两个aliasalias sentaurus2018source ~/.sentaurus2018 alias sentaurus2025source ~/.sentaurus2025用哪个版本就source哪个。开另一个终端跑另一个版本互不干扰。这种做法在多用户服务器上特别有用别人加载自己的版本不会影响你的环境。4.3 版本切换时的残留变量陷阱切换到2025版时如果旧终端里已经export过STROOT等变量新source的配置可能不会覆盖干净。我遇到过切换后echo $STROOT还是旧路径导致swb启动的是2018版的情况。解决方法是给配置文件开头加一行unsetunset STROOT STDB PHOME STWORK这样才能保证切换彻底。另外PATH变量会有累积问题切版本的时候确认一下which swb的输出来源如果不对就重开终端再source。5. 从SWB到命令行跑通一个最小仿真配置完成后不急着直接上大项目先跑通一个最小仿真验证2018和2025两个版本都能正常计算。这步能筛掉90%的安装配置问题比如许可证端口不对、库依赖缺失、平台目录选错等等。5.1 启动Sentaurus WorkbenchSWB是Sentaurus的图形化集成环境也是绝大多数人日常使用的主入口。在source对应版本的环境后输入swb 如果一切正常会弹出SWB主窗口。第一次启动可能出现启动慢或白屏的情况一般是X11库问题。远程连接的场景下检查DISPLAY变量是否正确echo $DISPLAY在本地图形界面环境DISPLAY通常等于:0远程SSH做X11转发时会自动设置。如果没有图形环境可以用VNC起一个虚拟桌面再跑SWB。5.2 用命令行方式跑完一个PN结二极管仿真不依赖SWB的话也可以用命令行方式直接验证架构。我常用的最小验证是用sprocess做一个简单的PN结然后用sdevice跑电流电压特性最后用svisual看结果。在临时目录新建一个pn_sim文件夹mkdir -p $STWORK/pn_sim cd $STWORK/pn_sim准备一个最简的SProcess命令文件内容大致包含初始化网格、定义硅衬底、高斯掺杂形成P区和N区、保存结构文件。因为不同版本工具箱命令差异不大这份文件在2018和2025上都能跑。执行验证sprocess pn_dio.cmd命令正常结束说明sprocess引擎没问题。接着准备SDevice的命令文件加载刚才生成的结构设定简单边界条件跑完输出I-V数据点sdevice pn_dio_des.cmd最后打开TDR数据图svisual -n pn_dio_des_0001.tdr 这个流程跑通说明安装配置基本没问题了。注意SProcess这类计算工具在多节点并行情况下依赖MPI环境默认单核跑没有问题。如果之后要开并行仿真记得检查MPI库版本和Sentaurus内置MPI之间的兼容性。5.3 新旧版本命令行工具的差异提醒2025版的命令行工具在脚本解析上比2018版更严尤其对参数拼写、单位写法、边界条件定义这些细节更敏感。2018版里能容忍的一些不规范写法复制到2025版可能直接报错。我在实际迁移脚本时最常遇到的是坐标单位混用和材料参数名不一致的问题。建议旧脚本迁移时先用-h看一下工具的参数接口sprocess -h | grep -i unit sdevice -h | grep -i model不要一上来就跑大脚本否则排错成本很高。6. 踩坑日志常见报错和排查链路把这段时间踩过的坑集中整理一下每一个都是真实遇到过的照着这个排查链路走能省不少时间。6.1 缺少glibc旧版本库导致启动即崩2018版在RHEL 8上最常见的报错长这样./sprocess: /lib64/libstdc.so.6: version GLIBCXX_3.4.20 not found这不是Sentaurus的问题是老版本二进制依赖的老gcc运行库在当前系统里不存在。排查链路先用ldd查看哪个库缺失ldd /opt/synopsys/sentaurus/2018.12/platforms/linux64/gcc-4.8/bin/sprocess | grep not found会看到缺失的具体库名。修复方式是安装对应的兼容库。RHEL系列上老gcc运行库通常叫libstdc.so.6可以通过安装devtoolset兼容包或手动拷贝旧系统的库到自定义目录然后用LD_LIBRARY_PATH指过去export LD_LIBRARY_PATH/usr/local/lib64/oldgcc:$LD_LIBRARY_PATHUbuntu系统则注意缺libjpeg62、libXp这类老图形库用apt直接装即可。6.2 许可证连不上报No such feature exists这个错误要分清两种情况。一种是license server没起来另一种是license文件里确实没有你尝试使用的feature。用lmstat -a确认server状态重点看有没有启动对应的vendor daemon。如果vendor daemon起不来十有八九是SCL版本和license文件的版本策略不匹配。我之前遇到过2018版配了新SCL后部分老feature无法识别的案例。最终解决方案是让2018版使用配套的旧SCL新版本使用新SCL互不混用。有人觉得SCL版本越新越好实际在EDA软件生态里配套版本才是王道。6.3 SWB白屏或按钮不显示SWB是Java Swing界面程序白屏问题多半是X11相关设置不对。远程SSH转发时白屏概率尤其高。我踩过最深的坑是远程登录时DISPLAY变量没设置swb启动了但窗口画不出来。排查链路先确认DISPLAY变量再看X11转发是否可用xclock如果xclock也白屏说明X11环境本身就有问题。建议改用VNC远程桌面方式稳定很多。另外SWB界面字体发虚或排版错乱时试试在启动前设置export _JAVA_OPTIONS-Dawt.useSystemAAFontSettingson -Dswing.defaultlafcom.sun.java.swing.plaf.gtk.GTKLookAndFeel6.4 磁盘空间看似够用但仿真总报临时目录错误仿真过程中大量临时文件默认写到/tmp而/tmp分区往往只有几GB。一个中等规模的3D器件仿真就能吃掉几十GB临时空间。如果/tmp空间不足会看到类似“No space left on device”的错误但df -h /检查发现还有不少空间。因为/tmp经常是独立挂载的分区。解决方法很简单把临时目录指到空间大的位置export TMPDIR/opt/synopsys/tmp mkdir -p /opt/synopsys/tmp同时检查STWORK目录所在分区的剩余空间确保两个位置都充足。6.5 2025版启动报Python版本冲突新版Sentaurus集成了Python相关组件如果系统本身装了Anaconda或自定义Python环境变量里可能带了其他Python路径导致SWB或SVisual启动时加载了错误的Python库。排查链路查看PYTHONPATH和PATH有没有自动加载的conda路径echo $PYTHONPATH echo $PATH如果是conda导致启动Sentaurus前先执行conda deactivate或者不在bashrc里写死conda的base环境。Sentaurus对Python环境要求非常洁癖保持系统Python干净是避免这类坑的最优解。7. 双版本在实战中的场景化切换技巧装好两个版本之后日常使用中的管理技巧也很关键。这里分享几个我用下来比较顺手的做法。7.1 用版本开关脚本统一管理任务提交在课题组服务器上大家登录后很容易忘记当前source的是哪个版本导致用2018的脚本去跑2025的输入文件或者反过来。我在/opt/synopsys/bin/下放了一个版本开关脚本switch_sentaurus() { case $1 in 2018) source ~/.sentaurus2018 ;; 2025) source ~/.sentaurus2025 ;; *) echo usage: switch_sentaurus 2018|2025 ;; esac }这样每个人登录后执行switch_sentaurus 2018或switch_sentaurus 2025就能明确切换并在提示符里显式显示当前版本。用两行PS1的设置把版本信息直接怼在命令行前面误操作的概率大幅下降。7.2 项目目录与库文件的隔离原则2018和2025的项目文件、工艺模型库、网格文件格式上大体兼容但边界条件下沉时有差异。我建议在项目根目录下建两个子目录分开管理project_a/ ├── sentaurus2018_run/ └── sentaurus2025_run/每次启动SWB时工作目录选中对应版本目录避免两个版本生成的文件互相覆盖。特别是solution、history这类临时数据目录不同版本的组织方式有差异混在一个目录里很容易产生脏数据。7.3 用并行特性之前先做性能基线双版本共存的机器上跑MPI并行前最好先做一次单核性能基线测试。同一份PN结仿真2018版和2025版在单核上的耗时会有差异而配置了多核并行后加速比表现也未必一样。使用2025版的多核并行前把主机配置文件里的机器列表和MPI参数确认清楚避免默认配置下并行节点数没有生效结果以为装了并行版实际一直在串行跑。这一点容易忽略我在2018版上吃过亏配置文档里写的默认并行方式在实验室的集群上并没有正常调用所有核心后来检查主机配置文件才发现资源描述需要手动填写主机名和核心数。8. 收尾前再检查一遍这五件事安装配置完成后不要急着开始正式项目先做一轮整体检查。把下面五件事过一遍基本可以放心投入使用了2018和2025分别source配置后which swb和echo $STROOT是否指向正确版本。lmstat -a能否看到所有需要的feature许可证没有过期或改错。用最小仿真脚本分别在两个版本下跑通记录运行时间和退出码。在非图形终端里sprocess -h和sdevice -h能否正常输出帮助信息命令行工具链路完整。检查/tmp和STWORK目录剩余空间确保至少能一次放下中等规模仿真的临时文件。如果在检查过程中遇到前面没讲到的报错回到对应小节点Down的排查链路去对照。绝大多数情况下Sentaurus的报错信息都是直接的问题几乎都出在库依赖、许可证、环境变量、磁盘空间这四类原因上。有两条经验我再单独啰嗦一下。第一条老版本和新版本尽量使用各自配套的SCL工具不要贪图新功能而跨版本混用。第二条环境变量改完以后务必重开终端再验证不要在当前终端里反复source残留变量这种东西会浪费你很多时间。把这些步骤处理完2018和2025双版本就真正算安装配置到位了。剩下的事情就是开一个新项目在SWB里建第一个工程节点然后开始跑仿真。
锦
锦皓数字建站
深耕本土企业品牌数字化升级,专注原创端正雅致商务官网,从视觉设计到稳定运维全程保驾护航。