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

news2025/1/12 12:30:56

下图所示为咱们社区低功耗四核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。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1635625.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

21 如何进行高保真压测和服务扩容?

在后台架构中,压测非常常见,也是必须的工作。它能够帮我们发现微服务架构中的性能瓶颈,以及知道构建的微服务能承载的流量极限值。 但实际情况是,很多压测并不能发现瓶颈点和微服务所能承载的真实流量极限值。一方面是因为压测时…

【专篇】DDR4 SDRAM-01总体介绍

概念 DDR4 SDRAM(Double-Data-Rate Fourth Generation Synchronous Dynamic Random Access Memory)是一种先进的高性能存储器规格,是DDR3 SDRAM的后续产品。自2011年首次由三星电子制造并公布以来,它已经成为现代计算机系统中广泛采用的内存标准。 主要特点: 更高带宽: DD…

Spring6 当中的 Bean 循环依赖的详细处理方案+源码解析

1. Spring6 当中的 Bean 循环依赖的详细处理方案源码解析 文章目录 1. Spring6 当中的 Bean 循环依赖的详细处理方案源码解析每博一文案1.1 Bean的循环依赖1.2 singletion 下的 set 注入下的 Bean 的循环依赖1.3 prototype下的 set 注入下的 Bean 的循环依赖1.4 singleton下的构…

什么是人才测评系统?

人才测评系统是一个整体的框架,里面有很多个部分构成,既有常见的人才测评方法,也包含有招聘的目的。随着科学研究的不断深入,人才测评系统已经变得更加完善,将现代心理学和管理学知识吸纳到人才测评理论中来&#xff0…

OpenAI神秘搞事,GPT-4.5默默上线?推理碾压GPT-4网友震惊,奥特曼笑而不语

【新智元导读】就在昨夜,整个AI社区都被一个神秘大模型震撼到了:它名为gpt2-chatbot,性能直接超越很多开源模型和GPT-4!网友们展开猜测,有说它是GPT-4.5的,有说是GPT-5的,还有人猜它是GPT-4Q*&a…

深度学习论文: MobileNetV4 - Universal Models for the Mobile Ecosystem及其PyTorch实现

深度学习论文: MobileNetV4 - Universal Models for the Mobile Ecosystem及其PyTorch实现 MobileNetV4 - Universal Models for the Mobile Ecosystem PDF: https://arxiv.org/pdf/2404.10518.pdf PyTorch代码: https://github.com/shanglianlm0525/CvPytorch PyTorch代码: ht…

ARP学习及断网攻击

1.什么是ARP ARP(Address Resolution Protocol)是一种用于在IPv4网络中将IP地址映射到MAC地址的协议。在计算机网络中,每个网络接口都有一个唯一的MAC地址(Media Access Control address),用于识别网络设备…

JAVA同城服务美容美发到店服务上门服务系统源码微信小程序+微信公众号+H5+APP

随着科技的飞速发展,互联网和移动互联网已经渗透到我们生活的方方面面,同城服务美容美发到店服务上门服务系统应运而生,为整个行业带来了巨大的变革和无限的可能。该系统的重要性和优势不言而喻,对于行业发展和用户需求的影响深远…

LLaMA3(Meta)微调SFT实战Meta-Llama-3-8B-Instruct

LlaMA3-SFT LlaMA3-SFT, Meta-Llama-3-8B/Meta-Llama-3-8B-Instruct微调(transformers)/LORA(peft)/推理 项目地址 https://github.com/yongzhuo/LLaMA3-SFT默认数据类型为bfloat6 备注 1. 非常重要: weights要用bfloat16/fp32/tf32(第二版大模型基本共识), 不要用fp16, f…

Win环境下Python语言通过ODBC/JDBC连接SinoDB数据库

1. 前言 本文介绍在Windows环境下Python语言通过ODBC和JDBC的方式连接SinoDB数据库,并对数据库进行基本操作。 2. 软件安装包 SinoDB数据库:SinoDB 12.10.FC8   SinoDB CSDK(Windows):SinoDB Client-SDK 4.10.FC8   Python语言开发包&am…

Spring-aop切面环绕通知

1.pom引入 <!-- 切面依赖--> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId> </dependency> 2.定义注解&#xff1a;AroundAnnotation import java.lang.annotation…

公文写作笔记

标题 最后一行的日期&#xff0c;后边占4个格子。两个数字占一格。落款单位在日期的正上方。 格式积累 内容&#xff1a; ①开头&#xff1a;缘由 ②主题&#xff1a;对策&#xff08;别人做得好&#xff0c;就借鉴&#xff09; ③结尾&#xff1a;简单的总结&#xff08;字…

Linux基础——Linux开发工具(上)_vim

前言&#xff1a;在了解完Linux基本指令和Linux权限后&#xff0c;我们有了足够了能力来学习后面的内容&#xff0c;但是在真正进入Linux之前&#xff0c;我们还得要学会使用Linux中的几个开发工具。而我们主要介绍的是以下几个&#xff1a; yum, vim, gcc / g, gdb, make / ma…

OpenHarmony 实战开发——自测试执行框架

OpenHarmony为开发者提供了一套全面的开发自测试框架OHA-developer_test&#xff0c;开发者可根据测试需求开发相关测试用例&#xff0c;开发阶段提前发现缺陷&#xff0c;大幅提高代码质量。 本文从基础环境构建&#xff0c;用例开发&#xff0c;编译以及执行等方面介绍OpenH…

FlaUI

FlaUI是一个基于微软UIAutomation技术&#xff08;简称UIA&#xff09;的.NET库&#xff0c;它主要用于对Windows应用程序&#xff08;如Win32、WinForms、WPF、Store Apps等&#xff09;进行自动化UI测试。FlaUI的前身是TestStack.White&#xff0c;由Roemer开发&#xff0c;旨…

23 重构:烟囱式、平台化、中台化的架构

上一讲里&#xff0c;我们介绍了两大类型的系统升级重构方案&#xff0c;还介绍了如何进行重构版本的上线&#xff0c;以及如何平滑地完成新老版本切换的方案。在本讲里&#xff0c;将会具体介绍如何判断系统发展到什么阶段需要重构&#xff0c;以及如何实施重构。 系统稳定性…

新版本Qt Creator安装配置

新版本Qt Creator安装配置 文章目录 新版本Qt Creator安装配置1、前言2、环境3、安装配置4、总结 更多精彩内容&#x1f449;个人内容分类汇总 &#x1f448;&#x1f449;Qt开发经验 &#x1f448; 1、前言 Qt是一个跨平台的C应用程序开发框架&#xff0c;而Qt Creator是专为Q…

LLM大语言模型原理、发展历程、训练方法、应用场景和未来趋势

LLM&#xff0c;全称Large Language Model&#xff0c;即大型语言模型。LLM是一种强大的人工智能算法&#xff0c;它通过训练大量文本数据&#xff0c;学习语言的语法、语义和上下文信息&#xff0c;从而能够对自然语言文本进行建模。这种模型在自然语言处理&#xff08;NLP&am…

Arthas进阶

这里写自定义目录标题 六、class和classloader6、dump7、classloader 七、monitor/watch/trace/stack等核心命令的使用1、monitor2、watch3、trace4、stack5、tt6、option7、profiler 六、class和classloader 6、dump 将已加载类的字节码文件保存到特定目录&#xff1a;logs/…

49. 字母异位词分组 128. 最长连续序列

49. 字母异位词分组 128. 最长连续序列 把集合里面的所有元素都放入set容器里面 定义结果最大连续数量 ans for循环遍历每个元素 先判断集合里面有没有比这个元素小1的 如果没有 说明这个元素就是序列的第一个元素 然后接着找集合里面有没有比这个元素大1的 while一直找 …