Cadence IC设计实瞼 实g验四、Diva Interactive Verification 实验目的:掌握DRC和LVS验证方法 版图绘制后要根据foundry厂的工艺要求进行DRC(Design Rule Checker)检查,编 辑好的版图必须通过LVS(Layout Versus Schematic)验证,检查是否与schematic电原理图 完全一致;版图中还可能存在一些悬空的器件和线网,通过电气规则检查ERC(Electrical Rule Check)可以发现这些错误。进行LVS和ERC之前,需要用Diva验证工具中的Extract 程序对版图进行器件提取:Extract还可以进行寄生参数提取,电路仿真程序可以调用这个 数据进行后仿真。 DIVA工具集包括以下部分: 1.设计规则检查(DRC) 2.提取Extractor::包括器件提取、版图寄生参数提取(LPE)、寄生电阻提取(PRE) 3.电气规则检查(ERC) 4.版图与线路图比较(LVS) 预备工作: cp /eva01/cdsmgr/ICDATA/DivaInt_5_0.tar tar -vxf Divalnt_5_0.tar cd diva 实验内容与步骤: 第一部分:DRC设计规则检查 一、进入DRC菜单: [1]、icfb [2]、在CIW窗口(icfb-Log:/…),点击Tools-Library Manager: [3]、Library列表框中点击design; Cell列表框中点击peakDetect: View列表框中双击layout::(或用鼠标右键open) (注:这是峰值检测器电路版图,你可以查看相应的schematic了解电路原理) [4]、在出现的Virtuoso Layout Editing窗口,点击Verify-->DRC…菜单。 出现下图DRC窗口:
Cadence IC 设计实验 实验四、Diva Interactive Verification 实验目的:掌握 DRC 和 LVS 验证方法 版图绘制后要根据 foundry 厂的工艺要求进行 DRC(Design Rule Checker)检查,编 辑好的版图必须通过 LVS(Layout Versus Schematic)验证,检查是否与 schematic 电原理图 完全一致;版图中还可能存在一些悬空的器件和线网,通过电气规则检查 ERC(Electrical Rule Check)可以发现这些错误。进行 LVS 和 ERC 之前,需要用 Diva 验证工具中的 Extract 程序对版图进行器件提取;Extract 还可以进行寄生参数提取,电路仿真程序可以调用这个 数据进行后仿真。 DIVA 工具集包括以下部分: 1. 设计规则检查(DRC) 2. 提取 Extractor:包括器件提取、版图寄生参数提取(LPE)、寄生电阻提取(PRE) 3. 电气规则检查(ERC) 4. 版图与线路图比较(LVS) 预备工作: cp /eva01/cdsmgr/ ICDATA/DivaInt_5_0.tar . tar -vxf DivaInt _5_0.tar cd diva 实验内容与步骤: 第一部分:DRC 设计规则检查 一、进入 DRC 菜单: [1]、 icfb [2]、 在 CIW 窗口(icfb-Log:/…),点击 Tools->Library Manager; [3]、Library 列表框中点击 design; Cell 列表框中点击 peakDetect; View 列表框中双击 layout; (或用鼠标右键 open) (注:这是峰值检测器电路版图,你可以查看相应的 schematic 了解电路原理) [4]、在出现的 Virtuoso Layout Editing 窗口,点击 Verify->DRC…菜单。 出现下图 DRC 窗口:
DRC OK Cancel Defaults Apply Help Checking Method ◆flat◇hierarchical◇hier wfo optimization Checking Limit ◆ful◇incremental◇by area 《0a316 Sel by Cursor Switch Names Set Switches Run-Specific Command File Inclusion Limit 1000 Join Nets With Same Name Echo Commands ■ Rules File divaDRC.rul Rules Library ■desigr Machine ◆local◇emote Machine 二、查找某层(poly1层)DRC错误 [5]、在DRC窗口,点击右边的Set Switches按钮,在弹出列表中选择polyl,点击OK, 再点击DRC窗口OK。 在layout窗口中高亮闪烁显示polyl错误,你也可在CIW窗口查看DRC执行结果。 [6].在Virtuoso Layout Editing窗口,点击Verify->Markers-->Find…。弹出Find Marker框。 [7]、在Find Marker窗口置Zoom to Markers按纽有效,点击Next。 弹出marker text窗口显示错误信息,如果看不到错误形态,按下shift+f。 [8]、点击Virtuoso Layout Editing窗口左下方Ruler工具或k(按ESC取消工具), 测量高亮边框polyl宽度,比较marker text窗口显示的错误信息,按shift+-k取消 版图上的尺寸标记。 在Find Marker窗口: 点击Next寻找下一个错误f位置(Previous是查看前一个错误)。 连续点击Delete,.直到不显示错误为止(屏幕不再改变), 点击Cancel,f全屏,高亮闪烁的错误提示消失了。 注意:你并没改正版图错误,只是将错误提示delete掉了,若再次做DRC会发现错 误依旧。 三、另一种查找DRC错误的方法 [9]、选择Verify->DRC。 [10]、点击Set switchs按钮 在列表中选择allInterconnect,->OK,DRC窗口OK。 [Il]、DRC结束后(出现高亮闪烁的错误提示),选择Edit->search。 在Search窗口: 设置Zoom To Figure按纽有效
二、查找某层(poly1 层)DRC 错误 [5]、在 DRC 窗口,点击右边的 Set Switches 按钮,在弹出列表中选择 poly1,点击 OK, 再点击 DRC 窗口 OK。 在 layout 窗口中高亮闪烁显示 poly1 错误,你也可在 CIW 窗口查看 DRC 执行结果。 [6].在 Virtuoso Layout Editing 窗口,点击 Verify->Markers->Find…。弹出 Find Marker 框。 [7]、在 Find Marker 窗口置 Zoom to Markers 按纽有效,点击 Next。 弹出 marker text 窗口显示错误信息,如果看不到错误形态,按下 shift+f。 [8]、点击 Virtuoso Layout Editing 窗口左下方 Ruler 工具或 k(按 ESC 取消工具), 测量高亮边框 poly1 宽度,比较 marker text 窗口显示的错误信息,按 shift+k 取消 版图上的尺寸标记。 在 Find Marker 窗口: 点击 Next 寻找下一个错误 f 位置(Previous 是查看前一个错误)。 连续点击 Delete,直到不显示错误为止(屏幕不再改变), 点击 Cancel,f 全屏,高亮闪烁的错误提示消失了。 注意:你并没改正版图错误,只是将错误提示 delete 掉了,若再次做 DRC 会发现错 误依旧。 三、另一种查找 DRC 错误的方法 [9]、选择 Verify->DRC。 [10]、点击 Set switchs 按钮 在列表中选择 allInterconnect,->OK,DRC 窗口 OK。 [11]、DRC 结束后(出现高亮闪烁的错误提示),选择 Edit->search。 在 Search 窗口: 设置 Zoom To Figure 按纽有效
在Search for菜单:any shape,在in菜单:current cellView [l2]、点击Add Criteria,Search窗口中间出现一新选择行。 位于Search for下面最左边的选框内容改置为property,完成表格如下: property name:drcWhy =metall 点击Apply.屏幕将显示一个metall错误,由于你的设定,Search命令将只查找metal1 错误,总的错误数在Figure count栏显示。 [13]、点击几次Next [14]、点击Cancel,f全屏。 四、标注不进行DRC或Extracting的单元 [15]、在layout窗口找到单元fiducial(假设它是个测试基准单元) Ctrl+f(仅显示顶层Cell),在底部区域找到fiducial单元(不要与右边的fiduciald单元弄 混了) [l6]、点击选中fiducial单元,shift+x进入fiducial单元;(稍等) [l7、通过添加ivInclude Value性质阻止DRC对fiducial单元进行检查: A.在layout窗口中按下shift-+q,弹出Edit Cellview Properties窗口 B.置property按钮有效(黑) C.点击Edit Cellview Properties窗口中的左下方Add按钮 D. 在弹出的Add property表格设置如下: Name ivInclude Value Type Int Value 2 E.OK F.点击Edit Cellview Properties窗口中的OK: G.Save保存fiducial单元版图: H.shift-+b,返回到上一层版图。(稍等) [18]、在Layout Editing窗口,Verify-一>DRC: [19]、将DRC表中的Inclusion Limit设置为0。 [20、OK。 查看fiducial单元,不再有错误提示出现。 (注:fiducial单元是一个包含了许多不符合设计规则的测试单元,这个单元与电路没有 任何联系,在实际的芯片制造过程中,会有这样的单元存在,这样的单元的作用是 什么,你能想到吗?) 试一下f,Shift+f,Ctrl+f有什么区别? 五、改正DRC检查出来的错误 [21、根据前面介绍的第一种方法找到poly1的错误。 [22]、Ctrl+f(仅显示顶层Cell),找到control单元,点击选中control单元,shif+x进入control 单元。 (注:错误在in2和vcap中间的control单元中,必须进入control单元才能修改错误) [23]再次Verify->DRC,错误原因是什么? CIW中提示你有下列错误:
在 Search for 菜单:any shape, 在 in 菜单: current cellView [12]、点击 Add Criteria, Search 窗口中间出现一新选择行。 位于 Search for 下面最左边的选框内容改置为 property,完成表格如下: 点击 Apply。屏幕将显示一个 metal1 错误,由于你的设定,Search 命令将只查找 metal1 错误,总的错误数在 Figure count 栏显示。 [13]、点击几次 Next [14]、 点击 Cancel, f 全屏。 四、标注不进行 DRC 或 Extracting 的单元 [15]、在 layout 窗口找到单元 fiducial (假设它是个测试基准单元) Ctrl+f(仅显示顶层 Cell),在底部区域找到 fiducial 单元(不要与右边的 fiduciald 单元弄 混了); [16]、点击选中 fiducial 单元,shift+x 进入 fiducial 单元;(稍等) [17]、通过添加 ivIncludeValue 性质阻止 DRC 对 fiducial 单元进行检查: A. 在 layout 窗口中按下 shift+q,弹出 Edit Cellview Properties 窗口 B.置 property 按钮有效(黑) C.点击 Edit Cellview Properties 窗口中的左下方 Add 按钮 D. 在弹出的 Add property 表格设置如下: E.OK F.点击 Edit Cellview Properties 窗口中的 OK; G. Save 保存 fiducial 单元版图; H. shift+b,返回到上一层版图。(稍等) [18]、在 Layout Editing 窗口,Verify—>DRC; [19]、将 DRC 表中的 Inclusion Limit 设置为 0。 [20]、OK。 查看 fiducial 单元,不再有错误提示出现。 (注:fiducial 单元是一个包含了许多不符合设计规则的测试单元,这个单元与电路没有 任何联系,在实际的芯片制造过程中,会有这样的单元存在,这样的单元的作用是 什么,你能想到吗?) 试一下 f,Shift+f,Ctrl+f 有什么区别? 五、改正 DRC 检查出来的错误 [21]、根据前面介绍的第一种方法找到 poly1 的错误。 [22]、Ctrl+(仅显示顶层 f Cell),找到 control 单元,点击选中 control 单元,shift+x 进入 control 单元。 (注:错误在 in2 和 vcap 中间的 control 单元中,必须进入 control 单元才能修改错误) [23]、再次 Verify->DRC, 错误原因是什么? CIW 中提示你有下列错误: property name:drcWhy = = metal1 Name ivIncludeValue Type Int Value 2
Minimum poly1 width=0.6 (单位um) Minimum polylspacing=1.0 Poly1 extension past pdiff=0.4 用标尺量一下,错误原因是什么? [24]、鼠标左键选中高亮的poly1,q [25]、在Edit Path Properties窗口,将Width栏0.4(u)改为0.6。OK [26]Save [27小、CIW第3个错误提示是指,poly1超过pdif的最短露头应为0.4um,而NAND2单元 中左边poly 1超过pdiff的露头仅为0.3um,需要改正它。 这个错误出现在control单元中的NAND2单元中,所以必须进入NAND2单元修改。 I)。f全屏),然后Ctr+f(仅显示顶层Cell),找到NAND2单元,点击选中NAND2 单元,shift-+x进入NAND2单元。 2)。选中出错poly 1,q。在Edit Rectangle Properties窗口,将Top栏的数据增加O.I。 OK。 3)。用标尺(k)量一下poly1露头是否增加到0.4了。Shift+k取消标尺。 [28]、Save保存单元版图; [29]、shif+b,返回到上一层版图(control单元)。Shift+f。 [30、Verify-.>DRC,(仍然是查poly1),此时CIW只提示还有1个错误: Minimum polylspacing=1.0. 用标尺量一下出错处的两个poly1之间的间距仅有0.4。 [3l]、用标尺标出Path移动的位置,ESC,将出错poly1 Path中心线往上拉(s)到正确位置。 注意:选中心线是件不容易的事,你可以先将点击polyl drawing为LSW当前层,然 后点击NS置所有LSW层不能选,再用鼠标右键点击polyl drawing使其可选。在layout窗 口,shit+r,点击出错poy1直到它边沿变成粗橘红色(不是白色),s,移动鼠标到中心线 上就可以拖动了。 LSW中AS。 要特别当心,或许你会产生新的错误,比如移动了其它对象,就用ESC取消。 shift-+k(取消标尺)->Verify/Marker/Find/Delete(取消错误提示)->Save [32]、,shif+b回到顶层原理图,再对poly1进行DRC,CIW窗口提示:Total errors found:0 Save DIY 对metall和metal2进行DRC并改正错误。 (提示:metall有一个错误,metal22有两个错误)
Minimum poly1 width = 0.6 (单位 um) Minimum poly1spacing = 1.0 Poly1 extension past pdiff = 0.4 用标尺量一下,错误原因是什么? [24]、鼠标左键选中高亮的 poly1,q [25]、在 Edit Path Properties 窗口,将 Width 栏 0.4(u)改为 0.6。OK [26]、Save [27]、CIW 第 3 个错误提示是指,poly1 超过 pdiff 的最短露头应为 0.4u m,而 NAND2 单元 中左边 poly1 超过 pdiff 的露头仅为 0.3um,需要改正它。 这个错误出现在 control 单元中的 NAND2 单元中,所以必须进入 NAND2 单元修改。 1)。f(全屏),然后 Ctrl+f(仅显示顶层 Cell),找到 NAND2 单元,点击选中 NAND2 单元,shift+x 进入 NAND2 单元。 2)。选中出错 poly1,q。在 Edit Rectangle Properties 窗口,将 Top 栏的数据增加 0.1。 OK。 3)。用标尺(k)量一下 poly1 露头是否增加到 0.4 了。Shift+k 取消标尺。 [28]、Save 保存单元版图; [29]、shift+b,返回到上一层版图(control 单元)。Shift + f。 [30]、Verify->DRC,(仍然是查 poly1),此时 CIW 只提示还有 1 个错误: Minimum poly1spacing = 1.0。 用标尺量一下出错处的两个 poly1 之间的间距仅有 0.4。 [31]、用标尺标出 Path 移动的位置,ESC,将出错 poly1 Path 中心线往上拉(s)到正确位置。 注意:选中心线是件不容易的事,你可以先将点击 poly1 drawing 为 LSW 当前层,然 后点击 NS 置所有 LSW 层不能选,再用鼠标右键点击 poly1 drawing 使其可选。在 layout 窗 口,shift+r,点击出错 poly1 直到它边沿变成粗橘红色(不是白色),s,移动鼠标到中心线 上就可以拖动了。 LSW 中 AS。 要特别当心,或许你会产生新的错误,比如移动了其它对象,就用 ESC 取消。 shift+k(取消标尺)-> Verify/Marker/Find/Delete(取消错误提示)->Save [32]、,shift+b 回到顶层原理图,再对 poly1 进行 DRC,,CIW 窗口提示:Total errors found: 0 Save DIY 对 metal1 和 metal2 进行 DRC 并改正错误。 (提示:metal1 有一个错误,metal2 有两个错误)
第二部分: Extraction 一、运行extraction [1]、在peakDetect版图窗口选择Verify->Extract. [2]、设置Extractor表格: Extract Method flat [3引、点击OK。Extraction开始,在运行过程中你可以在CIW窗口看到运行情况, 你看到的最终信息为: Total errors found:0 生成peakDetect单元extracted View. [4]、将peakDetect版图窗口最小化,留作以后使用。 二、查看Extracted视图 [5]、打开peakDetect单元extracted视图 [6]、将in2和vcap压焊管脚(PN方块)之间的control单元放大,方法是用鼠标 右键按住拖出一长方区域,然后松开鼠标。你可以看到pmos,nmos器件符号,表 明设计己经被提取,进一步放大符号,可以看到器件的参数也已经被提取: [7、按下e[或Options->Display。.。] [8]、在Display Options表中,选中Display Control段的Nets,点击Apply 从器件引脚出发的飞线说明器件的连接也已经被提取 [9]、如果已经看到飞线,关掉刚才选中的Nts选项,点击OK [10]、f全屏 [ll]、选择Verify-->Probe.., 注意:只有Extracted和schematic视图可以进行probe 「121、用鼠标进行网络探测(方法一) l)。在弹出的Probing窗口中点击一下Add Net 2)。点击extracted视图中vinput压焊管脚,整个vinput网络被高亮显示出来 [13]、用名字进行网络探测(方法二): 1)。点击Add net 2)。在CIW窗口(icfb-log:/。。)键入“vdd!”(包括引号),Enter 整个vdd!网络被高亮显示出来 [14]、解释探测结果 a.选择OnCW选项进行解释,所有的解释将显示在CIW窗口 b.点击Probing窗口中左下方Explain c.点击vdd!压焊管脚 CIW窗口中显示网点的名称: Object type:net Object name:/vdd! [15]、删除探测结果 a.点击Probing窗口Remove Nets b.点击vdd!,所有关于vdd!的显示被取消 c.点击Remove all,所有的高亮显示被去除 [l6]、Probing窗口Cancel
第二部分: Extraction 一、运行 extraction [1]、在 peakDetect 版图窗口选择 Verify->Extract… [2]、设置 Extractor 表格: [3]、点击 OK。Extraction 开始,在运行过程中你可以在 CIW 窗口看到运行情况, 你看到的最终信息为: Total errors found : 0 生成 peakDetect 单元 extracted View。 [4]、将 peakDetect 版图窗口最小化,留作以后使用。 二、查看 Extracted 视图 [5]、打开 peakDetect 单元 extracted 视图 [6]、将 in2 和 vcap 压焊管脚(PIN 方块)之间的 control 单元放大,方法是用鼠标 右键按住拖出一长方区域,然后松开鼠标。你可以看到 pmos,nmos 器件符号,表 明设计已经被提取,进一步放大符号,可以看到器件的参数也已经被提取; [7]、按下 e [或 Options->Display。。。] [8]、在 Display Options 表中,选中 Display Control 段的 Nets,点击 Apply 从器件引脚出发的飞线说明器件的连接也已经被提取 [9]、如果已经看到飞线,关掉刚才选中的 Nets 选项,点击 OK [10]、f 全屏 [11]、选择 Verify->Probe…, 注意:只有 Extracted 和 schematic 视图可以进行 probe [12]、用鼠标进行网络探测(方法一) 1) 。在弹出的 Probing 窗口中点击一下 Add Net 2) 。点击 extracted 视图中 vinput 压焊管脚,整个 vinput 网络被高亮显示出来 [13]、用名字进行网络探测(方法二): 1)。点击 Add net 2)。在 CIW 窗口(icfb-log:/。。。)键入“vdd!”(包括引号),Enter 整个 vdd!网络被高亮显示出来 [14]、 解释探测结果 a.选择 On CIW 选项进行解释,所有的解释将显示在 CIW 窗口 b.点击 Probing 窗口中左下方 Explain c.点击 vdd!压焊管脚 CIW 窗口中显示网点的名称: Object type : net Object name : /vdd! [15]、删除探测结果 a.点击 Probing 窗口 Remove Nets b.点击 vdd!,所有关于 vdd!的显示被取消 c.点击 Remove all,所有的高亮显示被去除 [16]、Probing 窗口 Cancel。 Extract Method flat