3、联合调试环境搭建:安装与配置、License设置、环境变量检查

好,咱们直接进入正题。Radix ST 和 FormalNode 的联合调试,环境搭不好,后面全是坑。我见过太多人花了两周调环境,最后发现是 License 没配对。今天我把我的经验拆开揉碎了讲给你听。

3.1 安装与配置:别急着点下一步

安装工具本身不难,但有几个细节我得提醒你。

Radix ST 的安装

Radix ST 的安装包通常是一个 .bin 文件。我个人习惯把它放在 /opt/eda/radix_st/ 下。执行安装前,先确认你的系统是 CentOS 7 还是 Ubuntu 20.04。我踩过坑——在 CentOS 6 上装新版本 Radix ST,结果缺了 libstdc++ 的某些符号,折腾了一下午。

# 安装 Radix ST
chmod +x radix_st_2023.1.bin
./radix_st_2023.1.bin --target /opt/eda/radix_st/2023.1

FormalNode 的安装

FormalNode 的安装包是 tar.gz 格式。解压后直接能用,但要注意——它依赖 Python 3.8 以上版本。我建议用 python3 -V 先确认一下。如果版本不对,FormalNode 启动时会报一个很隐晦的错,新手根本看不懂。

# 安装 FormalNode
tar -xzf formalnode_2023.1.tar.gz -C /opt/eda/formalnode/2023.1
我的小技巧: 安装完后,先跑一下自带的 demo。Radix ST 的 examples/ 目录下有测试用例,FormalNode 也有 sanity_check 脚本。跑通了再往下走,别一口气装完就以为万事大吉。

3.2 License 设置:最容易翻车的地方

License 设置,说白了就是让工具知道「你有权用它」。但这里面的门道不少。

Radix ST 的 License

Radix ST 用的是 FlexLM 的 License 管理方式。你需要设置 LM_LICENSE_FILERADIX_LICENSE_FILE 环境变量。我个人习惯用 RADIX_LICENSE_FILE,因为更明确,不会跟其他工具冲突。

export RADIX_LICENSE_FILE=27000@license-server
# 或者指向本地文件
export RADIX_LICENSE_FILE=/opt/licenses/radix_st.lic

FormalNode 的 License

FormalNode 的 License 机制有点不一样。它用的是 FORMALNODE_LICENSE_FILE。我记得第一次配的时候,忘了设这个变量,结果 FormalNode 一直报「Feature not found」。查了半天才发现是变量名写错了。

export FORMALNODE_LICENSE_FILE=/opt/licenses/formalnode.lic
避坑指南: 我曾经遇到过 License 文件路径里有空格,结果工具死活认不到。后来我把 License 文件放到了 /opt/licenses/ 下,路径里不带空格和中文,问题就解决了。你想想看,这种低级错误查起来多浪费时间。

检查 License 是否生效

设置完环境变量后,用 lmstat 命令检查一下:

lmstat -a -c $RADIX_LICENSE_FILE

如果能看到 Users of radix_st: (Total of 10 licenses issued; Total of 2 licenses in use) 这样的输出,说明 License 生效了。

3.3 环境变量检查:别漏了关键变量

环境变量是工具能找到「自己」的关键。我列一个检查清单,你照着做就行。

变量名 作用 示例值
RADIX_ST_HOME Radix ST 安装根目录 /opt/eda/radix_st/2023.1
FORMALNODE_HOME FormalNode 安装根目录 /opt/eda/formalnode/2023.1
PATH 包含工具的可执行文件路径 $RADIX_ST_HOME/bin:$FORMALNODE_HOME/bin:$PATH
LD_LIBRARY_PATH 动态库搜索路径 $RADIX_ST_HOME/lib:$FORMALNODE_HOME/lib
LM_LICENSE_FILERADIX_LICENSE_FILE Radix ST License 路径 27000@license-server
FORMALNODE_LICENSE_FILE FormalNode License 路径 /opt/licenses/formalnode.lic

检查环境变量的命令很简单:

echo $RADIX_ST_HOME
echo $FORMALNODE_HOME
echo $PATH | grep radix
echo $PATH | grep formalnode
重点: 我建议把这些环境变量写到 ~/.bashrc~/.cshrc 里。这样每次打开终端就不用重新设了。但要注意——如果你同时用 bash 和 csh,记得两个文件都配一下。我吃过这个亏,换了 shell 环境变量就丢了。

3.4 联合调试环境的核心逻辑

为了让你更直观地理解整个环境搭建的流程,我画了一张图。这张图展示了从安装到验证的完整链路。

联合调试环境搭建流程 步骤1:安装工具 Radix ST + FormalNode 步骤2:License设置 FlexLM + 环境变量 步骤3:环境变量检查 PATH / LD_LIBRARY_PATH 步骤4:运行Demo验证 sanity_check 步骤5:联合调试 Radix ST + FormalNode 步骤6:问题排查 日志 / 报错信息 迭代排查

这张图你看懂了吗?核心就是「安装 → License → 环境变量 → 验证 → 联合调试 → 问题排查」这个闭环。如果验证那一步没通过,别急着往下走,先排查问题。

3.5 常见问题与排查

我整理了几个我实际遇到过的问题,你遇到了可以直接对照着查。

  • 问题1:Radix ST 启动报错 "Cannot find license"
    原因:RADIX_LICENSE_FILE 没设对,或者 License server 没启动。
    解决:用 lmstat -a 检查 License server 状态。
  • 问题2:FormalNode 报 "ModuleNotFoundError: No module named 'formalnode'"
    原因:PYTHONPATH 没包含 FormalNode 的 Python 库路径。
    解决:export PYTHONPATH=$FORMALNODE_HOME/lib/python3.8/site-packages:$PYTHONPATH
  • 问题3:联合调试时,Radix ST 找不到 FormalNode
    原因:PATH 里没加 FormalNode 的 bin 目录。
    解决:检查 echo $PATH | grep formalnode 是否有输出。
我的经验: 如果你在调试时遇到莫名其妙的报错,先检查环境变量。我敢说,80% 的问题都是环境变量没配对。剩下的 20% 是 License 问题。工具本身很少出 bug。

好了,环境搭建这部分就讲到这里。你按照我说的步骤走,应该半小时内就能搞定。如果卡住了,回头看看这张流程图,找到你卡在哪一步,然后对症下药。

专注资料整理