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

本文主要是介绍低功耗数字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后端设计实现培训视频)

数字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。

低功耗upf flow always on domain插aon buffer案例

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的开关应用场景是否描述完整准确。

低功耗后端设计实现UPF文件

在这里插入图片描述

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后端设计实现典型案例| UPF Flow如何避免工具乱用Always On Buffer?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/951014

相关文章

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

Hadoop企业开发案例调优场景

需求 (1)需求:从1G数据中,统计每个单词出现次数。服务器3台,每台配置4G内存,4核CPU,4线程。 (2)需求分析: 1G / 128m = 8个MapTask;1个ReduceTask;1个mrAppMaster 平均每个节点运行10个 / 3台 ≈ 3个任务(4    3    3) HDFS参数调优 (1)修改:hadoop-env.sh export HDFS_NAMENOD

从去中心化到智能化:Web3如何与AI共同塑造数字生态

在数字时代的演进中,Web3和人工智能(AI)正成为塑造未来互联网的两大核心力量。Web3的去中心化理念与AI的智能化技术,正相互交织,共同推动数字生态的变革。本文将探讨Web3与AI的融合如何改变数字世界,并展望这一新兴组合如何重塑我们的在线体验。 Web3的去中心化愿景 Web3代表了互联网的第三代发展,它基于去中心化的区块链技术,旨在创建一个开放、透明且用户主导的数字生态。不同于传统

hdu1043(八数码问题,广搜 + hash(实现状态压缩) )

利用康拓展开将一个排列映射成一个自然数,然后就变成了普通的广搜题。 #include<iostream>#include<algorithm>#include<string>#include<stack>#include<queue>#include<map>#include<stdio.h>#include<stdlib.h>#include<ctype.h>#inclu

性能分析之MySQL索引实战案例

文章目录 一、前言二、准备三、MySQL索引优化四、MySQL 索引知识回顾五、总结 一、前言 在上一讲性能工具之 JProfiler 简单登录案例分析实战中已经发现SQL没有建立索引问题,本文将一起从代码层去分析为什么没有建立索引? 开源ERP项目地址:https://gitee.com/jishenghua/JSH_ERP 二、准备 打开IDEA找到登录请求资源路径位置

深入探索协同过滤:从原理到推荐模块案例

文章目录 前言一、协同过滤1. 基于用户的协同过滤(UserCF)2. 基于物品的协同过滤(ItemCF)3. 相似度计算方法 二、相似度计算方法1. 欧氏距离2. 皮尔逊相关系数3. 杰卡德相似系数4. 余弦相似度 三、推荐模块案例1.基于文章的协同过滤推荐功能2.基于用户的协同过滤推荐功能 前言     在信息过载的时代,推荐系统成为连接用户与内容的桥梁。本文聚焦于

poj2505(典型博弈)

题意:n = 1,输入一个k,每一次n可以乘以[2,9]中的任何一个数字,两个玩家轮流操作,谁先使得n >= k就胜出 这道题目感觉还不错,自己做了好久都没做出来,然后看了解题才理解的。 解题思路:能进入必败态的状态时必胜态,只能到达胜态的状态为必败态,当n >= K是必败态,[ceil(k/9.0),k-1]是必胜态, [ceil(ceil(k/9.0)/2.0),ceil(k/9.

【C++】_list常用方法解析及模拟实现

相信自己的力量,只要对自己始终保持信心,尽自己最大努力去完成任何事,就算事情最终结果是失败了,努力了也不留遗憾。💓💓💓 目录   ✨说在前面 🍋知识点一:什么是list? •🌰1.list的定义 •🌰2.list的基本特性 •🌰3.常用接口介绍 🍋知识点二:list常用接口 •🌰1.默认成员函数 🔥构造函数(⭐) 🔥析构函数 •🌰2.list对象

【Prometheus】PromQL向量匹配实现不同标签的向量数据进行运算

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全栈,前后端开发,小程序开发,人工智能,js逆向,App逆向,网络系统安全,数据分析,Django,fastapi

让树莓派智能语音助手实现定时提醒功能

最初的时候是想直接在rasa 的chatbot上实现,因为rasa本身是带有remindschedule模块的。不过经过一番折腾后,忽然发现,chatbot上实现的定时,语音助手不一定会有响应。因为,我目前语音助手的代码设置了长时间无应答会结束对话,这样一来,chatbot定时提醒的触发就不会被语音助手获悉。那怎么让语音助手也具有定时提醒功能呢? 我最后选择的方法是用threading.Time