“Copy”的进阶之路(Virtuoso)

本文始于2024年3月,以Virtuoso 6.1.8-64b版本讲解”Copy”功能中各个设置项的作用,旨在让读者理解怎么合理并正确快速的进行Copy,并以范例进行演示。

目录

1. 不同Copy界面设置介绍

1.1 Lib copy

1.2 Cell copy

2. 范例演示

2.1 范例调用关系展示

2.2 Lib copy演示

2.3 Cell/View copy演示

3. 问题与讨论


先说重点:进行库或复杂较大模块的Hierarchy copy时,请先关闭所有打开的schematic和layout。

1. 不同Copy界面设置介绍

1.1 Library copy相关界面说明,如下图;

a:原始库

b:目标库

c:

  • 勾选Update Instance选项

Of New Copies Only:表示原始库中cell的库名称将更改为目标库的名称;

Of Entire Library:表示原始库中cell的库名称将更改为目标库名称;

  • 不勾选Update Instance选项

如果不勾选,那么目标库中cell的库名称将维持和原始库的库名称一致。

d:表示检查数据库的相关设置,默认不勾选。

1.2 Cell copy相关界面说明,如下图;

a:原始库

b:目标库

c:框中相关功能解释

  • Copy Hierarchical 勾选时表示同时copy底层cell
  • Skip Libraries 勾选时表示在copy底层cell时,可以由user指定哪些库中的cell需要copy和哪些库中的cell不需要copy;没有copy的cell将继续使用原始库的库名称,而被copy的cell的库名将变更为目标库名称。

从下图可以看到选中的”KUAILE”库,不在Skip一栏。当然不在,不然你copy了寂寞。

  • Exact Hierarchy 表明只copy指定的View中的底层cell,比如:一个cell中可能有很多个View,例如layout 、layout_bk、layout_old等等,当选定Exact Hierarchy时,可以在Copy Wizard(菜单栏Edit-Copy Wizard)中指定对应view。此时你copy的Hierarchical就都是你这个View下的cell。(这个功能在后期整理库的时候特别好用)
  • Views To Copy 指定你当前copy的cell下view类型

d:参考”Library copy相关界面说明”

2. 范例演示

2.1 范例调用关系展示

创建2个库,调用关系如下图所示,通过不同的copy设置方式来观察对应的结果。

2.2 Library copy演示

分别使用”New Copies”和”Entire”方式Copy “KUAILE” 库,并观察”KUAILE_TOP”中调用cell的库名称的更改情况。

2.2.1 使用”New Copies”方式copy

可以看到当前库中的cell 的库名称已更改为新的目标库名,而隔库的cell “nor1” 的库名称未更改。

2.2.2 使用”Entire”方式copy

可以看到当前库中的cell 的库名称已更改为新的目标库名,而隔库的cell “nor1” 的库名称同样也没有更改。

当然要实现隔库cell的库名称更改,可以使用Change Library References…功能,见问题与讨论1

2.3 Cell/View Copy

2.3.1 要copy的cell 只在当前库中进行copy

这个不多说,建议按如下方式设置copy即可

2.3.2 Copy cell 到一个新的库中,并将该cell中调用的所有cell一并copy到新的库中。

常见的”XXX”场景是:在完成一个模块的top层后,由于在layout期间调用cell混乱,有当前库中的cell也有当前库中备份的cell,又或有隔库的cell被调用,总之,完成后的top_cell中调用的cell足够混乱(真是头都要炸了!),但你又想只将top_cell中调用的cell能正确的copy到一个新库中。下面示范个技能,让你茅塞顿开!!!

请按如下图片操作;

哇,可以看到真的只有”KUAILE_TOP”中所调用的cell被copy到新的库中了,并且新库中的各个cell的库名称都被自动更改为新的库名称了。此处应有掌声。

延续上述”XXX”场景:某些情况下,在我们”KUAILE_TOP” Cell 下可能不止有一个layout view,可能还有其他的view,例如:layout_bk1、layout_bk2…,如下图所示:

如果还是按”XXX”场景中的相关设置,会发现所有view中调用的cell,都会被copy到新的库中。然而大多数的时候我们只想copy某个特定view下的cell。此时我们就需要用到更高级的Exact Hierarchy功能了。

让我们在”KUAILE_TOP”下再创建一个新的View-“layout_bk1”,相关调用关系如下图:(注意看紫色字体增加的cell)

我们再来验证下,如果还是按”XXX”场景所示的设置进行copy,会出现什么情况。

可以看到”layout_bk1″中调用的”nandx2_new”和”nandx2_old”,也一同被copy到新的库中了;并且在”layout”这个view中的”nor1″也被copy到新库中了。显然这不是我们想要的结果。

2.3.3 使用Exact Hierarchy功能进行copy

  • 依次选中”KUAILE”—”KUAILE_TOP”—”layout”,点击菜单栏Edit—Wizard;

可以看到只有”layout” view下调用的cell被copy到新的库中了。

  • 按上述同样设置,依次选中”KUAILE”—”KUAILE_TOP”—”layout_bk1″

可以看到只有”layout_bk1″ view下调用的cell被copy到新的库中了。

至此本文重点出现了:在整理库时,请使用Exact Hierarchy功能进行copy。

3. 问题与讨论

问题1:在LIB copy中,”Of Entire Library”并不能更改隔库cell库名称,那么有什么办法可以实现此功能呢?

Ans:请使用Change Library References…功能即可;

问题2:在”XXX”场景的设置中,如果Skip栏中的基础库不被跳过,那copy出来的又是什么样的呢?请读者自行尝试。

Ans:很显然基础库中的cell将被copy,大多数是最基本的器件,mos,mom等,这也不是我们想要的结果吧。

问题3:在Exact Hierarchy copy cell 界面中的Extra View一栏有什么其他作用吗?

Ans:Names 一栏所填信息和Types功能相同,两者二选一即可。

问题4:为什么在cell栏中启动的copy cell界面中,选择Exact Hierarchy进行copy时,却起不到和Copy Wizard界面中Exact Hierarchy同样的效果呢?(把下面答案栏选中即可见)

另外:推荐大家使用Copy  Wizard进行复杂的cell,进行copy,因为它可以实时的看到具体copy的cell;而且在”To Cell” 栏中双击对应cell,它还能修改cell的名称,例如,后缀删除等,以便获得更清晰的cell名。(真的是太方便了!)

问题5:在2.2节”Cell Copy相关界面说明”中,有说“笔者测试过程中发现在Library copy界面中的Of Entire Library功能没起作用,但在Cell copy界面中却起到了作用。蛮奇怪的”,具体是怎么在Cell copy中起作用的,能举例说明下吗?

Ans:库a中有2个cell分别为b和c,其中c被b调用;如果c以”Of Entire Library”方式copy为c_1后,b中之前调用的c,也同时会被更改为c_1。

-END-

参考资料:

【1】Cadence Help.

发表评论