Ledit 16.3 版图软件全面系统性教程
Ledit 16.3 全面系统性教程
- 前言
- 1. 基本界面介绍(工具、窗口、视图、主题)
- 汉化步骤
- 窗口与功能区
- 视图与个性化
- 2. 官方帮助和学习手册介绍
- 官方指南速查表
- 3. 常用快捷键
- 常用快捷键速查表
- 4. 网格设置(鼠标、面板、选择、吸附)
- 网格设置
- 对象选择设置
- 对象吸附设置
- 绘图属性设置
- 5. Cell单元、Layer的相关属性
- Cell单元属性
- 新建 Cell 与删除
- 状态
- 工具
- Select Hierarchy
- 设置——过滤
- 设置——列
- 设置——颜色
- Layer层级属性
- 设置层
- 新建
- Layer Purpose 速查表
- Derivation 页签
- ★着色
- 选项
- 6. 基础的绘图操作(基本图形、复制、旋转、镜像、分割、移动、对齐、编辑)
- 基本图形绘制
- 复制
- 旋转
- 镜像
- 分割、切洞
- 移动
- 对齐
- 图形编辑
- 7. 复杂的绘图操作(组合、布尔运算、阵列)
- 合并
- Bool布尔运算
- 周期阵列
- 通过层内复制实现周期阵列
- 通过实例化引用实现周期阵列
- 8. 测量与辅助(标尺)
- 9. 标记注释、文字生成器和查找功能
- 标记注释
- 文字生成器
- 查找功能
- 10. 套壳版图的引用(同步性、关联性)
- 11. 文件导入导出与格式转换(GDS2、TDB等)
- 文件数据导出操作
- Export scope(导出范围)选项对照表
- 常见导出格式速查
- 导出流程(流程图 + 步骤)
- 12. 命令行的使用和输入(用到情况较少)
- 1) 绘图 / 版图对象
- 2) 图层 / 颜色 / 派生
- 3) Cell / 层级 / 定位
- 4) 校验 / 日志 / 评估
- 5) 导入 / 导出 / 数据库
- 6) 高亮 / 交互(RVE/探查)
- 7) 环境 / 窗口 / 工作区
- 8) 版图结构辅助
- 🔒 郑重声明
前言
在学习和使用 Ledit 16.3 的过程中,我发现网上关于它的资料呈现出 “众说纷纭” 的状态。这些资料要么是零散的知识点,缺乏系统性的梳理,让人难以形成连贯的认知;要么在内容覆盖上存在明显短板,全面性严重不足,对于一些关键功能和实际应用场景的讲解更是寥寥无几。鉴于此,为了能让更多想要深入了解和熟练运用 ledit16.3 的人有更优质的学习资料,我便决定执笔,将自己在使用过程中的心得以及结合具体案例的详细教程撰写出来,希望能为大家提供更具指导性和实用性的帮助。
1. 基本界面介绍(工具、窗口、视图、主题)
下载安装完成,打开后的界面如下:
汉化步骤
首先介绍汉化步骤:
窗口与功能区
紧接着,简要介绍各功能区和窗口面板:
上图对应工具栏的功能速查表:
如果您的界面不同,或者需要的窗口未显示,按如下两种方法步骤打开窗口显示即可:
视图与个性化
紧接着,视图部分可以根据自己喜好,长按鼠标左键拖动调整窗口和工具栏的位置。拖动工具栏时候,需长按点击前方的竖排省略号;拖动窗口时根据箭头指引可以自由设计窗口之间的贴合与衔接!
此外,还可以根据自己喜欢的色彩搭配和主题色,选取和修改自己喜欢的界面主题:
2. 官方帮助和学习手册介绍
另外,其实安装完成后官方已经给了详细的帮助和使用指南,有两种方法可以参阅。
第一,可以点击帮助按钮,选择查看,会自动打开相应pdf参阅,但是缺点就是有些版本和视图是老版本的,不太适配,特殊情况下根据自己需要用到什么查什么就行:
第二,进入软件的安装路径中的Docs文件夹下查阅:
官方指南速查表
Docs文件夹中对应文件的功能速查表:
3. 常用快捷键
此处直接列举一些实用性强的快捷键,更多详细的参阅Docs文档中的leqref.pdf
文件:
Ctrl+C ➡ 复制
Ctrl+V ➡ 粘贴
Ctrl+滚轮 ➡ 放大/缩小
Ctrl+E ➡ 编辑物体
选中图形+长按滚轮 ➡ 移动图形
Home键 ➡ 将图形放至适合屏幕的大小
t(英文) ➡ 标尺
清除标尺
Ctrl+F ➡ 打开“查找对象”对话框
方向键(上下左右、鼠标滚轮) ➡ 画板移动
选中对象 + 对象边缘线处长按滚轮 ➡ 调整图形尺寸和边长
选中多个图形 + 在边缘长按鼠标拖动 ➡ 只会移动,不会拉伸
R ➡ 逆时针旋转选定对象 90°
Ctrl+R ➡ 打开“旋转选定对象”对话框
H ➡ 沿水平轴翻转选定对象
V ➡ 沿垂直轴翻转选定对象
选中对象 + Ctrl + 上下左右方向键 ➡ 对选中对象进行位置微调
Shift + 左键 ➡ 增选对象
Alt + 右键 ➡ 减选对象
N ➡ 创建新单元
O ➡ 打开现有单元
C ➡ 复制单元
I ➡ 实例化单元(引用其他cell)
常用快捷键速查表
4. 网格设置(鼠标、面板、选择、吸附)
网格设置
在版图设计过程中,网格(Grid) 是保证绘图精度与对齐的核心工具。L-Edit 提供了丰富的网格设置功能,主要包括显示网格、鼠标对齐、选择范围及对象吸附等部分。
由如下图所示打开网格编辑窗口:
打开的Setup Design test窗口包括很多子窗口,如栅格、选择、画图等,下面依次来阐述和讲解常用的几个网格设置:
Manufacturing grid 定义了版图数据库中最小的坐标分辨率,这个设置尤为重要,如果设置的精度不够,就会出现绘制图形精度差、光滑度差,最终影响工艺环节制造的质量。如下图网格最小精度设置1微米和0.01微米的对比区别(特别注意,哪怕你取消勾选了Display curves using manufacturing grid,可能就看不到精度不够引起的锯齿状,但是会影响实际生产过程中工艺制造):
提示:
① 建议大网格 = 工艺最小单元的整数倍,小网格 = 最小线宽或间距,方便绘制时快速对齐;
② 在绘制精细互连线时,开启 Snapping 可以保证所有端点精准落在网格上。
在完成了基本的网格设置之后,需要进一步掌握 对象操作的三大关键要素:吸附、绘图与选择
对象选择设置
选择(Selection) 是所有编辑操作的前提。只有正确理解选择范围、取消选择范围和编辑灵敏度的设置,才能在复杂版图中快速、准确地定位和修改对象。
对象吸附设置
吸附(Snapping) 是保证版图精度和器件对齐的基础。通过合理设置吸附点、偏移量以及感应范围,可以确保金属线、端口、实例单元在连接时精确落位,避免后续 DRC/LVS 出现误差。
绘图属性设置
绘图(Draw) 则是版图构建的核心工具。无论是矩形、多边形,还是圆弧、文字与端口,所有器件图形都通过绘图命令生成,优先设置好绘图的相关属性可以辅助自己的绘图过程清晰明了。
5. Cell单元、Layer的相关属性
Cell单元属性
在完成了网格与对象操作的基础设置后,接下来需要关注版图设计中最核心的两个元素:Cell 单元与 Layer 图层。
- Cell 单元是版图设计的基本模块,所有器件、端口和图形都需要依附于某个单元进行组织。
- Layer 图层则定义了不同工艺层面的几何信息,是进行工艺映射和设计规则检查的关键。
新建 Cell 与删除
首先,在 L-Edit 中,新建一个 Cell 十分直观。只需在 Cell 窗口内右键,即可选择 新建 (Create New Cell),随后为单元设置一个合适的名称,并在属性对话框中补充相关信息(如作者、组织、附加说明等),这样便完成了一个新的设计单元的初始化。
Cell 的删除操作:
Cell单元创建完成后,我们可以在Cell窗口中看见我们的Cell对象,在此先说明一点,根据每一个Cell背景颜色的不同,可以判断Cell之间是否存在引用和实时关联关系,正如上图中的引入例图单元、Select Hierarchy和Replace Instances是关于引用和实例化的操作(关于引用和实例化单元的操作,本文放在第10部分讲解)
如上图所示,在 Cell 窗口 中,不同颜色背景的单元代表了其在当前设计层次中的状态:
白色背景的 Cell:表示该单元已被其他单元调用(即已被实例化引用),因此属于 有效单元,在设计层次中处于被使用状态。
红色背景的 Cell:表示该单元目前没有被任何上层调用,处于 未引用(孤立)状态,也称为“orphan cell”。这些单元虽然仍保留在库中,但不会对最终版图结果产生影响。
状态
紧接着,在 Cell 窗口右键菜单 → 状态 (Status) 中,可以对单元进行锁定、显示控制和版本管理:
Lock/Unlock 可以控制单元是否可编辑(锁定),Show/Hide in cell lists 调整其在列表中的可见性(隐藏),隐藏 Cell 只影响界面的显示,不会影响它们的实际内容或设计。如果隐藏了某个Cell,想要重新显示如下图步骤操作:
Increment version 实现版本号递增(这东西感觉没啥用,使用过程中不用管就行)
工具
接下来就是关于工具展开的两个功能:
Select Hierarchy
紧接着,Select Hierarchy选择该 Cell 的层次引用关系,显示它被哪些 cell 调用,或它调用了哪些子单元:
设置——过滤
通过 过滤功能,可以快速筛选和显示特定的单元,帮助我们在大量数据中定位和处理所需对象。
进一步对于字符串 Sub-string Filter和视图名称 View-name Filter的过滤选择器:
设置完成字符串字段过滤器之后,筛选使用方法如下:
对于视图查看模块简单说几句:
设置——列
列设置可以自定义 Cell 窗口显示的内容,包括名称、视图、库等,以优化界面布局和提高操作效率。
特别地,对于自定义列显示,是在右侧打开的Column Chooser窗口中选择想要添加的列属性,鼠标左键长按拖到Cell单元窗口的列中才能添加自定义显示成功,如图:
设置——颜色
使用颜色设置,可以为不同类型的单元(如修改过的、隐藏的、预留的)分配颜色标识,方便快速识别和管理设计元素。
这部分根据自己需要勾选即可,最后再说一下左上角选择器:
具体功能参阅下表:
过滤选项 | 描述 |
---|---|
过滤 | 应用自定义筛选条件的基本过滤选项。 |
顶层 | 显示没有父单元的顶层单元。 |
叶子 | 显示没有子单元的叶子单元。 |
子单元 | 显示所选单元的子单元。 |
父单元 | 显示所选单元的父单元。 |
后代单元 | 显示所选单元的所有后代单元。 |
祖先单元 | 显示所选单元的所有祖先单元。 |
已修改 | 显示已修改的单元。 |
Layer层级属性
Layer 用于区分和管理设计中的不同元素,每个 Layer 对应一种功能或物理结构。通过合理配置 Layer,可以有效地组织图形,确保设计的清晰和高效。
设置层
紧接着,我们先来讨论 Setup Layers ②设置层:
在使用 Setup Layers 时,请务必填写对应的 GDSII number(图层编号)。这一点非常重要,因为 GDS 文件主要依赖图层编号来识别和导出图形。如果编号为空,可能导致导出的 GDS 文件内容为空,从而在导入其他版图软件时出现报错或显示异常。即使不是最终交付代工厂的规范设计,也建议为每个图层指定一个唯一的 GDSII 编号,避免空缺或重复,以确保文件的完整性与兼容性。
上图中在Layers列表区有一些系图层,其与Layer Palette选择器是类似的,详见下表 Layer Palette 图层筛选选项说明 和 系统层级 Layer 说明:
Layer Palette 图层筛选选项说明表
选项名称 | 功能说明 | 典型作用场景 |
---|---|---|
全部 (All) | 显示所有图层(系统层 + 自定义层)。 | 默认显示模式,适合初学时全面查看。 |
过滤 (Filter) | 根据设置的条件筛选显示部分图层。 | 当图层较多时,用于快速定位所需图层。 |
Drawn | 仅显示用户手动绘制过的图层。 | 检查或回顾实际绘制内容时使用。 |
In Use in File | 显示当前整个文件中实际被使用的图层。 | 确认哪些图层在全局版图中有数据。 |
In Use in Cell | 显示当前 Cell 内被使用的图层。 | 方便单元级别调试或检查。 |
In Use in Cell + Hierarchy | 显示当前 Cell 及其层级结构中被使用的图层。 | 多层级结构检查时使用。 |
Generated | 显示由派生 (Derivation) 或布尔运算生成的图层。 | 管理和查看通过逻辑运算得到的辅助图层。 |
Special | 显示特殊系统层(如 Grid、Origin、Drag Box、Icon、Error、Cell Outline 等)。 | 调整系统参考层或检查辅助功能层时使用。 |
系统层级 Layer 说明表
系统层名称 | 功能说明 | 是否导出 | 常见用途 |
---|---|---|---|
Grid Layer | 显示参考网格,辅助对齐 | 否 | 精确绘图、手动布线 |
Origin Layer | 标记原点位置,作为对齐参考 | 否 | 子单元放置、对齐检查 |
Icon Layer | 图标/颜色显示层,提高辨识度 | 否 | 层识别、团队协作 |
Error Layer | 显示 DRC/LVS 错误或违规点 | 否 | 版图调试、错误修复 |
Cell Outline Layer | 显示单元边界框,标识 Cell 范围 | 否 | 层次化拼接检查 |
Drag Box Layer | 鼠标拖拽时的临时选择框 | 否 | 对象选择辅助 |
接下来,创建一个新的Layer层:
新建
Purpose(用途) 就是给该层分配一个使用目的,让版图中的对象不仅仅依赖层号,还能带有语义标签:
Layer Purpose 速查表
Purpose 名称 | 功能说明 | 类别 |
---|---|---|
drawing / drawing1-9 | 普通绘制层,用于放置几何图形(最常用) | 设计类 |
cell | 单元相关信息层 | 设计类 |
grid | 网格辅助层 | 设计类 |
boundary | 定义单元边界(cell outline),便于层次拼接 | 校验与流片类 |
blockage | 阻塞层,指定区域禁止布线 | 校验与流片类 |
net | 信号网络层,用于电气连接标记 | 校验与流片类 |
fill / gapFill | 填充层,用于金属密度规则或工艺填充 | 校验与流片类 |
label | 标签层,用于放置文字 | 标注辅助类 |
annotation / annotate | 注释层,放置说明或标记,不影响电气 | 标注辅助类 |
info | 信息层,作为参考使用 | 标注辅助类 |
flight | 飞线层,用于检查引脚连通性 | 标注辅助类 |
error | 错误层,通常由 DRC/LVS 生成 | 报错与警告类 |
fatal | 严重错误层 | 报错与警告类 |
ackWarn / critical | 警告或关键标记层 | 报错与警告类 |
oaAny / oaCustomFill | OpenAccess 兼容层,用于 EDA 工具数据交互 | 工具兼容类 |
Derivation 页签
Drawn 层是手动画的物理层,直接参与流片;
Derived 层是通过布尔运算从 Drawn 层派生,不直接绘制,主要用于验证和工艺映射。
派生层设置:
五种 Derivation 类型:
Derivation 类型 | 功能说明 | 常见用途 |
---|---|---|
Boolean(布尔运算) | 基于源层做布尔逻辑运算(AND、OR、NOT 等)生成新层 | 生成中间层(如接触孔/掩膜组合)、工艺规则验证 |
选择(Select) | 挑选满足特定条件(如尺寸、形状)的几何对象 | 过滤小图形、去除不合规的残余多边形 |
Area(面积) | 按面积大小生成新层,可设置面积阈值 | 检查并去除过小金属片、小岛结构 |
Density(密度) | 计算局部区域的填充密度并输出结果层 | CMP 平坦化检查、金属布线密度验证、辅助加填充 |
External(外部) | 层定义来自外部工具或脚本,而非 L-Edit 内部 | 与 DRC/LVS 工具或工艺仿真软件交互 |
★着色
这是非常重要的一层,基本都会用到,设置层中对象的填充、边缘、颜色等
**!!!重要:**建议新建layer层的时候,将Outline(边缘线)的样式设置为无None,这样有一个好处,之后我们在选择了图形的时候,图形边缘就会有黑实线,便于我们看出哪些图形选中,哪些没有选中!
当然了,也可以分别去设置Outline(边缘线)的样式和颜色,以及图形对象被选中时候(Selected object)的样式和颜色,只要你自己能区分开就行!
对象列表中着色属性修改对象说明:
列表项 | 含义 / 作用范围 | 常用设置建议 |
---|---|---|
Object | 该层上未被选中的普通几何对象(Polygon/Box/Path 等)的填充与边框样式。 | 设清晰的填充色 + 适度边框,保证与其他层有对比。 |
Selected object | 该层上被选中的几何对象显示效果(高亮样式)。 | 选更亮或对比强的颜色;可加粗边框,便于识别选择态。 |
Port box | 端口(Port)自身的边框/盒显示;只影响端口的几何框,不含文字。 | 通常设置为无填充、明显的边框色(如亮色)。 |
Selected port box | 端口被选中时的盒/边框样式(端口的高亮效果)。 | 用更亮的边框色或更粗的线宽以强调选择态。 |
Port text | 端口名称(Terminal name)的文字显示样式(颜色/填充与本项相关)。 | 选与背景反差大的字体颜色;保持清晰可读。 |
Selected port text | 端口名称文字在选中时的显示样式。 | 设更亮或反差更大的字体色以区分。 |
Wire centerline | Path/Wire 的中心线覆绘(仅用于显示,不是实际几何;不导出 GDS)。 | 细线(1 px)、低饱和度色;便于对齐与检查路径走向。 |
Selected wire centerline | 被选中路径的中心线样式。 | 设更亮色或略加粗,方便定位选中的线。 |
选项
选项操作主要是用来定制 Layer Palette 界面的显示信息,根据工作需求可显示/隐藏不同的列,有点类似于上部分讲到的拖动调节的Cell属性列的显示:
6. 基础的绘图操作(基本图形、复制、旋转、镜像、分割、移动、对齐、编辑)
至此,我们已经完成了前面关于各类面板、视图以及属性的学习与设置。接下来,就进入到正式的绘图环节。在这一部分,我们将从最基础的操作入手,包括基本图形的绘制、对象的复制与移动,以及旋转、镜像和分割等常用编辑方法。
基本图形绘制
开始绘制版图前,首先要创建设计,创建 Cell 和 Layer 才能开始在绘图工作区绘制版图(如果无法绘制则是点击 Cell 和选中想要绘制的 Layer 层):
对于绘图工具栏区域的各个按钮的功能,鼠标静止停留都会有注释,这点自己多看看就知道了,此处不再详细赘述。
接下来,我们来到绘图区域,点击想要绘制的按钮即可在网格窗口中完成左键长按的拖拽绘制,特别说明的一点在绘制多边形时候,最后的终点需要双击鼠标左键才能结束绘制,否则软件默认还将继续绘制下一个点。另外,绘制完一个图形后,软件默认不退出绘制模式,可以继续绘制相同类型的下一个图形,按 Esc退出绘制到选择模式。
如果一打开软件,没有看到画圆、扇形和圆环的按钮,则根据下图步骤开启即可,另外再说明一点,版图绘制中都没有绝对的圆形,都是提供大量的点构成的多边形来近似形成的圆,所以之前部分讲的网格精度的设置就尤为重要,精度不够很容易导致圆形变成粗糙的多边圆,但是精度过高也不好,会导致图形点集数量过多,数据量增大:
复制
点击工具栏的复制按钮,但是这样复制出来的图形会和原来的图形完全重合在一起,这时候需要长按鼠标滚轮及其分离开才能看见;
另外还可以直接使用快捷键Ctrl + C和Ctrl + V快速完成复制操作。
旋转
点击工具栏上的旋转按钮,即可对选中的图形进行旋转操作。需要注意的是,旋转的中心点默认是以图形的几何中心为基准进行的,因此图形会原地转动,而不会移动到其他位置。如果希望调整旋转后的图形位置,可以在旋转完成后,按住鼠标滚轮拖拽进行分离或移动。
另外,旋转同样支持快捷键操作:使用 Ctrl + R 可以快速完成旋转。
镜像
点击工具栏上的 镜像按钮,即可将选中的图形沿水平轴或垂直轴进行镜像操作。和复制一样,镜像生成的图形在初始状态下会与原图形完全重合在一起,此时需要长按鼠标滚轮将其拖拽分离,才能清楚看到镜像后的效果。
另外,也可以通过快捷键 H、V (英文输入)快速完成镜像操作。
分割、切洞
点击工具栏上的 分割按钮,即可将选中的图形按照鼠标点击位置切分成两个或多个独立部分。其实在实际绘图中,这个功能运用到的不多,主要是对于复杂图形的处理能力适配度低,更多还是运用多个图形的布尔运算操作。
移动
对象和图形的移动最简单的就是选中图形长按滚轮即可移动,也可以选中多个图形长按滚轮整体移动,还可以通过 Ctrl + 方向键精调位置。
另外,还可以利用工具栏移动值按钮实现固定精确值的移动:
对齐
对齐操作很简单,而且实用性不强,大部分网格开了格点移动之后手动对齐就行,具体的工具栏实现如下:
图形编辑
点击工具栏的编辑物体按钮(小眼镜),即可对选中的图形进行调整,比如修改其尺寸、位置或属性。另外,还可以直接使用快捷键 Ctrl + E 快速进入编辑模式,对图形对象进行灵活修改,不同的图形涉及的尺寸、位置信息参数不同,如多边形可以修改每个顶点坐标,圆则可以修改圆心坐标和半径,具体修改具体分析即可:
特别说明,对于矩形有多种不同的操作方式,可以根据中心点和长宽尺寸修改,也可以根据四个订和长宽依次修改:
7. 复杂的绘图操作(组合、布尔运算、阵列)
合并
点击工具栏上的合并按钮,被选中的多个图形会自动融合为一个整体轮廓,重叠区域会被吸收,只保留一个统一的形状。与复制不同,合并操作后不会生成新的对象,而是直接把原有图形整合起来,因此视觉上可能变化不大,但本质上已经成为一个新的单一图形,后续移动或编辑时会整体作用。
合并操作类似于布尔运算中的“或”,但仅限于同一层(Layer)内的图形使用。对于不同 Layer 之间的对象,无法直接合并,只能通过布尔运算中的“或”等方式来实现等效功能。
Bool布尔运算
在掌握了基本的图形绘制与编辑之后,我们常常会遇到更加复杂的版图设计需求:比如两个图形的重叠区域需要保留、或者要去掉其中一部分,甚至要快速得到两个图形的并集。此时,简单的复制、旋转、镜像就显得力不从心了。
**布尔运算(Boolean Operation)**正是为此而生——它可以像逻辑运算一样,对图形进行与(AND)、或(OR)、非(NOT)、异或(XOR)等操作,从而高效生成目标几何。通过布尔运算,我们能够在不同图层或同一图层之间灵活处理图形的关系。
同一Layer上图形的 bool 运算操作自己多试试几次就知道用法了,和数学上集合运算一样,对于不同层之间的 bool 运算:
布尔Bool运算功能表:
运算类型 | 功能说明 | 应用场景示例 |
---|---|---|
或 (OR) | 将两个图形的面积合并,生成包含两者的整体区域。 | 合并不同层上的区域,得到总覆盖范围。 |
和 (AND) | 取两个图形的重叠部分,生成交集区域。 | 提取两个层之间的共同区域。 |
Xor (异或) | 保留两个图形不重叠的部分,去掉重叠部分。 | 检查图形间差异,或用于版图比对。 |
Not (非) | 取第一个图形中,除去与第二个图形重叠的部分。 | 去除被屏蔽区域,只保留有效部分。 |
Grow (膨胀) | 将图形向外扩展一定距离。 | 模拟工艺扩散,或加大设计裕量。 |
Shrink (收缩) | 将图形向内收缩一定距离。 | 模拟刻蚀收缩,或减少图形尺寸。 |
Subtract (A-B) | 从图形 A 中减去图形 B,仅保留 A 中不与 B 重叠的部分。 | 从主层中去除掩模层。 |
Subtract (B-A) | 从图形 B 中减去图形 A,仅保留 B 中不与 A 重叠的部分。 | 去除辅助层中与主层重复的部分。 |
如上图进行或运算之后:
周期阵列
通过层内复制实现周期阵列
- 复制法=生成独立几何体,编辑不联动
当阵列规模不大、且每个单元后续可能需要分别微调时,用最直接的“复制+偏移”就好。
配合图中流程:① 选中单元点复制;② 点移动;③ 在弹窗里填入精确偏移量(如 dx dy),即可得到整齐的间距。
完成偏移后,可以不断点击复制即可依次生成上述偏移量的阵列图形,完成一行的阵列之后还可全选,执行上述相同的偏移操作(y方向)实现二维周期阵列:
-
优点:所见即所得、任何形状都适用、容易做局部差异化。
-
注意:复制出来的是独立图形,数量很大时数据库会膨胀;后续改版需要逐一修改。
通过实例化引用实现周期阵列
- 实例化法=生成 cell 引用,编辑源单元即可全局同步(推荐使用这种)
当阵列很大、且希望一处改动全阵列生效时,使用 Instance/Array(NxM, Δx/Δy) 来放置 cell 引用最合适。
实例化引用的方式:
- 点击工具栏中的引入图例单元按钮; 使用快捷键 i(英文); 在打
- 开一个 Cell 窗口的基础上,选中另外一个 Cell
- 右键点击引入例图单元;
- 在打开一个 Cell 窗口的基础上,直接左键长按拖入另外一个 Cell。
选中引入的图例,Ctrl + E 进行对象编辑:
注意,需要根据需求正确设置 Delta 周期,默认的 Delta 周期一般都不对,在周期等于 Cell 边长时候,周期完的图形之间就会紧密贴合形成一整块,类似放大的效果,如下案例给出10*10周期数目下,周期是2和3微米(引入图例边长为2微米)的区别演示:
-
优点:体量小(仅保存引用)、同步性强(改源 cell 即全阵列更新)、便于层次化管理。
-
注意:想对某个阵列元素做“个别差异”时需打散(Ungroup/Make Unique),也就是工具栏按钮的撤销聚组或额外覆盖几何,如下图:
8. 测量与辅助(标尺)
在版图设计过程中,除了绘制和编辑图形外,测量也是必不可少的环节。通过测量,我们可以快速获取任意两点之间的距离、图形的边长、角度等关键参数,从而保证设计尺寸与工艺要求的严格一致。同时,标尺工具还能作为辅助功能,帮助我们实时校准和比对图形布局,避免因视觉误差导致的偏差。
紧接着,就可以在标尺layer层上绘制辅助尺,分别有水平垂直、45°、任意角度三种标尺:
同样的,我们还可以在特定的辅助线 Layer 层上绘制辅助标线,例如芯片边缘的切割线边界的辅助绘制等:
9. 标记注释、文字生成器和查找功能
标记注释
标记和文字注释能够帮助我们在关键位置添加说明、提示或工艺要求,使设计更清晰直观,也方便后续的检查与交流。
标记和文字注释完成后,也可像图形对象一样移动和编辑:
文字生成器
在了解了文字工具的标记功能后,我们需要进一步关注真正能够在版图中刻出的文字。这就要用到版图文字生成器。与前者不同,它不仅仅是软件内的标识,而是通过几何图形直接绘制在版图层上,可以随 GDSII 文件一起导出并最终刻蚀到芯片中。
将生成的文字版图移动到合适的位置,在和相应图形进行异或运算即可得到附带文字版图的光刻版图:
查找功能
随着版图规模的增大,快速定位某一层、某一对象或特定属性就显得尤为重要,此时就需要用到查找功能。通过查找,我们能够高效地定位目标图形或文本,避免人工逐一翻找的低效过程。
工具栏查找按钮开启,或者使用快捷键 Ctrl + F 打开下面窗口:
下面给出一个具体的查找对象案例:
不同于上述的对象查找,窗口视图中可以开启一个关于Find in Hierarchy(层级查找)的窗口:
Match 匹配快速预览表:
名字输入 | Match 方式 | 含义说明 | 使用场景 |
---|---|---|---|
空着 | 任意 | 不进行名称限制,返回该类型下的全部对象 | 想快速列出所有端口、标签或实例时 |
有值 | 提取 (Exact) | 精确匹配,只返回与输入名称完全一致的对象 | 查找唯一确定的对象,如 cell11 |
有值 | Partial | 部分匹配,只要名称中包含输入字符串即可 | 查找同类或批量命名的对象,如输入 cell → 匹配 cell1 、cell11 、mycell_A |
有值 | Wildcard 搜寻 | 支持通配符匹配: - cell* 匹配所有以 cell 开头的对象- *test 匹配所有以 test 结尾的对象- c?ll 匹配 cell 、call | 大规模项目中的模糊搜索,快速筛选目标 |
查找范围对照表:
选项 | 含义 | 适用场景 |
---|---|---|
Cell: “cell2” | 只在当前指定的单元 (cell2) 内部查找 | 精确锁定在某个 cell 的范围内,避免跨层级搜索带来干扰 |
Hierarchy: “cell2” | 在 cell2 及其所有下级层次 (hierarchy) 中递归查找 | 当 cell2 内部还引用了其他子 cell,需要一并搜索时使用 |
Library: “test” | 在指定的库 (Library) 中查找 | 如果工程有多个库,想只在某一个库范围内查找时使用 |
All libraries | 在所有已加载的库中查找 | 进行全局搜索,适合不确定目标在哪个库的情况 |
Libraries… | 自定义选择一个或多个库作为搜索范围 | 灵活设定范围,介于“单库”与“全部库”之间 |
层级查找案例:
Find in Hierarchy(层级查找)和 Find Object(s)(对象查找)区别:
10. 套壳版图的引用(同步性、关联性)
我们经常需要在一个大版图中调用或嵌套多个子单元,这就是所谓的套壳版图引用。通过引用的方式,我们不仅能够实现模块化设计,避免重复绘制,还能保持子单元与总版图之间的同步性和关联性。一旦子单元发生修改,引用的部分也会自动更新,从而保证设计的一致性与可维护性。
关于图例引用的操作具体可以参考前面第7章节——复杂的绘图操作(组合、布尔运算、阵列)的 通过实例化引用实现周期阵列 子章节,此处不再详细赘述引用方式的操作。
引用的本质就是在 Cell 之间构建实时关联和更新的树结构,当子节点单元被父节点单元引用之后,改变子节点单元 Cell 中的图形结构,那么父节点单元 Cell 中的相应图形结构和位置也会跟着发生变化,借助第7章中采用的 10*10 矩形周期阵列案例来说明:
紧接着,这里我们继续介绍几个复杂的问题,在完成引用之后,如果需要改变周期阵列内的 Cell 单元图样,而不改变多个周期的阵列规则,传统的方法就是重新进行周期阵列化,但是对于引用该子节点单元的父节点单元数量足够多的时候,传统方法显然不适用,此处我们就需要用到 Cell 属性中的 Replace Instances 操作:
子选项 | 说明 | 用法示例 |
---|---|---|
Of This Cell… | 替换当前所选 单个 Cell 的所有实例。 | 如果 cell1 在版图中有多个实例(阵列、单个引用),选择新 Cell 替换它们。 |
In Selected Cells… | 替换当前所选 父 Cell 中的某些子实例,不会影响全局。 | 在 cell2 中引用了 cell1 ,只替换 cell2 里的实例,不影响其他父 Cell。 |
Retarget Library of Selected Cells… | 将所选 Cell 的引用指向另一个库(Library),而不是换 Cell 名称。 | 如果原来引用 test 库中的 cell1 ,可切换到 newlib 库中的 cell1 。 |
总而言之
-
全局替换 → 用 Of This Cell
-
局部替换 → 用 In Selected Cells
-
库切换 → 用 Retarget Library
继续基于上述的10*10矩形案例,把旧的子节点单元rect-1-1
被任何父节点单元引用的地方全部替换为新的子节点单元circle-1-1
(基于上图的替换参数):
11. 文件导入导出与格式转换(GDS2、TDB等)
版图画完不代表结束——把数据“正确地”交出去才是关键。日常协作与长期保存用的 TDB 工程库,以及交付晶圆厂最常见的 GDSII / OASIS(含层号与数据类型映射),再顺带看下 CIF、DXF、Gerber 在特殊场景里的用法。
我们会按一条实操链路走:导入检查 → 层映射 → 单位/缩放 → 层级与文本处理 → 导出 → 回读验证。中途会提醒那些常见坑(比如 GDS 层号/DT 没填、数据库单位不一致、文本没转几何、派生层忘了导出等)。读完这一节,我们就能选对格式、配齐参数、回读自检—确保“我们交付的,就是我们看到的”。
文件数据导出操作
版图文件数据的导出:
Export scope(导出范围)选项对照表
选项(英文 UI) | 中文含义 | 何时使用 | 备注 / 小贴士 |
---|---|---|---|
All cells | 导出所有 cell | 需要整库打包、归档或交付全库时 | 体积最大;确保所有层映射与命名规范已就绪 |
Active cell | 仅导出当前激活顶层 cell | 交付/验证单个顶层版图(会自动带上子层级) | 常用;配合 Include hierarchy 更稳妥 |
Fabrication cell | 导出“制版/工艺总装”cell | 工程采用专门 Fabrication/Top cell 汇总时 | 没有该用法可忽略 |
单元(… 选择) | 指定一个/多个目标 cell 导出 | 只交付指定模块或做问题复现 | 可精确点名;配合 Include hierarchy 使用 |
Cells from libraries | 从指定库导出 | 多库工程中只导出某几本库 | 右侧 … 选择库;与 Exclude libraries 互补 |
Cells selected in navigator | 导出 Navigator 中选中的 cell | 先在 Cell 面板框选/挑选,再一键导出 | 快速、可视化选择 |
Include hierarchy | 包含子层级 | 需把所选 cell 的所有引用一起写出(最常勾) | 不勾可能导致缺层级而导入报错 |
Exclude libraries | 排除某些库 | 临时剔除测试库、外部参考库 | 与 Cells from libraries 组合实现白/黑名单 |
常见导出格式速查
格式 | 典型用途/流向 | 主要特性(优/缺点) | 导出要点(容易踩坑的地方) |
---|---|---|---|
GDSII | 主流 IC/硅光/MEMS 流片交付(mask 数据) | 工业事实标准;层=GDSII number + data type;体积较大;不支持弧(近似折线) | Setup Layers 给每层填好 GDSII number / data type;确认 Database unit / Scaling;需要刻蚀的文字请先转成几何;尽量保留层级结构。 |
OASIS | 大规模/新工艺设计交付(GDS 的升级) | 文件超小、阵列/重复更高效;大多数晶圆厂接受 | 同样要正确映射层号/DT;开启压缩;大阵列/超大版图优先用 OASIS。 |
CIF | 老工艺/教学/部分科研工具互转 | 文本化、简单;表达能力有限 | 仅当对方工具要求时使用;回读检查层名是否被截断或合并。 |
DXF | 机械/CAD 互操作(AutoCAD、机加/光刻前置绘图) | 线框友好;不是掩膜标准(无层类型概念) | 仅做展示/加工沟通;回导流片不可靠,几何常被离散为线段。 |
Gerber | PCB/光绘(菲林) | 光绘机行业标准 | IC 流片一般不用;MEMS/微纳实验室出菲林时要对好单位、极性和“层→绘制指令”的映射。 |
TDB(工程库) | L-Edit 原生工程保存/协作 | 完整保存库、Cell、层设置、派生层、配色等上下文 | 用 Save Cell to TDB File… 保存;不直接交付流片,需再导出 GDSII/OASIS。 |
导出流程(流程图 + 步骤)
实操 5 步法(以 GDS/OASIS 为例):
-
①层映射:Setup Layers → 为每个图层填写 GDSII number / GDSII data type(必做,不填很容易导空层或导入报“Unknown layer”)。
-
②单位检查:在导出对话框确认 Database unit / Scaling 与工程一致。
-
③层级与文字:勾选是否保留层级、压缩;需要被加工的文字建议用“版图文字生成器”先转成实际几何再导出。
-
④派生层/可见层:使用了 Derivation 生成的层,确认是否包含在导出清单中;可见≠导出,导出以层映射为准。
-
⑤回读自检:导出前跑一次 DRC;导出后用 KLayout/L-Edit 回读,核对层号/数据类型、数量、层级是否一致。
12. 命令行的使用和输入(用到情况较少)
通过命令行,我们不仅可以更快速地完成特定操作,还能执行一些图形界面中难以直接实现的批处理命令或高级指令。命令行的使用大大提升了操作的灵活性与效率,尤其是在需要反复调用某些功能、进行批量文件处理或调试时,显得尤为重要。
说明
• 所有命令均可附加-help
获取用法:如rect -help
、mgc_rve_import -help
• “是否常需参数”用于提示:很多绘图/导入导出命令必须带参数才会执行
• 示例里出现的 <…> 都是占位符(参数位示意),具体参数名/顺序以 命令 -help 为准
1) 绘图 / 版图对象
命令 | 用途 | 是否常需参数 | 示例(占位/可直跑见注) | 功能说明 |
---|---|---|---|---|
box | 画矩形(Box) | 是 | box <x1> <y1> <x2> <y2> | 以对角点坐标生成矩形。 |
rect | 画矩形(Rect) | 是 | rect <x1> <y1> <x2> <y2> | 同上,命令族差异可用 -help 确认。 |
circle | 画圆 | 是 | circle <cx> <cy> <r> | 圆心+半径生成圆形。 |
polygon | 画多边形 | 是 | polygon <x1,y1 x2,y2 …> | 传入顶点序列闭合成型。 |
wire | 画线(Wire) | 是 | wire <w> <x1,y1 x2,y2 …> | 线宽 + 路径点。 |
cross | 十字标记 | 是 | cross <cx> <cy> <size> | 放置对准/标识十字。 |
barcode | 文本→条码 | 是 | barcode <text> <x> <y> <h> | 以文本生成条码几何。 |
hershey | 文本刻字(Hershey) | 是 | hershey <"TEXT"> <x> <y> <size> | 将文字转为可布尔运算的几何。 |
port | 新建端口 | 是 | port <name> <x> <y> <layer> | 版图 I/O 标注。 |
instance | 放置实例/阵列 | 是 | instance <cellName> <x> <y> [array…] | 引用子单元(可阵列)。 |
group | 打包成新 cell 并实例化 | 否/是 | group (先选择对象) | 将所选几何成组并放回实例。 |
ungroup | 解组/打散 | 否/是 | ungroup (选中实例) | 把实例打散成几何。 |
delete | 删除实例/选择 | 否/是 | delete (选中) | 删除所选对象/实例。 |
merge | 合并几何 | 是 | merge <layer> 或 merge selection | 同层并集/连成一体。 |
2) 图层 / 颜色 / 派生
命令 | 用途 | 需参 | 示例 | 功能说明 |
---|---|---|---|---|
layer | 设当前绘图层(可创建) | 是 | layer <layerNameOrId> | 切层后新画的对象落在该层。 |
colorpalette | 改/查色板 | 是 | colorpalette <index> <r> <g> <b> | 修改显示颜色(非版图数据)。 |
pastetolayer | 粘贴到指定层 | 是 | pastetolayer <layer> | 将剪贴/所选对象改落层。 |
generatelayer | 生成派生层 | 是 | generatelayer <rule…> | 按布尔/密度等规则生成新层。 |
3) Cell / 层级 / 定位
命令 | 用途 | 需参 | 示例 | 功能说明 |
---|---|---|---|---|
cell | 打开/新建 cell | 是 | cell <cellName> | 进入或创建指定单元。 |
moveorigin | 调整原点 | 是 | moveorigin <dx> <dy> 或 moveorigin <x> <y> | 便于阵列/对齐的原点重设。 |
position | 元素定位 | 是 | position <selector> <x> <y> | 精确移动/放置对象。 |
findinstance | 找实例 | 是 | findinstance <namePattern> | 按名/规则定位实例。 |
findoverlap | 找重叠 | 否/是 | findoverlap | 发现叠盖区用于修正。 |
locate | 跳到命名点 | 是 | locate <pointName> | 快速视图跳转。 |
4) 校验 / 日志 / 评估
命令 | 用途 | 需参 | 示例 | 功能说明 |
---|---|---|---|---|
drc | 运行 DRC | 否/是 | drc | 在当前 cell 做设计规则检查。 |
logmessage | 写日志 | 是 | logmessage "hello" | 直接可运行:在日志窗打印文本。 |
verbosity | 日志冗余级 | 是 | verbosity <level> | 调整输出详尽程度。 |
evaluate | 评估表达式 | 是 | evaluate {1+2*3} | 计算表达式并返回结果。 |
dtos | 双精→串 | 是 | dtos <double> | 数值转字符串。 |
stod | 串→双精 | 是 | stod "3.14159" | 字符串转数值。 |
property | 属性命令 | 是 | property <selector> <name> <value> | 读写对象/层/单元属性。 |
test | 实验命令 | 否/是 | test -help | 查看可用试验项。 |
5) 导入 / 导出 / 数据库
命令 | 用途 | 需参 | 示例 | 功能说明 |
---|---|---|---|---|
mgc_rve_import | 导入版图 | 是 | mgc_rve_import <options…> | 通过 RVE 接口导入(看 -help )。 |
mgc_rve_export_layout | 导出版图 | 是 | mgc_rve_export_layout <options…> | 导出 GDS/OASIS 等(看 -help )。 |
compress | 压缩库 | 否 | compress | 清理/压缩 TDB。 |
database | 库管理/查询 | 是 | database <subcmd…> | 枚举对象、库信息等。 |
xreffiles | 外部引用管理 | 是 | xreffiles <subcmd…> | 统一管理外链/依赖。 |
save | 保存 | 否 | save | 立即保存工程。 |
exit | 退出 | 否 | exit | 结束会话(谨慎)。 |
6) 高亮 / 交互(RVE/探查)
命令 | 用途 | 需参 | 示例 | 功能说明 |
---|---|---|---|---|
mgc_rve_context | 设高亮上下文 | 是 | mgc_rve_context <cellName> | 指定高亮所属单元。 |
mgc_rve_layer | 高亮层 | 是 | mgc_rve_layer <layer> | 高亮某层。 |
mgc_rve_highlight_index | 高亮色序号 | 是 | mgc_rve_highlight_index <n> | 选择高亮颜色槽。 |
mgc_rve_rect | 高亮矩形 | 是 | mgc_rve_rect <x1> <y1> <x2> <y2> | 画出高亮框。 |
mgc_rve_text | 错误层文字 | 是 | mgc_rve_text <"msg"> <x> <y> | 在 error layer 标注。 |
mgc_rve_text_clear | 清除标注 | 否/是 | mgc_rve_text_clear | 清除错误层文字。 |
mgc_rve_zoom | 框选缩放 | 是 | mgc_rve_zoom <x1> <y1> <x2> <y2> | 视图缩放到矩形。 |
mr | 高亮矩形 | 是 | mr <x1> <y1> <x2> <y2> | 简写版矩形高亮。 |
probe | 交叉探查 | 否/是 | probe | 版图与报错/网表联动。 |
7) 环境 / 窗口 / 工作区
命令 | 用途 | 需参 | 示例 | 功能说明 |
---|---|---|---|---|
window | 窗口命令 | 是 | window <subcmd…> | 打开/排列/切换窗口。 |
workspace | 工作区命令 | 是 | workspace <subcmd…> | 面板布局/配置切换。 |
8) 版图结构辅助
命令 | 用途 | 需参 | 示例 | 功能说明 |
---|---|---|---|---|
ring | 构建环形结构 | 是 | ring <instName> <opts…> | 围绕实例生成环。 |
surround | 构建包围结构 | 是 | surround <instName> <opts…> | 生成护环/围栏。 |
tsource | 源替换 | 是 | tsource <from> <to> | 替换工程/数据源引用。 |
注意事项:(稳妥执行)
- 先试 -help:rect -help、mgc_rve_export_layout -help;你能看到真实的参数名、必填项、单位与示例。
-
先选对象再命令:group、ungroup、delete、merge 等依赖“当前选择”。
-
图层先行:绘图前用 layer <…> 设定落层,导出前用 mgc_rve_export_layout -help 确认层映射/数据类型。
-
安全可直跑:save、exit、logmessage “text”、drc(默认规则)通常跨版本可直接执行。
🔒 郑重声明
本文章及其中所有文字、图片、表格、流程图、示意图等内容,均为原创成果,依法受到《中华人民共和国著作权法》等相关法律法规的保护。未经作者明确书面许可,任何单位和个人不得以任何形式对本文内容进行复制、抄袭、篡改、转载或用于商业用途。
我们郑重警告:对于任何侵犯知识产权、剽窃抄袭的行为,我们将保留取证权利,并坚决依法追究其法律责任,绝不姑息。
特此声明!