低功耗数字IC后端设计实现典型案例| UPF Flow如何避免工具乱用Always On Buffer?

下图所示为咱们社区低功耗四核A7 Top Hierarchical Flow后端训练营中的一个案例,设计中存在若干个Power Domain,其中Power Domain2(简称PD2)为default Top Domain,Power Domain1(简称PD1)为一个需要power off的domain,PD1和PD2为同一个Voltage Domain,Power Domain3也是一个需要power off的domain,且它的工作电压是VDD1。

数字IC后端设计零基础快速入门(附数字IC后端设计实现培训视频)

数字IC实战后端项目| 必须掌握的28个SoC低功耗项目经验!

对于这样的low power设计需求,每个数字IC后端工程师都应该能够写出对应的power intent约束文件upf文件。

这个案例在实际IC后端项目中也是非常常见的。下面小编根据这个案例分享下常见的几个问题。

1)Always On Buffer的Secondary PG Pin连接错误

PD1内部是可以使用Aon Buffer的,但它的Secondary PG Pin只能连接到VDD这条net上,而不能连接到VDD1上。Innovus的upf flow是support自动插Aon Buffer,并且把secondary pg pin连接到global VDD net上。

但工具很容易出现一些问题,比如从PD2的一根信号经过PD1,并且插入若干颗buffer/inverter,最后再穿出到PD2。但这几颗buffer/inverter有可能是如下几种情况:

  • 普通buffer/inverter
  • 使用aon buffer但secondary pg pin连接错误(PD2内的aon buffer secondary pg pin连接到VDD1)

数字IC秋招笔试面试必备 | 低功耗设计实现十大灵魂拷问

所以,为了避免这个问题,我们通常可以不让这根信号穿到PD1内部。具体方法可以使用upf来约束。

update_power_domain --name PD1 --user_attributes {disable_secondary_domains {PD2 PD3}}

create_power_domain PD1

-supply {primary}

-supply {extra_supplies "" }

-include_elements

史上最全的数字IC后端设计实现培训教程(整理版)

2)Always On Buffer in 相对Aon Domain

下图黄色所示为PD2内一根普通信号,但在做完placement后发现这条net上有很多AON的buffer和inverter。即便这个PD2是一个power off的 power domain,这根信号上也只需要普通buffer即可。

如果出现这种情况,最终的low power验证clp或mvrc都会报出相应的violation。

3)Common Buffer in Power Off Domain

在数字IC后端低功耗设计实现中,我们会经常下图绿色标注的timing path,其中有两个普通buffer是在PD1内。这明显不符合低功耗设计实现的power约束。

盘点Power Switch Cell在实际项目中应用注意事项

【思考题】Power Domain1和Power Domain3之间的最小间距应该如何预留?为什么?

通常出现这种情况,我们需要重点检查upf文件中的pst state描述,查看各个power domain的开关应用场景是否描述完整准确。

4)跨Power Domain绕线问题

下图所示为一根从PD1中cell B的输出连接到PD3的cell C输入端信号对应的routing走线。这条net工具走线时跨越在PD2上,当这条net出现max transition时我们是不好修的。

因此,我们需要通过设置如下绕线和opt的mode来控制工具走线。下图所示为施加特殊routing constraint约束后的绕线结果。很显然,这根信号的走线没有跨在PD2上。

setRouteMode -earlyGlobalHonorMsvRouteConstraint true

setNanoRouteMode -routeHonorPowerDomain true

setOptMode -addAOFeedThruBuffer false

5)各大Power Domain形状切分原则

下面通过几个case来分享低功耗后端设计实现过程做模块partition时应该遵守的几大原则。

Case1: Power Domain形状尽量规则

通常情况power domain的形状(子模块单独harden模块)要尽量规则,特别是timing和routing都不太好做的设计。

下图左侧存在大量拐角及窄channel都是一个不好floorplan的表现。右侧所示的模块切分相对更好,但这种L型的形状在模块直角转弯处也非常容易有timing和routing问题。

Case2: 避免Macro或Blockage放置在Power Domain中间区域

这个就是我们一直提倡的摆放Macro的方法或原则------Macro尽量摆放在模块或Power Domain的边界处。所以在做模块或Power Domain切分时需要考虑好内部Macro的情况,特别是那种宽度或高度个别大的Macro。

Case3: 避免thin channel的PD


Case4: Power Domain边界处尽量不要摆放Default PD的Memory

当PD1接口信号要往左下角出来和Default PD进行交互时,PD1边界处的Macro会挡住标准单元的摆放和阻挡接口信号线的routing。

而且我们知道PD1接口出来的信号还需要插isolation cell,如果这类isolation cell被摆放至图中的黄色区域,肯定会有max transition violation。不巧的是这类信号对应的net还必须设置dont touch。

相关推荐
IC拓荒者12 天前
英伟达NVIDIA数字IC后端笔试真题(ASIC Physical Design Engineer)
nvidia·数字ic后端·ic后端实现·ic秋招笔试·ic秋招·ic笔试真题·physical design
NobleGasex1 个月前
可综合verilog用法总结
经验分享·笔记·芯片设计·综合
Lambor_Ma1 个月前
【数字时序】时钟树延迟偏差——CPPR adjustment
ic·芯片设计·soc
FPGA硅农3 个月前
【计算机体系结构】缓存的false sharing
芯片设计·计算机体系结构
初心不忘产学研3 个月前
AI 能否自行设计和制造芯片?
人工智能·aigc·团队开发·制造·芯片设计·芯片制造·ai造芯
IC拓荒者4 个月前
数字IC后端物理验证PV | TSMC 12nm Calibre Base Layer DRC案例解析
数字ic后端·物理验证·数字后端设计·ic后端培训·calibre drc·drc violation·低功耗upf
apple_ttt8 个月前
片上网络NoC(6)——路由算法
网络·fpga·芯片设计·路由算法
apple_ttt8 个月前
片上网络NoC(3)——拓扑指标
网络·fpga·芯片设计·片上网络·多核
apple_ttt8 个月前
片上网络NoC(1)——导论
网络·fpga开发·fpga·芯片设计·noc·片上网络