第二章 环境搭建与安装:工欲善其事,必先利其器
各位同学,欢迎来到第二章。上一章我们聊了SiliconSmart能干什么,这一章咱们就来点实在的——把软件装好、跑起来。
说实话,环境搭建这步看着简单,但坑是真不少。我见过太多人卡在License配置上,一卡就是半天。所以这一章,我会把每一步的关键点都掰开揉碎了讲。
2.1 软件安装:别急着双击
拿到SiliconSmart的安装包后,先别急着双击。我个人习惯是,先看一眼README或InstallGuide。别笑,这步真能省不少事。
安装包通常是.tar.gz或.tar.Z格式。解压命令很简单:
tar -xzvf SiliconSmart_2023.1_linux64.tar.gz -C /opt/
解压到/opt/目录下,这是Linux的惯例。当然你也可以放别的地方,但路径里不要有中文或空格。嗯,这个坑我踩过。
解压完后,你会看到类似这样的目录结构:
/opt/SiliconSmart_2023.1/
├── bin/
├── lib/
├── etc/
├── doc/
└── examples/
这里bin/是执行文件,lib/是库文件,etc/里放着配置文件。我建议你先把doc/里的release_notes.pdf翻一翻,看看当前版本有什么已知问题。
/opt/eda/SiliconSmart/,这样后续升级版本时,目录结构清晰,不会搞混。
2.2 License配置:最头疼的一步
License配置,说白了就是让软件知道「你有权使用它」。这一步如果搞不定,后面全是白搭。
SiliconSmart用的是FlexLM(Flexible License Manager)机制。你需要拿到一个.lic或.dat文件,里面包含了你的授权信息。
配置步骤其实就三步:
- 设置环境变量:告诉软件License文件在哪
- 启动License服务:用
lmgrd启动守护进程 - 验证:用
lmstat检查是否生效
具体来说,在.bashrc或.cshrc里加上:
# 对于bash用户
export LM_LICENSE_FILE=/opt/licenses/siliconsmart.lic
export SNPSLMD_LICENSE_FILE=/opt/licenses/siliconsmart.lic
# 对于csh/tcsh用户
setenv LM_LICENSE_FILE /opt/licenses/siliconsmart.lic
setenv SNPSLMD_LICENSE_FILE /opt/licenses/siliconsmart.lic
这里要注意,SNPSLMD_LICENSE_FILE是Synopsys系软件特有的变量。SiliconSmart虽然是Synopsys的工具,但有些老版本只认LM_LICENSE_FILE。我建议两个都设上,保险。
启动License服务的命令:
lmgrd -c /opt/licenses/siliconsmart.lic -l /var/log/lmgrd.log
启动后,用lmstat -a查看状态。如果看到Server status: UP,恭喜你,成了。
2.3 环境变量设置:别漏了关键变量
环境变量这东西,少设一个,工具就罢工。我整理了一个清单,你照着设就行:
| 变量名 | 说明 | 示例值 |
|---|---|---|
SILICONSMART_HOME |
安装根目录 | /opt/SiliconSmart_2023.1 |
PATH |
添加bin目录 | $SILICONSMART_HOME/bin:$PATH |
LD_LIBRARY_PATH |
共享库路径 | $SILICONSMART_HOME/lib:$LD_LIBRARY_PATH |
LM_LICENSE_FILE |
License文件路径 | /opt/licenses/siliconsmart.lic |
SNPSLMD_LICENSE_FILE |
备用License变量 | /opt/licenses/siliconsmart.lic |
我个人习惯把这些变量统一放在一个文件里,比如/opt/eda/env.sh,然后在.bashrc里source它。这样换版本时,只改一个文件就行。
# /opt/eda/env.sh 示例
export SILICONSMART_HOME=/opt/SiliconSmart_2023.1
export PATH=$SILICONSMART_HOME/bin:$PATH
export LD_LIBRARY_PATH=$SILICONSMART_HOME/lib:$LD_LIBRARY_PATH
export LM_LICENSE_FILE=/opt/licenses/siliconsmart.lic
export SNPSLMD_LICENSE_FILE=/opt/licenses/siliconsmart.lic
source ~/.bashrc或重新登录。然后敲which siliconsmart,如果能找到路径,说明环境变量生效了。
2.4 依赖工具检查:SPICE仿真器不能少
SiliconSmart本身不跑SPICE仿真,它需要调用外部的SPICE仿真器。说白了,它就是个「调度员」,真正干活的是HSPICE、Spectre或FineSim这些工具。
你想想看,如果SPICE仿真器没装好,SiliconSmart跑起来就是「巧妇难为无米之炊」。
检查SPICE仿真器是否可用,我一般这么做:
- 确认安装:看看
hspice或spectre命令能不能找到 - 确认版本:用
hspice -v或spectre -version查看版本号 - 确认License:跑一个简单的网表,看看能不能正常仿真
举个例子,检查HSPICE:
which hspice
hspice -v
# 输出类似:HSPICE (R) Version T-2022.06-SP1
如果找不到命令,那就要检查SPICE仿真器的环境变量了。通常需要设置HSPICE_HOME或SPECTRE_HOME,并把bin目录加到PATH里。
除了SPICE仿真器,还有一些辅助工具也建议检查:
- Perl:SiliconSmart内部脚本依赖Perl,版本建议5.8以上
- gcc/g++:如果你要编译自定义模型,需要C编译器
- make:用于自动化流程
检查命令很简单:
perl --version
gcc --version
make --version
如果这些工具缺失,用系统的包管理器装一下就行。Ubuntu下是apt-get install,CentOS下是yum install。
2.5 验证安装:跑个Hello World
环境搭好了,怎么知道对不对?跑个最简单的例子试试。
SiliconSmart自带了示例库,在$SILICONSMART_HOME/examples/目录下。我建议你用inverter这个例子,它最简单。
cd $SILICONSMART_HOME/examples/inverter
siliconsmart -run
如果一切正常,你会看到终端里刷刷刷地跑日志,最后输出类似:
Characterization completed successfully.
Results written to ./results/
嗯,看到这个,你就可以放心了——环境搭建成功。
如果报错,别慌。先看日志文件,通常.log文件里会告诉你哪里出了问题。常见的错误有:
- License错误:检查
lmstat状态 - SPICE仿真器找不到:检查
PATH和HSPICE_HOME - 库文件缺失:检查
LD_LIBRARY_PATH
小结
这一章我们聊了SiliconSmart的安装、License配置、环境变量设置和依赖工具检查。说白了,就是让软件能跑起来。
环境搭建这步,看着琐碎,但真不能马虎。我见过太多人因为License没配好,或者SPICE仿真器版本不对,浪费了一整天。你按我上面说的步骤来,应该半小时内就能搞定。
下一章,我们会正式进入特征化流程。到时候,你会用到今天搭好的环境。所以,务必确保这一步没问题。
好,今天就到这儿。有问题随时找我。