4、层次化结构树:结构树的查看、结构树的编辑、结构树的导航技巧
层次化结构树,说白了就是版图的「家谱」。你想想看,一个复杂的芯片,动辄几百万个器件,要是平铺开来,谁也看不下去。所以华大九天的工具里,这个结构树就是我们的导航地图。我个人习惯,打开任何一个新项目,第一件事就是先看结构树,而不是急着画版图。
4.1 结构树的查看:一眼看穿层级
结构树在工具左侧的导航面板里,默认是展开的。你看到的每一个节点,代表一个单元(Cell)。单元下面可以套子单元,子单元下面还能再套,这就是层次化。
查看的基本操作:
- 展开/折叠:点击节点前的三角符号,就能展开或收起。我习惯把不关心的模块先收起来,只留当前在做的部分,这样界面清爽很多。
- 高亮定位:在结构树里点一下某个单元,版图窗口里对应的图形就会高亮。反过来,在版图里选中一个图形,结构树里对应的单元也会被高亮。这叫双向定位,非常实用。
- 右键菜单:右键点击节点,可以查看单元属性、调用次数、引脚信息等。我在项目中遇到过,有时候一个标准单元被调用了上千次,通过右键查看调用次数,能快速判断这个单元是不是复用率太高,需不需要优化。
小技巧:按住 Ctrl 键,在结构树里连续点击多个单元,可以同时高亮多个模块。这在检查模块之间的连接关系时特别好用。
4.2 结构树的编辑:动手改家谱
结构树不只是用来看的,它还能编辑。嗯,这里要注意,编辑结构树其实是在编辑版图的层次关系,操作不当可能会打乱整个设计。
常见的编辑操作:
- 新建单元:右键空白处,选择「新建单元」。我建议新建单元时,命名要规范,比如用模块名_功能_版本号,方便后期管理。
- 拖拽移动:选中一个单元,直接拖到另一个单元下面,就能改变它的父级关系。我曾经有一次,不小心把一个电源管理模块拖到了时钟模块下面,结果整个版图的供电网络都乱了。所以拖拽前一定要确认清楚。
- 复制粘贴:选中单元,Ctrl+C 复制,然后在目标位置 Ctrl+V 粘贴。这个操作会创建一个新的实例,但底层单元是共享的,不会增加数据库体积。
- 删除单元:选中后按 Delete 键。但要注意,如果这个单元在其他地方还有引用,删除后那些引用会变成空壳,版图会报错。
避坑指南:我曾经在项目交付前,手快删了一个看似没用的空单元,结果那个单元是顶层模块的父级,导致整个版图打不开。后来花了半天时间从备份里恢复。所以,删除前一定先检查引用关系。
4.3 结构树的导航技巧:快速穿梭
结构树里的节点多了以后,找起来也费劲。这时候就需要一些导航技巧了。
常用导航方法:
| 方法 | 操作 | 适用场景 |
|---|---|---|
| 搜索过滤 | 在结构树顶部的搜索框输入关键字 | 模块名很长,或者记不清具体位置时 |
| 书签标记 | 右键单元,选择「添加书签」 | 经常需要来回切换的几个关键模块 |
| 层级跳转 | 双击单元,直接进入该单元的编辑视图 | 需要深入底层修改细节时 |
| 返回上级 | 点击工具栏的「向上」按钮 | 修改完底层,回到顶层看整体效果 |
我个人最常用的是搜索过滤。比如项目中有一个模块叫「PLL_CTRL_V2」,我记不住它在树里的位置,直接在搜索框输入「PLL」,所有相关的节点就都出来了。省去了手动展开几十个文件夹的麻烦。
核心逻辑:结构树是版图的骨架。查看是基础,编辑是进阶,导航是效率。三者结合,才能玩转层次化设计。
4.4 知识体系结构图
下面这张图,是我自己总结的结构树操作逻辑,你可以把它当作一个快速参考。
这张图把结构树的三大功能串起来了。你想想看,查看是基础,编辑是动手,导航是提速。三者缺一不可。我个人习惯,每次开始一个新模块,先花5分钟把结构树理清楚,后面能省下大把时间。
我的经验:结构树用得好不好,直接决定了你画版图的速度。我见过很多新手,在几百个单元里手动翻找,效率极低。其实用好搜索和书签,10秒就能定位到目标。