贺恺华 ,丁学伟 ,2
(1.深圳市中兴微电子技术有限公司IP设计部,广东 深圳 518055;2.移动网络和移动多媒体技术国家重点实验室,广东 深圳 518055)
随着芯片工艺的发展,数模混合芯片中的数字和模拟模块(Block)已经没有明显的区分界限,很多情况下,模拟模块的内部会包含数字模块,随之而来的问题是需要大量时间和精力解决在数字和模拟模块之间数据交互的问题和彼此database的兼容性。同时先进工艺下随着double pattern 等特性的引入,模拟版图的实现变得更加复杂,而如何提高效率,保证数据准确性也变得更加重要。
5 nm工艺下模块之间数据交互难度更大,需要的步骤和潜在的问题会越来越多。
1.1.1 数据的传递和管理
(1)5 nm设计模块在物理实现时,对模块的形状和pin
5 nm 模拟设计中需要用到越来越多的自定义数字模块,同时Boundary cell、Filler 和Dcap 等physical 种类繁多,在使用时,不同的物理位置需要填充不同的physical cell,因此需要版图设计工程师花费大量的时间在自定义数的摆放有更多DRC 等要求,而且GDS stream in 和out 需要更长的时间。
(2)由于Virtuoso 和Innovus工具所需要的techfile 文件不同,同时5 nm 存在double patten 等现象,使得数模交付时使用的LEF 和DEF 文件在import 和export的过程的复杂度和难度都有增加,需要设计人员花费大量时间进行debug。
(3)即便是很小的改动,交付数据的版本必须保留Innovus 和Virtuoso 两个版本,而数模芯片多层次数字模拟block 嵌套会导致版本追踪困难。
1.1.2 自定义数字模块集成字模块的集成以及physical cell 添加等重复性问题上。
1.1.3 模拟顶层绕线
5 nm 数模芯片设计复杂性和芯片面积的增加都会导致模拟顶层有很多绕线需求,而使用传统的手动方式实现绕线会降低版图实现效率,加大工作难度。
1.2.1 传统flow
(1)数模工具所需的TechFile 不同:Innovus 调用的是foundary 提供的tlef 文件,而Virtuoso 调用的是foundary 提供的basicPDK。
(2)难度明显增加:和以往的工艺相比,模拟电路的layout 实现需要更多的资源和精力。
(3)数模在前期设计阶段RC 抽参方式不同:对于模拟design,RC 抽参只能在layout LVS Pass 后进行,数字design 可以在LVS pass 前,进行门级抽参。
1.2.2 MSOA flow
(1)相同的TechFile:无论Innovus 还是Virtuoso 都使用OAdb 进行数据保存,调用的techfile 都是MSOA RapidPDK。
(2)提高效率:Innovus engin 可以协助模拟工程师实现大规模低要求的绕线,同时通过脚本完成大量重复性工。
(3)模拟设计通过数字Innovus工具可以对版图进行门及RC 抽参,此种情况下不需要LVS Pass。
添加Innovus 相关设置:
添加Virtuoso 相关设置:
相同OAdb Innovus 和Virtuoso 保存目录需要一致,使用相同的library name、cell name 和view name。
MSOA flow 需要Innovus 和Virtuoso 都调 用MSOA RapidPDK 进行设计和数据保存,因此MSOA RapidPDK 需要同时包含Techlef 和Basic PDK。
(1)生成RapidPDK
5 nm工艺可以使用Cadence lef2oa工具快速将两者结合生成新的MSOA RapidPDK。
(2)生成MSOA 格式stdcell 和Macro abstract
MSOA flow 不仅需要调用MSOAPDK,同时需要对design 中所有用到的lib cell 进行OA的转换。
(3)MSOA RapidPDK 生成过程中遇到的所有的error和warning 都要留意,WARNING:(OALEFDEF-23174)已经和Cadence 确认可以忽略。
3.2.1 Innovus dumped techlef验证
(1)在Innovus 中分别对OAdb 和传统的LEF-DEF db使用如下命令生成tlef,并进行tkdiff 比较验证。
write_lef_library -tech_only -ordered 1 xxx.tlef
下述几种mismatch 已经和cadence 确认可以忽略
①VIA 尺寸不同:如果比较时发现VIA的高度坐标不同,但VIA shape的高度值是相同的,则可以忽略,两者实际只是相对坐标不同而已。②USEVIA 不同:USEVIA是Innovus工具自动生成的属性,只要后续DRC 检查中VIA 没有violation 则可以忽略。③SPACING 缺失:MSOA 生成的tlef 中会有spacing 缺失,但在tlef的其他地方有对SPACING的定义,因此可以忽略。
3.2.2 Virtuoso QA验证
使用MSOA RapidPDK Re-attach design library,和传统方式下attachPDK的library 进行LVS 和DRC 结果比较,发现两种方式结果一致。
3.2.3 Innovus QA验证
(1)分别使用传统LEF-DEF 方式和MSOA flow的方式进行init 到postroute 阶段的数字模块设计。(2)对两种方式生成的数据进行DRC 和LVS验证,并比较DRC的类型和数量。(3)分析DRC 结果发现,两种flow 产生DRC的类型相同而数量不同,但深入了解MSOA flow和LEF-DEF flow 可知两者在place 和route 阶段处理方式上存在差异会导致DRC的数量有不同。
3.2.4 Innovus 使用相同database 分别对OA 格式和LEF-DEF 格式进行比较
将传统LEF -DEF flow 生成的database 进行OA database的转换,比较两者LVS 和DRC的区别,发现两种方式结果一致。
通过对实际5 nm 项目中的模拟模块进行详细分析、评估,最终整理出针对模拟设计的MSOA flow 相关规范和约束,通过搭建相关自动化flow 提升模拟版图设计效率。
5 nm MSOA flow 评估主要针对如下两点:
(1)5 nm 模拟设计效率提升
①评估Innovus 布局和布线在模拟设计中的应用场景;②通过评估MSOA flow 建立高效准确的数据管理和传递流程;③尝试通过脚本实现模拟设计自动化和标准化。
(2)MSOA flow 通用设计规范的建立
通过评估,建立5 nm MSOA RapidPDK flow 通用设计规范。
4.2.1 基于网表的Mix Signal Design
传统的LEF-DEF flow 和MSOA flow在调用Innovus工具时,所需要的命令和存储方式主要区别见表1。
表1 LEF-DEF Flow 和MSOA flow的对比
传统Lef-def flow 保存的database 也可以用OA的方式打开以及存储,示例如下:
4.2.2 基于Schematic的Mix Signal Design
MSOA flow 和传统模拟设计flow 主要区别是attatch PDK 不同,见表2。
表2 传统flow 和MSOA flow的对比
传统Virtuoso flow 保存的layout 也可以使用OA的方式通过Innovus工具打开以及存储,示例如下:
4.2.3 基于Schematic的custom digital block设计
在5 nm设计中,很多模拟模块是通过需要调用自定义的数字cell 进行设计,这类模块可以统一为custom digital block,评估过程中将其内部调用的custom digital cell 参考数字stdcell的方式进行规范化处理,使Innovus可以对这类block 进行自动布局布线,处理方式如下:
(1)使用abstract generater 对所有custom digital cell 提取lef 文件;
(2)由于5 nm 是double patten,因此LEF 中一定要有FIXEDMASK 属性,对底层金属color lock;
(3)创建Innovus自动布局布线时所需要的site 定义,举例如下:
规范化处理custom digital cell 后,使用innovus 对custom digital block 进行自动布局布线,包括使用TCL 脚本的方式添加physical cell、电源地线等,输出结果如图1~图3 所示。
图1 Custom digital block Schematic View
图2 custom digital block open in Innovus
图3 custom digital block open in Virtuoso
4.2.4 基于Schematic的custom stdcell设计
5 nm custom digital block 评估过程中中调用的custom stdcell的创建也可以用MSOA flow 通过调用Innovus 实现自动布线,可以通过添加routing 相关constraint 对工具绕线方式进行约束,满足designer 需求,如图4、图5 所示。
图4 custom stdcell open in Innovus
图5 custom stdcell open in Virtuoso
4.2.5 基于Schematic的Innovus 绕线和效率提升
5 nm工艺下模拟设计的block在复杂度、net 数量和面积方面都有大幅度提升,如果一味地要求版图工程师使用手动或者VSR的方式在Virtuoso 中绕线,会使整个block设计所需的人力和精力相较之前的工艺都有所增加,而Innovus NanoRoute 引擎对于大规模绕线有较好的处理方式,因此在模拟设计中对走线精度要求较低的大规模芯片可以采用Innovus 进行自动化绕线大幅度提高速率,节省人力,同时也可以添加相关constraint 约束Innovus 绕线的方式。
Innovus NanoRoute 目前支持的绕线方式有:NDRrouting,shielding,differential pair match length,resistance match,layer match,bus routing,length control。相关约束命令举例如下:
4.2.6 基于Schematic design的数据集成
(1)schematic-driven 和netlist-driven design 通过OA db可以代替GDS 文件实现database的传递,这样无论数字还是模拟工程师在打开彼此数据时的速度都会有所提升。
(2)schematic-driven的block 可以通过Innovus 中提取LEF/DEF的相关命令来生成数字所需要的LEF/DEF 文件,同时生成的文件在一致性和准确度方面都有所提升,文件中也不会包含纯模拟相关的数据,影响数字工具使用,相关命令如下:
(3)Innovus 中在5 nm工艺下对double patten 有add_track的定义,通过参考Innovus 中对track的定义,可以在Virtuoso 中添加对应的WSP rule,避免了数模之间交互时遇到的很多DRC 问题。
下述模拟设计的规范是在5 nm MSOA flow 评估过程中整理出来的相关约束条件,可以帮助MSOA flow在5 nm设计中得到更广泛的应用。
4.3.1 Schematic 规范
(1)Power 和Ground pin 必须是Power Ground 属性,不能定义为signal。
(2)对于signal pin 必须使用tie cell 进行VDD/VSS的连接,不可直连。
4.3.2 版图规范
(1)使用generate from source 创建layout,保留Schematic的连接关系。
(2)避免使用pcell的方式创建VIA,Innovus 会将pcell识别为block,而丢失net 连接关系。
(3)必须使用create->P&R objects的方式创建pr boundary,且pr boundary的原点在(0 0)。
(4)Block type design的pin shape 必须在边界。
(5)使用create->pin 来创建pin,且pin的金属层次需要在M0 或M0 以上。
(6)Power nets 使用geometric nets 即create->shape->path 创建,确保"part of a route"为false.
(7)signal nets 使用symbolic type route,即create->wiring->bus/wire.
(8)确保Schematic 和layout 之间关系是XL complience。
4.3.3 Abstract 规范
AbstractView 必须确保color lock,对应的LEF 中有FIXEDMASK 属性。
(1)创建自动化flow 相关的TCL 脚本,将重复性操作统一脚本化,优化整个flow,让模拟工程师通过简洁的操作界面调取相关的Innovus/Virtuoso 脚本。
(2)使用TCL/PERL 脚本实现模拟工程师在Innovus 中自动生成power mesh、endcap、welltap、filler 等physical cell,为模拟设计师提供流程上更多选择性,相关脚本参考:
(3)通过参考Innovus 中对track的定义,在Virtuoso 中使用skill 语言规定WSP rule,帮助项目中模拟工程师在绕线时避免DRC violation,相关脚本参考:
对于数字工程师来说,通常直接使用bsub的方式启动Innovus 就可以对数字block 进行编辑,而模拟工程师对Virtuoso GUI 界面的操作更加熟练,使用Virtuoso 中自带的VDI 也可以直接启动Innovus,load Innovus 相关脚本命令,后续使用方式和直接启动Innovus 相同,如图6~图9 所示。
图6 Open VDI in Virtuoso
图7 MSOA flow VDI 相关配置(1)
图8 MSOA flow VDI 相关配置(2)
图9 MSOA flow VDI 调用的相关脚本
针对custom digital block,分别尝试使用传统Virtuoso flow 和MSOA Innovus flow 完成版图物理实现,结果如表3所示。尝试了布局布线,以及physical cell 摆放等全流程,发现MSOA flow在physical cell 摆放时通过自动化脚本可以大幅缩减摆放时间,提升效率。
表3 custom digital block 评估结果
该阶段主要尝试了传统flow Virtuoso 布局布线和使用MSOA Innovus flow 进行布局布线的效率比较,评估结果如表4 所示。发现在绕线阶段,如果对custom stdcell的绕线要求较低,没有定制化需求则使用MSOA flow 方式会有大幅效率提升,但同时由于MSOA flow 有相关规范需求,因此在初期需要话较多时间满足MSOA 规范要求。
表4 custom stdcell 评估结果
该阶段主要尝试使用Innovs 和Virtuoso 分别开启模拟和数字的OA database,和传统使用GDS 方式比较速率提升,同时尝试使用Innovus的方式输出模拟OA db的LEF和DEF 文件交付给数字后端进行调用,比较LEF 和DEF文件输出的速率提升。数据传递评估结果如表5 所示。
表5 数据传递评估结果
对于power mesh 和重复性的routing 脚本,MSOA 使用有着一定的局限性,在前几个评估的case 中可见,对于大尺寸、绕线要求低、但绕线多的情况下,MSOA 对design速率有很大提升,但如果设计定制化要求高,Virtuoso 和Innovus 所需要的时间会比较接近,MSOA flow 对于这种情况下只是向designer 多提供了一种选择方式,具体如何使用由designer 决定,Power mesh 也是同理。power mesh 和routing 评估结果如表6 所示。
表6 power mesh 和routing 评估结果