第三章 环境搭建与配置:安装与License配置、工艺文件加载、初始化项目设置
各位同学,咱们直接进入正题。
做LVS比对,说白了就是让工具替我们检查版图与电路图是否一致。但工具不是万能的,你得先把它伺候好。环境没搭对,后面全是白忙活。我见过太多新手,一上来就急着跑LVS,结果报错一堆,最后发现是License没配好——这种坑,我踩过不止一次。
3.1 安装与License配置
华大九天的LVS工具,安装包通常是一个压缩包。解压后,你会看到一个install.sh脚本。我个人习惯,先把安装包放到一个干净的目录,比如/home/eda/empyrean。
# 解压安装包
tar -xzvf Empyrean_LVS_2023.1.tar.gz -C /home/eda/empyrean
# 运行安装脚本
cd /home/eda/empyrean
./install.sh
安装过程会问你几个问题:安装路径、是否创建桌面快捷方式等。我建议全部默认,除非你有特殊需求。
License配置是重头戏。
华大九天的License管理用的是FlexLM。你需要把License文件放到一个固定位置,然后设置环境变量。嗯,这里要注意:License文件的后缀通常是.lic或.dat。
# 设置环境变量(建议写入 ~/.bashrc)
export LM_LICENSE_FILE=/home/eda/empyrean/license/license.dat
export EMPYREAN_HOME=/home/eda/empyrean
export PATH=$EMPYREAN_HOME/bin:$PATH
配置完别忘了source ~/.bashrc。然后运行lmstat -a检查License是否生效。
3.2 工艺文件(Rule Deck)加载
工艺文件,业内叫Rule Deck。它包含了LVS比对所需的所有规则:器件识别规则、连接关系定义、短路/断路检查规则等。说白了,就是告诉工具“什么样的图形算一个MOS管”、“什么样的走线算短路”。
加载Rule Deck有两种方式:
- 图形界面加载:打开LVS工具,在菜单栏找到“File” -> “Load Rule Deck”,选择你的
.rul文件。 - 命令行加载:启动工具时直接指定。
# 命令行启动并加载Rule Deck
lvs -rule /path/to/your/rule_deck.rul
我个人更推荐命令行方式。为什么?因为可以写脚本,批量处理多个项目。你想想看,如果每个项目都去点鼠标,效率太低了。
3.3 初始化项目设置
项目设置,就是告诉工具:你的版图文件在哪、电路图文件在哪、输出结果存哪。这些信息通常写在一个.prj文件里。
一个典型的项目文件长这样:
# LVS Project File
LAYOUT_FILE = /home/project/chip_top.gds
LAYOUT_TOP_CELL = chip_top
SCHEMATIC_FILE = /home/project/chip_top.cdl
SCHEMATIC_TOP_CELL = chip_top
OUTPUT_DIR = /home/project/lvs_result
REPORT_FILE = lvs_report.txt
这里有几个关键点:
- LAYOUT_FILE:版图文件,通常是GDSII格式。
- SCHEMATIC_FILE:电路图文件,通常是CDL或SPICE格式。
- TOP_CELL:顶层单元名,必须一致。我见过有人版图叫
chip_top,电路图叫CHIP_TOP,大小写不匹配,结果LVS报“找不到顶层单元”。
初始化项目时,我建议先做一次“Netlist Extraction”。工具会从版图中提取出网表,然后与电路网表做比对。这一步能提前发现一些低级错误,比如版图里有个器件没画。
🔑 核心要点:
- License配置:环境变量必须正确,MAC地址要核对。
- Rule Deck加载:语法检查不能省。
- 项目设置:顶层单元名要一致,大小写敏感。
3.4 知识体系框架
下面这张图,是我自己总结的环境搭建流程。你跟着走,基本不会出大问题。
这张图把环境搭建分成了5步。你按顺序走,每一步都确认无误,再进下一步。别跳步,跳步容易出问题。
3.5 常见问题与排查
| 问题现象 | 可能原因 | 解决方法 |
|---|---|---|
| 工具启动报“License not found” | 环境变量未设置或License文件路径错误 | 检查LM_LICENSE_FILE变量,确认文件存在 |
| 加载Rule Deck报语法错误 | 工艺文件版本不匹配或格式错误 | 联系工艺厂获取正确版本,或手动检查语法 |
| LVS报“顶层单元不匹配” | 版图与电路图的顶层单元名不一致 | 统一命名,注意大小写 |
| 提取网表后器件数量为0 | Rule Deck中器件识别规则未生效 | 检查Rule Deck中的LAYER定义,确认层次映射正确 |
嗯,这张表是我多年经验的总结。你遇到问题,先对照着查一遍,大概率能解决。如果还不行,再去看工具自带的日志文件,里面通常有更详细的错误信息。
好了,环境搭建这部分就讲到这里。记住:基础不牢,地动山摇。把环境配好,后面的LVS比对才能顺利跑起来。