4、ICV工具安装与配置:ICV软件安装、License配置、环境变量设置、常用目录结构

好,咱们进入第四章。这一章讲的是ICV工具安装与配置。说实话,很多工程师觉得这步就是跑个脚本、点个下一步,没什么技术含量。但我见过太多项目因为环境没配好,白白浪费一周时间。我自己刚入行那会儿,也在这上面栽过跟头。

ICV的安装配置,说白了就三件事:把软件装对、把License搞定、把环境变量设好。咱们一个一个来拆。

4.1 ICV软件安装

ICV的安装包通常是一个压缩包,或者是一个ISO镜像。我习惯先把安装包放到一个干净的目录下,比如 /tools/icv_install

安装步骤其实不复杂,但有几个坑要注意:

  1. 检查操作系统兼容性:ICV对Linux发行版有要求。我记得有一次在CentOS 7上装ICV 2021,结果死活跑不起来,后来发现官方只支持RHEL 7.6以上。你想想看,光查这个就花了我半天。
  2. 磁盘空间要留够:ICV完整安装大概需要15-20GB。我建议至少留30GB,因为后续还有工艺库、PDK文件要放。
  3. 安装路径不要有中文或空格:这个老生常谈了,但总有人犯。我见过一个同事把ICV装到 /home/张三/ICV 2022/ 下面,结果环境变量怎么配都不对。

安装命令一般是这样:

# 解压安装包
tar -xzvf ICV_2022.1_linux.tar.gz -C /tools/icv_install/

# 运行安装脚本
cd /tools/icv_install/
./install_icv.sh

# 按照提示选择安装目录,比如 /tools/icv/2022.1

安装过程中会问你几个问题:安装类型(典型/自定义)、安装路径、是否安装文档。我个人习惯选典型安装,省事。文档建议装一下,查手册方便。

我的小技巧:安装完成后,先别急着配环境。去安装目录下看看有没有 READMEReleaseNotes 文件。里面经常藏着一些版本兼容性信息,能帮你提前避坑。

4.2 License配置

License配置是ICV安装里最容易出问题的一环。说白了,License就是一把钥匙,没有它,ICV就是个摆设。

ICV的License管理用的是FlexNet。你需要一个License文件,通常叫 license.daticv_license.lic。这个文件从哪来?要么是公司买的,要么是厂商提供的试用版。

配置步骤:

  1. 设置LM_LICENSE_FILE环境变量:指向你的License文件路径。
  2. 启动License服务:用 lmgrd 命令启动。
  3. 检查License状态:用 lmstat 命令确认。

举个例子:

# 设置环境变量
export LM_LICENSE_FILE=/tools/licenses/icv_license.lic

# 启动License服务(如果使用浮动License)
lmgrd -c /tools/licenses/icv_license.lic -l /var/log/lmgrd.log

# 检查License是否可用
lmstat -a
注意:我曾经遇到过一个问题——License文件里的MAC地址和服务器网卡对不上。原因是IT部门换了网卡,但License没更新。结果ICV启动时一直报"License check failed"。排查了整整两天才发现。所以,每次换硬件或重装系统,记得检查License的hostid。

还有一种情况是本地License。如果你只是单机使用,可以把License文件放在本地,直接设置环境变量就行,不用启动lmgrd服务。

4.3 环境变量设置

环境变量设置,是ICV配置里最灵活也最容易出错的部分。我习惯把环境变量写在一个单独的脚本里,比如 icv_env.sh,每次用的时候source一下。

核心环境变量就这几个:

变量名 说明 示例值
ICV_HOME ICV安装根目录 /tools/icv/2022.1
PATH 添加ICV可执行文件路径 $ICV_HOME/bin:$PATH
LM_LICENSE_FILE License文件路径 /tools/licenses/icv_license.lic
ICV_WORKDIR 工作目录(可选) /projects/icv_work

一个完整的设置脚本大概长这样:

#!/bin/bash
# ICV环境变量设置脚本

export ICV_HOME=/tools/icv/2022.1
export PATH=$ICV_HOME/bin:$PATH
export LM_LICENSE_FILE=/tools/licenses/icv_license.lic

# 可选:设置临时文件目录
export ICV_TMP=/tmp/icv_$USER

# 可选:设置并行运行线程数
export ICV_NUM_THREADS=8

echo "ICV环境已设置,版本:2022.1"

嗯,这里要注意一点:ICV_NUM_THREADS 这个变量不是所有版本都支持。我建议先查一下文档,或者设成4试试,别一上来就设成64,容易把服务器搞崩。

4.4 常用目录结构

ICV安装完成后,目录结构大致是这样的。我挑几个重要的说一下:

/tools/icv/2022.1/
├── bin/          # 可执行文件,比如 icv_drc, icv_lvs
├── lib/          # 共享库文件
├── doc/          # 文档和手册
├── etc/          # 配置文件
├── examples/     # 示例脚本和设计
├── tech/         # 工艺文件(部分版本有)
└── license/      # License相关工具
  • bin/:这是最常用的目录。ICV的所有命令都在这里,比如 icv_drcicv_lvsicv_verify。我一般会把这个目录加到PATH里。
  • doc/:里面是PDF和HTML格式的文档。遇到问题先翻这里,比上网搜靠谱。
  • examples/:这个目录很实用。里面有完整的DRC和LVS示例,包括规则文件和设计数据。我刚学ICV时,就是照着这些例子跑的。
  • tech/:有些版本会把工艺文件放在这里。但说实话,我很少用这个目录,因为工艺文件通常由Foundry提供,放在项目目录下更安全。

我的建议:不要直接在ICV安装目录下跑项目。创建一个独立的工作目录,比如 /projects/my_chip/icv/,把工艺文件、规则文件、设计数据都放进去。这样既干净,又方便备份。

好了,ICV的安装与配置就讲到这里。下一章咱们开始讲DRC规则文件的结构,那才是真正有意思的部分。