研发分享:数字后端设计论文 | 基于NRHF的总线绕线的解决方案
第一作者 | Guozhi Xu
共同作者 | Yanhui Wang, Brian Li, Miao Liu
Cadence公司 | DSG Product Validation Group
基于NRHF的总线绕线的解决方案
在当今高度集成化的数字芯片设计当中,模块与模块之间的数据传输和交换起到越来越重要的作用,尤其对于高速的CPU而言,总线的延迟往往会成为高速的瓶颈之一,所以,数据在芯片上快速准确的传输已然成为保证数字系统正常工作的基石。从设计者的角度来说,总线(bus)技术无疑是众多芯片工程师的最爱。无论是在近年兴起的人工智能和物联网的系统,还是一直火热的超级计算系统与4G/5G通信类系统,总线技术在越来越庞大的数据通路当中正扮演着重要的角色,恰如一条条铺设在神州大地的高速铁路,加速着人力与资源的传输,推动经济社会飞速发展。
结合到芯片设计物理实现,如何在小小的硅片上实现“交通大动脉”的功能,给业界的工程师们提出了新的难题和挑战。比如:
-
在面积很大的芯片中,总线如何 又快又好 地从一端连接到另一端
-
总线如何完成 模块之间 ,模块和标准单元,标准单元和标准单元之间的连接
-
总线如何穿过位于 不同层级 的模块,进而连接在一起
-
如何保证总线内部每一根连线的 规整性 和 相似性,对称性 等等
-
如何保证数模混合芯片上,完成数字模块和 模拟模块 之间的特殊要求的总线连接
针对以上特殊的总线物理实现要求,Cadence的工程师们群策群力,一起开发了全新的纳米级高频绕线(NRHF, NanoRoute HighFrequency)引擎,出色了完成了特殊结构化总线的自动化物理实现。
本文主要基于纳米级高频绕线引擎,深入展开如何实现定制化,特殊化,高性能的总线物理实现。具体内容分为三个部分:绕线引擎基本介绍、基于设计约束的绕线,以及基于 缓冲器插入技术 的高级绕线功能。
1. 纳米级高频绕线引擎介绍
从2016年开始,顺应芯片研发市场的发展趋势和需求,Cadence科学家高瞻远瞩,正式在数字电路部门立项启动纳米级高频绕线引擎研发项目。它借用已有的纳米级通用绕线(NanoRoute)引擎的基本框架,呈现出的却是一个完全不一样的创新和突破。它的出现,给数字电路总线物理实现特殊化和自动化彻底打开了一扇大门。这是后端物理实现工程师们多年来迫切的需求,如今在Cadence的努力下成为现实。在Cadence 数字后端物理实现工具Innovus的诸多绕线引擎当中,如果说纳米级通用绕线引擎是集团化作战部队,那么这个全新的高频绕线工具就是集团军下面的特种部队,就像美国的海豹、中国的蛟龙、俄罗斯的阿尔法,正在特种作战的战场上展现自己的无以伦比的魅力。
说了这么多,读者肯定最关心纳米级高频绕线到底能做什么?下面我们就一起揭开它神秘的面纱,把它最突出的亮点以图片化展现出来。
1.1 定制化总线绕线
对于数字电路的设计人员,总线是一个比较熟悉的概念。相关信息我们会在下两节详述。这里先给大家看一下纳米级高频绕线的工作效果图。这个是完全按照设计者的思路绕出来的图形。
图1. 总线绕线
1.2 基于差分对约束的绕线
差分对约束绕线多见于数模混合电路,对于信号在两条差分线上传输时间有着苛刻的要求。两条差分线的延迟要求比较一致。同时,为了保证效果,电路设计人员通常会要求在差分线两边加上电源线或者地线来屏蔽其他信号的干扰。对于这些要求,纳米级高频绕线都能够充分理解设计者的意图并完成物理实现。
图2. 基于差分对约束的绕线
1.3 基于匹配约束的绕线
在某些特殊要求的芯片设计场合,比如数模混合电路,芯片设计要求一组绕线要有完全相同的长度,或者,进一步苛刻要求,要保证每根线绕完后有相同的电阻。这也是纳米级高频绕线可以帮着设计者实现的功能之一。它能够绕出非常精确的,或者可以接受误差范围内(用户可以设定)相近长度或者相近电阻值的一组线。为了完成长度或者电阻的要求,纳米级高频绕线会主动加一些绕线走向模型和矢量上的变化,智能地完全迎合设计者的特殊要求。
图3. 基于匹配约束的绕线
2. 基于设计约束的绕线
介绍到这里,大家应该会有些认识,纳米级高频绕线的绕线行为是由设计人员设置在总线上的绕线约束来决定的。从这个章节开始,我们会详细介绍总线绕线的相关内容。比如如何把设计思想变成高频绕线引擎可以理解的设计约束,从而达到符合设计者意图的绕线结果。
2.1 绕线约束
绕线约束是所有基于纳米级高频绕线的解决方案都需要设置的。绕线约束将设计人员的设计思路、设计要求都记录了下来,给绕线引擎提供了具体工作的指引,这样绕出来的线才是设计人员想要看到的。
在数字后端物理实现工具innovus当中,我们使用setIntegRouteConstraint这个命令来设置绕线约束。总线的绕线约束主要有以下几个选项。
-
-type bus (必须)明确指出要以总线结构为前提下完成绕线
-
-net {net1 net2 …} (必须)设置哪些连线需要在此约束条件下绕线
-
[-bottomLayer layerNum] [-topLayer layerNum] (非必须)设置在绕线过程中,所能使用金属层的最低和最高层,如果不设置,引擎就会在所有金属层中选择相对合理的层来绕线。
-
[-name string] (非必须)设置这个约束的名称,如果不设置,系统会自动赋予名称。
-
[-rule NDR_name] (非必须)设置绕线过程需要用到的非默认的绕线约束,如果不设置,系统将使用物理库文件定义的默认设置完成绕线,比如正常的线宽,线间距等。
2.2 绕线流程
1) 设置绕线约束
例如:setIntegRouteConstraint -type bus -net {bus[0] bus[1] bus[2] bus[3]} -topLayer M5 -bottomLayer M3 -rule NDR_1
2) 设置绕线模式
Innovus 17.1 及之后版本推荐设置setNanoRouteMode -hfrouteSearchRepair true,设置好之后,纳米级高频绕线引擎在做完绕线之后,会调用纳米级通用绕线引擎(NanoRoute)来修设计规则(DRC)违例。即将推出的innovus 18.1版本当中,设计者则不需要做特定设置,纳米级高频绕线引擎将根据实际情况来决定修复设计规则违例。
另外,如果只需要绕特定的线,可以设置setNanoRouteMode -routeSelectedNetOnly true,并选中需要绕的线。
其他一些通用的纳米级绕线模式(setNaonoRouteMode),纳米级高频绕线引擎也支持,用户可以根据实际情况设置。
3) (可选)根据需要产生总线物理导向
需要注意的是,总线物理导向(Bus Guide)的形状必须要覆盖总线的起始端和结束端对应的引脚块。并且需要注意在总线物理导向所给出来的绕线资源是否足够。如果绕线资源不够,那么纳米级高频绕线引擎会忽略这个物理导向或者不能完全按照设计者的意图完成绕线。
4) 绕线
routeDesign -highFrequency这个命令就可以完成基于纳米级高频绕线引擎的绕线。最新的引擎算法上提供了比较好的多扇出(multi-fanout)结构总线绕线的支持。
2.3 绕线效果图
图4. 基于多扇出总线的绕线
3. 基于缓冲器插入技术的自动绕线
随着芯片的增大,工艺的更新,纳米级高频绕线引擎在绕线这个问题上也遇到了一些挑战。众所周知,如果总线绕好之后,物理距离过长的话,数据经过这样一组在模块之间的连接,每根线上所消耗的延时会很大,通常情况下总线的驱动能力会不足。这个时候,我们就需要在总线上插入缓冲器来增加总线的驱动能力,降低信号传输的总延时。
为了减少用户手动插缓冲器的负担,Cadence的工程师团队整合了总线绕线和插入缓冲器的两个相关步骤,基于纳米级高频绕线引擎,创造性地提出了聚焦总线连接终点的全新绕线理念。
在这一创新性的突破中,我们把关注的目标从总线本身转移到了其连接的终点,也就是总线终端连接的模块或者标准单元的引脚。我们把这样的一个个引脚称为总线的终端(sink)。而一组总线的连接的终端就被称为终端集合(busSinkGroup),如下图红圈所示。
图5. 总线终端集合
3.1 绕线流程
1) 设置总线终端集合
用createBusSinkGroup 命令讲所需要的模块或者标准单元的引脚加入总线终端集合。
例如上图所示的集合就可以用下面的命令来设置:createBusSinkGroup BSG -sinks {A1/D B1/D C1/D}
其中,BSG是设计者命名的总线终端集合的名字,可以设置为其他名称。A1/D表示标准单元 A1的引脚 D。
2) 设置绕线约束
绕线约束的设置基本和前一节所述一致。但是这里我们不需要设置-net,我们使用-busSinkGroups BSG。
3) (可选)根据需要设置绕线物理导向
绕线物理导向的设置跟前一节所述一致。
4) 设置缓冲器插入的规则
关于缓冲器插入的规则,用户可以根据特定的语法编辑成文本文件,下图是一个插入规则的示例。这个规则说明了以下约束:
-
HS65_LS_BFX7缓冲器所能驱动的最长线长(240 um)和最大负载(20 pF)
-
缓冲器默认的驱动能力(最长200 um线长, 最大15 pF负载)
-
最后一个缓冲器到总线终端的最大距离(50 um)。
图6. 缓冲器插入规则示例
5) 绕线和插入缓冲器
使用命令”routeAndBufferBusSinkGroup BSG -bufferRule repeater.rule.txt” 就可以完成绕线以及根据所提供的设计规则插入缓冲器。
3.2 绕线效果图
图7. 基于缓冲器插入技术的总线绕线
至此,基于纳米级高频绕线器的总线绕线方法就介绍完了。我相信大家已经对这个在Cadence数字后端绕线工具引擎的大家族中,独特存在的纳米级高频绕线器有了一个深刻的认识。
在这个高科技行业日新月异,强调独特化,定制化和自动化的年代,纳米级高频绕线器是设计者在数字芯片物理设计处理总线绕线时的不二选择。希望大家在日常工作当中遇到有特殊要求的总线绕线时可以加以尝试和应用,我们相信,这把利器一定能帮助设计者在通往成功的道路上逢山开路,遇水搭桥,早日到达彼岸!