跳转至

Virtuoso Verfication Workflow

在Innovus完成所有的Place & Route并修复基本上所有的DRC之后,使用Virtuoso: * 修复剩余或新增的DRC * 检查LVS

将设计导入Virtuoso

  • 在Innovus流程中,通过如下的命令导出GDS文件和门级网表。
    • 如果设计中使用了SRAM/Register File或子模块,需要在-merge选项中把Macro的gdsgds2文件路径添加进来。
streamOut -mapFile ${rm_lef_layer_map} ../data/${rm_core_top}.gds2 -mode ALL \
        -merge "/work/home/wumeng/pdks/tsmc/tsmc22ull/tcbn22ullbwp7t30p140lvt_110a/digital/Back_End/gds/tcbn22ullbwp7t30p140lvt_110a/tcbn22ullbwp7t30p140lvt.gds \
        /path/to/my/sram/gds \
        /path/to/my/register_file/gds \
        /path/to/my/macro/gds" 

saveNetlist ../data/${rm_core_top}.pg.flat.v -flat -phys -excludeLeafCell -excludeCellInst $lvs_exclude_cells
  • 新建一个存放Virtuoso工程文件的文件夹,在其中b virtuoso打开Virtuoso
  • 打开Library Manager,确保设计所需要的工艺库(例如tsmcN22)在Virtuoso搜索路径中
  • 使用Library Manager新建一个Library用于存放完成后端流程的设计
  • 选择Attach to an existing technology library,并选择相应的工艺库(例如tsmcN22)。
  • 在Virtuoso窗口上方选择File->Import->Stream
  • 在Innovus的输出文件夹中添加<MY_MODULE>.gds2文件,添加到此前新建的Library中,并选择所从属的工艺库,按下方Translate按钮导入设计
  • 在Virtuoso窗口上方选择File->Open打开顶层模块的Layout

  • 最小格点设置:为了在Virtuoso中正常选中器件,进行各种操作,需要在Layout Suite L上方选择Options->Display,把X Snap SpacingY Snap Spacing改成0.005

检查LVS

  • LVS全称是Layout Versus Schematic,翻译为版图与原理图一致性检查。
  • LVS检查的是目前的版图与门级网表所代表的逻辑是否一致。如果是一致的,那么说明物理版图与电路原理图一致,也就是Innovus的后端流程无误。
  • 将门级网表.v转换成.cdl格式
    • 需要在./cadence/v2lvs.run文件中添加相应工艺库的SPICE文件,随后运行如下指令
cd ./cadence
b ./v2lvs.run
  • 导入LVS Runset文件
    • 在Virtuoso窗口上方选择Calibre->nmLVS
    • Runset File Path中添加Calibre文件
  • 在左侧Inputs->Netlist中选择导入.cdl格式的SPICE文件
  • 在左侧LVS Options->Supply中定义Power nets与Ground nets
  • 如有需要,在左侧各个选择中设置相应的选项
  • 在上方File->Save Runset As保存LVS的配置,以便后续使用

检查DRC

  • DRC全称为Design Rule Check,检查的是目前的版图中各个器件、布局布线的摆放、间距、密度等指标是否满足晶圆厂的规范。
  • 理想情况下,我们不需要在Virtuoso中修改DRC报错,我们希望能够使用Innovus提供的工具自动修DRC 相关内容详见innovus_backend_workflow.md中的相关内容。